diff --git a/packages/syncfusion_flutter_barcodes/CHANGELOG.md b/packages/syncfusion_flutter_barcodes/CHANGELOG.md index 97fa8292d..f05e00385 100644 --- a/packages/syncfusion_flutter_barcodes/CHANGELOG.md +++ b/packages/syncfusion_flutter_barcodes/CHANGELOG.md @@ -1,3 +1,8 @@ +## [20.3.50] - 10/18/2022 + +**Bugs** +* #FB38178 - Now, the QR code generated for the input string contains spaces with `medium` [errorCorrectionLevel](https://pub.dev/documentation/syncfusion_flutter_barcodes/latest/barcodes/QRCode/errorCorrectionLevel.html) and `07` [codeVersion](https://pub.dev/documentation/syncfusion_flutter_barcodes/latest/barcodes/QRCode/codeVersion.html) will be scannable. + ## [18.3.35] - 10/01/2020 No changes. @@ -99,4 +104,4 @@ Initial release. * **One-dimensional barcodes** - Barcode Generator supports different one-dimensional barcode symbologies such as Code128, EAN8, EAN13, UPA-C, UPA-E, Code39, Code39 Extended, Code93 and Codabar. * **Two-dimensional barcode** - Barcode Generator supports popular QR Code and Data Matrix. * **Barcode customization** - Customize the visual appearance of barcodes using the backgroundColor and barColor properties, and adjust the size of smallest line or dot of the code using the module property. -* **Text customization** -Configure to display the barcode value and customize the position and style of the barcode text. \ No newline at end of file +* **Text customization** -Configure to display the barcode value and customize the position and style of the barcode text. diff --git a/packages/syncfusion_flutter_barcodes/README.md b/packages/syncfusion_flutter_barcodes/README.md index 0a6ae4f48..2ed755483 100644 --- a/packages/syncfusion_flutter_barcodes/README.md +++ b/packages/syncfusion_flutter_barcodes/README.md @@ -36,9 +36,6 @@ Explore the full capabilities of our Flutter widgets on your device by installin

- -

-

@@ -127,11 +124,11 @@ The following screenshot illustrates the result of the previous code sample. ### Support and feedback -* For any other queries, reach our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For any other queries, reach our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew the subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at sales@syncfusion.com | Toll Free: 1-888-9 DOTNET. ### About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to- deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to- deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_barcodes/example/linux/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_barcodes/example/linux/flutter/generated_plugin_registrant.cc index e71a16d23..d38195aa0 100644 --- a/packages/syncfusion_flutter_barcodes/example/linux/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_barcodes/example/linux/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_barcodes/example/linux/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_barcodes/example/linux/flutter/generated_plugin_registrant.h index e0f0a47bc..9bf747894 100644 --- a/packages/syncfusion_flutter_barcodes/example/linux/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_barcodes/example/linux/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_barcodes/example/linux/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_barcodes/example/linux/flutter/generated_plugins.cmake index 2e1de87a7..51436ae8c 100644 --- a/packages/syncfusion_flutter_barcodes/example/linux/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_barcodes/example/linux/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_barcodes/example/pubspec.yaml b/packages/syncfusion_flutter_barcodes/example/pubspec.yaml index f9456b13a..8ee2a082f 100644 --- a/packages/syncfusion_flutter_barcodes/example/pubspec.yaml +++ b/packages/syncfusion_flutter_barcodes/example/pubspec.yaml @@ -14,7 +14,7 @@ description: A new Flutter project. version: 1.0.0 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: diff --git a/packages/syncfusion_flutter_barcodes/example/windows/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_barcodes/example/windows/flutter/generated_plugins.cmake index b93c4c30c..4d10c2518 100644 --- a/packages/syncfusion_flutter_barcodes/example/windows/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_barcodes/example/windows/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_barcodes/lib/src/barcode_generator/renderers/two_dimensional/error_correction_codewords.dart b/packages/syncfusion_flutter_barcodes/lib/src/barcode_generator/renderers/two_dimensional/error_correction_codewords.dart index a2d8ee406..3e61dc94c 100644 --- a/packages/syncfusion_flutter_barcodes/lib/src/barcode_generator/renderers/two_dimensional/error_correction_codewords.dart +++ b/packages/syncfusion_flutter_barcodes/lib/src/barcode_generator/renderers/two_dimensional/error_correction_codewords.dart @@ -1616,7 +1616,7 @@ class ErrorCorrectionCodeWords { /// Converts decimal to binary value List _convertDecimalToBinary(List decimalRepresentation) { final List toBinary = []; - for (int i = 0; i < eccw; i++) { + for (int i = 0; i < decimalRepresentation.length; i++) { final String temp = decimalRepresentation[i].toRadixString(2); String text = ''; @@ -1679,7 +1679,8 @@ class ErrorCorrectionCodeWords { } } - eccw = leadTermSource.length; + // QR code is not scannable when the input string contains spaces. + // eccw = leadTermSource.length; final List returnValue = []; for (int i = 0; i < leadTermSource.length; i++) { returnValue.add(leadTermSource.entries.elementAt(i).value); diff --git a/packages/syncfusion_flutter_barcodes/pubspec.yaml b/packages/syncfusion_flutter_barcodes/pubspec.yaml index f7f8ec32e..6ecc1eda6 100644 --- a/packages/syncfusion_flutter_barcodes/pubspec.yaml +++ b/packages/syncfusion_flutter_barcodes/pubspec.yaml @@ -1,15 +1,15 @@ name: syncfusion_flutter_barcodes description: Flutter Barcodes generator library is used to generate and display data in the machine-readable, industry-standard 1D and 2D barcodes. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_barcodes environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 dev_dependencies: flutter_test: diff --git a/packages/syncfusion_flutter_calendar/CHANGELOG.md b/packages/syncfusion_flutter_calendar/CHANGELOG.md index 4e7e87a43..66f408a75 100644 --- a/packages/syncfusion_flutter_calendar/CHANGELOG.md +++ b/packages/syncfusion_flutter_calendar/CHANGELOG.md @@ -1,3 +1,7 @@ +## [20.3.56] +**Features** +* Provided text style customization support for the text in the placeholder (`No events` and `No selected date`) in the month agenda view and (`No events`) in the schedule view of the flutter event calendar. + ## [20.2.43] **Enhancements** * Now, we have improved the behavior of the `appointmentBuilder` details `date` value to hold the start date of the appointment view in the Flutter event calendar. diff --git a/packages/syncfusion_flutter_calendar/README.md b/packages/syncfusion_flutter_calendar/README.md index 83512fa6e..a4bf4656c 100644 --- a/packages/syncfusion_flutter_calendar/README.md +++ b/packages/syncfusion_flutter_calendar/README.md @@ -133,15 +133,12 @@ Explore the full capabilities of our Flutter widgets on your device by installin

- - + +

- -

-

@@ -316,11 +313,11 @@ class Meeting { ## Support and Feedback -* For any other queries, reach our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For any other queries, reach our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew the subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at salessupport@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_calendar/example/linux/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_calendar/example/linux/flutter/generated_plugin_registrant.cc index e71a16d23..d38195aa0 100644 --- a/packages/syncfusion_flutter_calendar/example/linux/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_calendar/example/linux/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_calendar/example/linux/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_calendar/example/linux/flutter/generated_plugin_registrant.h index e0f0a47bc..9bf747894 100644 --- a/packages/syncfusion_flutter_calendar/example/linux/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_calendar/example/linux/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_calendar/example/linux/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_calendar/example/linux/flutter/generated_plugins.cmake index 2e1de87a7..51436ae8c 100644 --- a/packages/syncfusion_flutter_calendar/example/linux/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_calendar/example/linux/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_calendar/example/pubspec.yaml b/packages/syncfusion_flutter_calendar/example/pubspec.yaml index 59a28a5ee..110702420 100644 --- a/packages/syncfusion_flutter_calendar/example/pubspec.yaml +++ b/packages/syncfusion_flutter_calendar/example/pubspec.yaml @@ -3,7 +3,7 @@ description: Syncfusion calendar example. version: 1.0.0+1 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: diff --git a/packages/syncfusion_flutter_calendar/example/windows/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_calendar/example/windows/flutter/generated_plugin_registrant.cc index 8b6d4680a..4bfa0f3a3 100644 --- a/packages/syncfusion_flutter_calendar/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_calendar/example/windows/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_calendar/example/windows/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_calendar/example/windows/flutter/generated_plugin_registrant.h index dc139d85a..9846246b4 100644 --- a/packages/syncfusion_flutter_calendar/example/windows/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_calendar/example/windows/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_calendar/example/windows/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_calendar/example/windows/flutter/generated_plugins.cmake index b93c4c30c..4d10c2518 100644 --- a/packages/syncfusion_flutter_calendar/example/windows/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_calendar/example/windows/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_calendar/lib/src/calendar/appointment_layout/agenda_view_layout.dart b/packages/syncfusion_flutter_calendar/lib/src/calendar/appointment_layout/agenda_view_layout.dart index 227086d90..f8d0144b3 100644 --- a/packages/syncfusion_flutter_calendar/lib/src/calendar/appointment_layout/agenda_view_layout.dart +++ b/packages/syncfusion_flutter_calendar/lib/src/calendar/appointment_layout/agenda_view_layout.dart @@ -30,6 +30,7 @@ class AgendaViewLayout extends StatefulWidget { this.appointmentBuilder, this.width, this.height, + this.placeholderTextStyle, this.calendar); /// Defines the month view customization details. @@ -84,6 +85,9 @@ class AgendaViewLayout extends StatefulWidget { /// Defines the calendar widget. final SfCalendar calendar; + /// Defines the text style of the no events and no selected date. + final TextStyle placeholderTextStyle; + @override // ignore: library_private_types_in_public_api _AgendaViewLayoutState createState() => _AgendaViewLayoutState(); @@ -159,6 +163,7 @@ class _AgendaViewLayoutState extends State { _appointmentCollection, widget.width, widget.height, + widget.placeholderTextStyle, widgets: _children); } @@ -254,6 +259,7 @@ class _AgendaViewRenderWidget extends MultiChildRenderObjectWidget { this.appointmentCollection, this.width, this.height, + this.placeholderTextStyle, {List widgets = const []}) : super(children: widgets); @@ -273,26 +279,29 @@ class _AgendaViewRenderWidget extends MultiChildRenderObjectWidget { final List appointmentCollection; final double width; final double height; + final TextStyle placeholderTextStyle; @override _AgendaViewRenderObject createRenderObject(BuildContext context) { return _AgendaViewRenderObject( - monthViewSettings, - scheduleViewSettings, - selectedDate, - appointments, - isRTL, - locale, - localizations, - calendarTheme, - agendaViewNotifier, - appointmentTimeTextFormat, - timeLabelWidth, - textScaleFactor, - isMobilePlatform, - appointmentCollection, - width, - height); + monthViewSettings, + scheduleViewSettings, + selectedDate, + appointments, + isRTL, + locale, + localizations, + calendarTheme, + agendaViewNotifier, + appointmentTimeTextFormat, + timeLabelWidth, + textScaleFactor, + isMobilePlatform, + appointmentCollection, + width, + height, + placeholderTextStyle, + ); } @override @@ -313,7 +322,8 @@ class _AgendaViewRenderWidget extends MultiChildRenderObjectWidget { ..textScaleFactor = textScaleFactor ..appointmentCollection = appointmentCollection ..width = width - ..height = height; + ..height = height + ..placeholderTextStyle = placeholderTextStyle; } } @@ -334,7 +344,8 @@ class _AgendaViewRenderObject extends CustomCalendarRenderObject { this.isMobilePlatform, this._appointmentCollection, this._width, - this._height); + this._height, + this._placeholderTextStyle); final bool isMobilePlatform; @@ -351,6 +362,19 @@ class _AgendaViewRenderObject extends CustomCalendarRenderObject { markNeedsLayout(); } + TextStyle _placeholderTextStyle; + + TextStyle get placeholderTextStyle => _placeholderTextStyle; + + set placeholderTextStyle(TextStyle value) { + if (_placeholderTextStyle == value) { + return; + } + + _placeholderTextStyle = value; + markNeedsPaint(); + } + double _width; double get width => _width; @@ -1172,8 +1196,7 @@ class _AgendaViewRenderObject extends CustomCalendarRenderObject { text: selectedDate == null ? localizations.noSelectedDateCalendarLabel : localizations.noEventsCalendarLabel, - style: const TextStyle( - color: Colors.grey, fontSize: 15, fontFamily: 'Roboto'), + style: placeholderTextStyle, ); _updateTextPainterProperties(span); diff --git a/packages/syncfusion_flutter_calendar/lib/src/calendar/appointment_layout/appointment_layout.dart b/packages/syncfusion_flutter_calendar/lib/src/calendar/appointment_layout/appointment_layout.dart index 5c8103869..c9598f0a1 100644 --- a/packages/syncfusion_flutter_calendar/lib/src/calendar/appointment_layout/appointment_layout.dart +++ b/packages/syncfusion_flutter_calendar/lib/src/calendar/appointment_layout/appointment_layout.dart @@ -730,6 +730,17 @@ class _AppointmentLayoutState extends State { /// 8 PM to 9 PM and the calendar end time is 6 PM then skip the /// rendering). continue; + } + + if (yPosition < 0 && yPosition + height > widget.height) { + /// Change the start position and height when appointment start time + /// before the calendar start time and appointment end time after the + /// calendar end time.(Eg., appointment start and end date as 6 AM to + /// 9 PM and the calendar start time is 8 AM and end time is 6 PM then + /// calculate the new size from 8 AM to 6 MM, if we does not calculate + /// the new size then the appointment text drawn on hidden place). + height = widget.height; + yPosition = 0; } else if (yPosition + height > widget.height) { /// Change the height when appointment end time greater than calendar /// time slot end time(Eg., calendar end time is 4 PM and appointment diff --git a/packages/syncfusion_flutter_calendar/lib/src/calendar/common/calendar_view_helper.dart b/packages/syncfusion_flutter_calendar/lib/src/calendar/common/calendar_view_helper.dart index 63f5af3cc..a7edf467c 100644 --- a/packages/syncfusion_flutter_calendar/lib/src/calendar/common/calendar_view_helper.dart +++ b/packages/syncfusion_flutter_calendar/lib/src/calendar/common/calendar_view_helper.dart @@ -1031,7 +1031,7 @@ class CalendarAppointment { otherAppointment.isAllDay == isAllDay && otherAppointment.notes == notes && otherAppointment.location == location && - !CalendarViewHelper.isCollectionEqual( + CalendarViewHelper.isCollectionEqual( otherAppointment.resourceIds, resourceIds) && otherAppointment.recurrenceId == recurrenceId && otherAppointment.id == id && diff --git a/packages/syncfusion_flutter_calendar/lib/src/calendar/settings/month_view_settings.dart b/packages/syncfusion_flutter_calendar/lib/src/calendar/settings/month_view_settings.dart index e4d638c3e..e5c241510 100644 --- a/packages/syncfusion_flutter_calendar/lib/src/calendar/settings/month_view_settings.dart +++ b/packages/syncfusion_flutter_calendar/lib/src/calendar/settings/month_view_settings.dart @@ -743,7 +743,9 @@ class AgendaStyle with Diagnosticable { {this.appointmentTextStyle, this.dayTextStyle, this.dateTextStyle, - this.backgroundColor}); + this.backgroundColor, + this.placeholderTextStyle = const TextStyle( + color: Colors.grey, fontSize: 15, fontFamily: 'Roboto')}); /// The text style for the text in the [Appointment] view in [SfCalendar] /// month agenda view. @@ -798,6 +800,34 @@ class AgendaStyle with Diagnosticable { /// ``` final TextStyle? appointmentTextStyle; + /// The text style for the text in the placeholder (no event text and + /// no selected date text) of the [SfCalendar] month agenda view. + /// + /// See also: + /// * [MonthViewSettings], to customize the month view of the calendar. + /// * [ScheduleViewSettings], to customize the schedule view of the calendar. + /// * [AgendaStyle], to customize the month agenda view of the calendar. + /// + /// ``` dart + /// + /// Widget build(BuildContext context) { + /// return Container( + /// child: SfCalendar( + /// view: CalendarView.month, + /// monthViewSettings: const MonthViewSettings(showAgenda: true, + /// agendaStyle: AgendaStyle( + /// placeholderTextStyle:TextStyle( + /// color: Colors.white, + /// fontSize: 20, + /// backgroundColor: + /// Colors.red),)), + /// ), + /// ); + /// } + /// + /// + final TextStyle placeholderTextStyle; + /// The text style for the text in the day text of [SfCalendar] month agenda /// view. /// @@ -967,7 +997,8 @@ class AgendaStyle with Diagnosticable { return otherStyle.appointmentTextStyle == appointmentTextStyle && otherStyle.dayTextStyle == dayTextStyle && otherStyle.dateTextStyle == dateTextStyle && - otherStyle.backgroundColor == backgroundColor; + otherStyle.backgroundColor == backgroundColor && + otherStyle.placeholderTextStyle == placeholderTextStyle; } @override @@ -980,6 +1011,8 @@ class AgendaStyle with Diagnosticable { properties .add(DiagnosticsProperty('dayTextStyle', dayTextStyle)); properties.add(ColorProperty('backgroundColor', backgroundColor)); + properties.add(DiagnosticsProperty( + 'placeholderTextStyle', placeholderTextStyle)); } @override @@ -989,6 +1022,7 @@ class AgendaStyle with Diagnosticable { dayTextStyle, dateTextStyle, backgroundColor, + placeholderTextStyle, ); } } diff --git a/packages/syncfusion_flutter_calendar/lib/src/calendar/settings/schedule_view_settings.dart b/packages/syncfusion_flutter_calendar/lib/src/calendar/settings/schedule_view_settings.dart index 350084012..32ee8a5c1 100644 --- a/packages/syncfusion_flutter_calendar/lib/src/calendar/settings/schedule_view_settings.dart +++ b/packages/syncfusion_flutter_calendar/lib/src/calendar/settings/schedule_view_settings.dart @@ -52,7 +52,9 @@ class ScheduleViewSettings with Diagnosticable { this.hideEmptyScheduleWeek = false, this.monthHeaderSettings = const MonthHeaderSettings(), this.weekHeaderSettings = const WeekHeaderSettings(), - this.dayHeaderSettings = const DayHeaderSettings()}) + this.dayHeaderSettings = const DayHeaderSettings(), + this.placeholderTextStyle = const TextStyle( + color: Colors.grey, fontSize: 15, fontFamily: 'Roboto')}) : assert(appointmentItemHeight >= -1); /// Sets the style to customize month label in [SfCalendar] schedule view. @@ -223,6 +225,32 @@ class ScheduleViewSettings with Diagnosticable { /// ``` final TextStyle? appointmentTextStyle; + /// The text style for the text in the placeholder (no event + /// text) of the [SfCalendar] schedule view. + /// + /// See also: + /// * [MonthViewSettings], to customize the month view of the calendar. + /// * [ScheduleViewSettings], to customize the schedule view of the calendar. + /// * [AgendaStyle], to customize the month agenda view of the calendar. + /// + /// ``` dart + /// + /// Widget build(BuildContext context) { + /// return Container( + /// child: SfCalendar( + /// view: CalendarView.schedule, + /// scheduleViewSettings: const ScheduleViewSettings( + /// placeholderTextStyle: TextStyle( + /// color: Colors.white, + /// fontSize: 20, + /// backgroundColor: Colors.red)), + /// ), + /// ); + /// } + /// + /// + final TextStyle placeholderTextStyle; + /// The height for each appointment view to layout within this in schedule /// view of [SfCalendar],. /// @@ -304,7 +332,8 @@ class ScheduleViewSettings with Diagnosticable { otherStyle.hideEmptyScheduleWeek == hideEmptyScheduleWeek && otherStyle.monthHeaderSettings == monthHeaderSettings && otherStyle.weekHeaderSettings == weekHeaderSettings && - otherStyle.dayHeaderSettings == dayHeaderSettings; + otherStyle.dayHeaderSettings == dayHeaderSettings && + otherStyle.placeholderTextStyle == placeholderTextStyle; } @override @@ -322,6 +351,8 @@ class ScheduleViewSettings with Diagnosticable { .add(DoubleProperty('appointmentItemHeight', appointmentItemHeight)); properties.add(DiagnosticsProperty( 'hideEmptyScheduleWeek', hideEmptyScheduleWeek)); + properties.add(DiagnosticsProperty( + 'placeholderTextStyle', placeholderTextStyle)); } @override @@ -332,7 +363,8 @@ class ScheduleViewSettings with Diagnosticable { hideEmptyScheduleWeek, monthHeaderSettings, weekHeaderSettings, - dayHeaderSettings); + dayHeaderSettings, + placeholderTextStyle); } } diff --git a/packages/syncfusion_flutter_calendar/lib/src/calendar/sfcalendar.dart b/packages/syncfusion_flutter_calendar/lib/src/calendar/sfcalendar.dart index 72735b564..35485b580 100644 --- a/packages/syncfusion_flutter_calendar/lib/src/calendar/sfcalendar.dart +++ b/packages/syncfusion_flutter_calendar/lib/src/calendar/sfcalendar.dart @@ -3879,7 +3879,7 @@ class _SfCalendarState extends State /// loads the time zone data base to handle the time zone for calendar Future _loadDataBase() async { final ByteData byteData = - await rootBundle.load('packages/timezone/data/2020a.tzf'); + await rootBundle.load('packages/timezone/data/latest_all.tzf'); initializeDatabase(byteData.buffer.asUint8List()); _timeZoneLoaded = true; return true; @@ -6059,6 +6059,7 @@ class _SfCalendarState extends State widget.appointmentBuilder, _minWidth - viewPadding, panelHeight, + widget.monthViewSettings.agendaStyle.placeholderTextStyle, widget), )), onTapUp: (TapUpDetails details) { @@ -9039,6 +9040,8 @@ class _SfCalendarState extends State widget.appointmentBuilder, width, height, + widget + .monthViewSettings.agendaStyle.placeholderTextStyle, widget), onTapUp: (TapUpDetails details) { _handleTapForAgenda(details, null); @@ -9149,6 +9152,8 @@ class _SfCalendarState extends State widget.appointmentBuilder, width - _agendaDateViewWidth, painterHeight, + widget.monthViewSettings.agendaStyle + .placeholderTextStyle, widget), ], ), @@ -10493,8 +10498,7 @@ class _ScheduleLabelPainter extends CustomPainter { final TextSpan span = TextSpan( text: _localizations.noEventsCalendarLabel, style: scheduleViewSettings.weekHeaderSettings.weekTextStyle ?? - const TextStyle( - color: Colors.grey, fontSize: 15, fontFamily: 'Roboto'), + scheduleViewSettings.placeholderTextStyle, ); double xPosition = 10; diff --git a/packages/syncfusion_flutter_calendar/lib/src/calendar/views/calendar_view.dart b/packages/syncfusion_flutter_calendar/lib/src/calendar/views/calendar_view.dart index 1119ed50e..5be572291 100644 --- a/packages/syncfusion_flutter_calendar/lib/src/calendar/views/calendar_view.dart +++ b/packages/syncfusion_flutter_calendar/lib/src/calendar/views/calendar_view.dart @@ -787,7 +787,6 @@ class _CustomCalendarScrollViewState extends State widget.width, widget.height, currentState.widget.visibleDates.length, - currentState._allDayHeight, widget.isMobilePlatform); _dragDetails.value.appointmentView = appointmentView; _dragDifferenceOffset = null; @@ -926,7 +925,6 @@ class _CustomCalendarScrollViewState extends State widget.width, widget.height, currentState.widget.visibleDates.length, - currentState._allDayHeight, widget.isMobilePlatform); if (isTimelineView) { _updateAutoScrollDragTimelineView( @@ -1961,7 +1959,6 @@ class _CustomCalendarScrollViewState extends State widget.width, widget.height, currentState.widget.visibleDates.length, - currentState._allDayHeight, widget.isMobilePlatform); double xPosition = details.dx; double yPosition = appointmentPosition.dy; @@ -3095,7 +3092,8 @@ class _CustomCalendarScrollViewState extends State ); _children[index] = view; - } // check and update the visible appointments in the view + } + // check and update the visible appointments in the view else if (!CalendarViewHelper.isCollectionEqual( appointmentLayout.visibleAppointments.value, _updateCalendarStateDetails.visibleAppointments)) { @@ -3133,6 +3131,43 @@ class _CustomCalendarScrollViewState extends State }, key: viewKey, ); + _children[index] = view; + } else if (view.calendar != widget.calendar) { + /// Update the calendar view when calendar properties like appointment + /// text style dynamically changed. + view = _CalendarView( + widget.calendar, + widget.view, + visibleDates, + widget.width, + widget.height, + widget.agendaSelectedDate, + widget.locale, + widget.calendarTheme, + view.regions, + view.blackoutDates, + _focusNode, + widget.removePicker, + widget.calendar.allowViewNavigation, + widget.controller, + widget.resourcePanelScrollController, + widget.resourceCollection, + widget.textScaleFactor, + widget.isMobilePlatform, + widget.minDate, + widget.maxDate, + widget.localizations, + widget.timelineMonthWeekNumberNotifier, + _dragDetails, + (UpdateCalendarStateDetails details) { + _updateCalendarViewStateDetails(details); + }, + (UpdateCalendarStateDetails details) { + _getCalendarViewStateDetails(details); + }, + key: viewKey, + ); + _children[index] = view; } else if (view.visibleDates == _currentViewVisibleDates) { /// Remove the appointment selection when the selected @@ -3393,9 +3428,12 @@ class _CustomCalendarScrollViewState extends State } else if (_currentChildIndex == 2) { _currentChildIndex = 0; } + + // resets position to zero on the swipe end to avoid the + // unwanted date updates. + _position = 0; }); - _resetPosition(); _updateAppointmentPainter(); } @@ -3427,9 +3465,12 @@ class _CustomCalendarScrollViewState extends State } else if (_currentChildIndex == 2) { _currentChildIndex = 1; } + + // resets position to zero on the swipe end to avoid the + // unwanted date updates. + _position = 0; }); - _resetPosition(); _updateAppointmentPainter(); } @@ -3644,15 +3685,6 @@ class _CustomCalendarScrollViewState extends State _updateAppointmentPainter(); } - // resets position to zero on the swipe end to avoid the unwanted date updates - void _resetPosition() { - SchedulerBinding.instance.addPostFrameCallback((_) { - if (_position.abs() == widget.width || _position.abs() == widget.height) { - _position = 0; - } - }); - } - void _updateScrollPosition() { SchedulerBinding.instance.addPostFrameCallback((_) { if (_previousViewKey.currentState == null || @@ -5623,7 +5655,6 @@ class _CalendarViewState extends State<_CalendarView> widget.width, widget.height, widget.visibleDates.length, - _allDayHeight, widget.isMobilePlatform); if (widget.view != CalendarView.month) { _horizontalLinesCount = CalendarViewHelper.getHorizontalLinesCount( @@ -5693,6 +5724,8 @@ class _CalendarViewState extends State<_CalendarView> _scrollToPosition(); } + widget.getCalendarState(_updateCalendarStateDetails); + /// Method called to update all day height, when the view changed from /// day to week views to avoid the blank space at the bottom of the view. final bool isCurrentView = @@ -5706,7 +5739,6 @@ class _CalendarViewState extends State<_CalendarView> widget.width, widget.height, widget.visibleDates.length, - _allDayHeight, widget.isMobilePlatform); /// Clear the all day panel selection when the calendar view changed @@ -5737,7 +5769,6 @@ class _CalendarViewState extends State<_CalendarView> /// When view switched from any other view to timeline view, and resource /// enabled the selection must render the first resource view. - widget.getCalendarState(_updateCalendarStateDetails); if (!CalendarViewHelper.isTimelineView(oldWidget.view) && _updateCalendarStateDetails.selectedDate != null && CalendarViewHelper.isResourceEnabled( @@ -5919,6 +5950,31 @@ class _CalendarViewState extends State<_CalendarView> final bool isCurrentView = _updateCalendarStateDetails.currentViewVisibleDates == widget.visibleDates; + + // Check and update the time interval height while the all day panel + // appointments updated(all day height is default value) for current view. + if (isCurrentView && _updateCalendarStateDetails.allDayPanelHeight != 0) { + final bool isDayView = CalendarViewHelper.isDayView( + widget.view, + widget.calendar.timeSlotViewSettings.numberOfDaysInView, + widget.calendar.timeSlotViewSettings.nonWorkingDays, + widget.calendar.monthViewSettings.numberOfWeeksInView); + final double viewHeaderHeight = CalendarViewHelper.getViewHeaderHeight( + widget.calendar.viewHeaderHeight, widget.view); + // Default all day height is 0 on week and work week view + // Default all day height is view header height on day view. + final double defaultAllDayHeight = isDayView ? viewHeaderHeight : 0; + if (_allDayHeight == defaultAllDayHeight) { + _timeIntervalHeight = _getTimeIntervalHeight( + widget.calendar, + widget.view, + widget.width, + widget.height, + widget.visibleDates.length, + widget.isMobilePlatform); + } + } + _updateAllDayHeight(isCurrentView); return MouseRegion( @@ -6135,7 +6191,6 @@ class _CalendarViewState extends State<_CalendarView> widget.width, widget.height, visibleDatesCount, - _allDayHeight, widget.isMobilePlatform); double timeToPosition = 0; final bool isTimelineView = CalendarViewHelper.isTimelineView(widget.view); @@ -6661,7 +6716,6 @@ class _CalendarViewState extends State<_CalendarView> widget.width, widget.height, widget.visibleDates.length, - _allDayHeight, widget.isMobilePlatform); final double overAllHeight = _timeIntervalHeight * _horizontalLinesCount!; @@ -6958,7 +7012,6 @@ class _CalendarViewState extends State<_CalendarView> widget.width, widget.height, widget.visibleDates.length, - _allDayHeight, widget.isMobilePlatform); if (isTimelineView) { @@ -7264,7 +7317,6 @@ class _CalendarViewState extends State<_CalendarView> widget.width, widget.height, widget.visibleDates.length, - _allDayHeight, widget.isMobilePlatform); final double timeLabelWidth = CalendarViewHelper.getTimeLabelWidth( @@ -7571,7 +7623,6 @@ class _CalendarViewState extends State<_CalendarView> widget.width, widget.height, widget.visibleDates.length, - _allDayHeight, widget.isMobilePlatform); if (yPosition! <= viewHeaderHeight + allDayPanelHeight && @@ -7960,7 +8011,6 @@ class _CalendarViewState extends State<_CalendarView> widget.width, widget.height, widget.visibleDates.length, - _allDayHeight, widget.isMobilePlatform); double minimumTimeIntervalSize = timeIntervalSize / 4; if (minimumTimeIntervalSize < 20) { @@ -8001,7 +8051,6 @@ class _CalendarViewState extends State<_CalendarView> widget.width, widget.height, widget.visibleDates.length, - _allDayHeight, widget.isMobilePlatform); double minimumTimeIntervalSize = timeIntervalSize / (widget.view == CalendarView.timelineMonth ? 2 : 4); @@ -8078,7 +8127,6 @@ class _CalendarViewState extends State<_CalendarView> widget.width, widget.height, widget.visibleDates.length, - _allDayHeight, widget.isMobilePlatform); late DateTime resizingTime; CalendarResource? resource; @@ -9160,8 +9208,15 @@ class _CalendarViewState extends State<_CalendarView> widget.calendar.onSelectionChanged); if (canRaiseLongPress || canRaiseTap || canRaiseSelectionChanged) { - final DateTime selectedDate = - _getDateFromPosition(xDetails, yDetails - viewHeaderHeight, 0)!; + final DateTime? selectedDate = + _getDateFromPosition(xDetails, yDetails - viewHeaderHeight, 0); + + /// Restrict the tap/long press callback while interact after + /// the timeslots. + if (selectedDate == null) { + return null; + } + final int timeInterval = CalendarViewHelper.getTimeInterval( widget.calendar.timeSlotViewSettings); if (appointmentView == null) { @@ -9767,10 +9822,16 @@ class _CalendarViewState extends State<_CalendarView> yPosition, timeLabelWidth); + /// Restrict the tap/long press callback while interact after + /// the timeslots. + if (selectedDate == null) { + return null; + } + if (!CalendarViewHelper.isDateTimeWithInDateTimeRange( widget.calendar.minDate, widget.calendar.maxDate, - selectedDate!, + selectedDate, timeInterval)) { return null; } @@ -9863,7 +9924,6 @@ class _CalendarViewState extends State<_CalendarView> widget.width, widget.height, widget.visibleDates.length, - _allDayHeight, widget.isMobilePlatform); final double minuteHeight = timeIntervalSize / @@ -9950,7 +10010,6 @@ class _CalendarViewState extends State<_CalendarView> double width, double height, int visibleDatesCount, - double allDayHeight, bool isMobilePlatform) { final bool isTimelineView = CalendarViewHelper.isTimelineView(view); final bool isDayView = CalendarViewHelper.isDayView( @@ -9970,20 +10029,40 @@ class _CalendarViewState extends State<_CalendarView> double viewHeaderHeight = CalendarViewHelper.getViewHeaderHeight(calendar.viewHeaderHeight, view); + double allDayViewHeight = 0; + + final bool isCurrentView = + _updateCalendarStateDetails.currentViewVisibleDates == + widget.visibleDates; if (isDayView) { - allDayHeight = _kAllDayLayoutHeight; + if (isCurrentView) { + allDayViewHeight = _kAllDayLayoutHeight > viewHeaderHeight && + _updateCalendarStateDetails.allDayPanelHeight > viewHeaderHeight + ? _updateCalendarStateDetails.allDayPanelHeight > + _kAllDayLayoutHeight + ? _kAllDayLayoutHeight + : _updateCalendarStateDetails.allDayPanelHeight + : viewHeaderHeight; + if (allDayViewHeight < _updateCalendarStateDetails.allDayPanelHeight) { + allDayViewHeight += kAllDayAppointmentHeight; + } + } else { + allDayViewHeight = viewHeaderHeight; + } + viewHeaderHeight = 0; - } else { - allDayHeight = allDayHeight > _kAllDayLayoutHeight - ? _kAllDayLayoutHeight - : allDayHeight; + } else if (isCurrentView) { + allDayViewHeight = + _updateCalendarStateDetails.allDayPanelHeight > _kAllDayLayoutHeight + ? _kAllDayLayoutHeight + : _updateCalendarStateDetails.allDayPanelHeight; } switch (view) { case CalendarView.day: case CalendarView.week: case CalendarView.workWeek: - timeIntervalHeight = (height - allDayHeight - viewHeaderHeight) / + timeIntervalHeight = (height - allDayViewHeight - viewHeaderHeight) / CalendarViewHelper.getHorizontalLinesCount( calendar.timeSlotViewSettings, view); break; diff --git a/packages/syncfusion_flutter_calendar/pubspec.yaml b/packages/syncfusion_flutter_calendar/pubspec.yaml index 08505f522..6c50c0369 100644 --- a/packages/syncfusion_flutter_calendar/pubspec.yaml +++ b/packages/syncfusion_flutter_calendar/pubspec.yaml @@ -1,18 +1,18 @@ name: syncfusion_flutter_calendar description: The Flutter Calendar widget has nine built-in configurable views that provide basic functionalities for scheduling and representing appointments/events efficiently. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-examples environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' dependencies: flutter: sdk: flutter timezone: 0.8.0 - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 - syncfusion_flutter_datepicker: ^20.3.47 + syncfusion_flutter_datepicker: ^20.4.38 intl: ">=0.15.0 <0.20.0" diff --git a/packages/syncfusion_flutter_charts/CHANGELOG.md b/packages/syncfusion_flutter_charts/CHANGELOG.md index ee804f173..0ab9f8a3b 100644 --- a/packages/syncfusion_flutter_charts/CHANGELOG.md +++ b/packages/syncfusion_flutter_charts/CHANGELOG.md @@ -1,5 +1,53 @@ ## Unreleased +**Bugs** + +* #FB37705 - Now, the circular data label builder will render properly with connector lines. + +## [20.3.69] - 12/06/2022 + +**Bugs** +* #FB39502 - Now, the series is rendered with both the [primaryXAxis](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/primaryXAxis.html) and [primaryYAxis](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/primaryYAxis.html) as [LogarithmicAxis](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/LogarithmicAxis-class.html). +* #FB39157 - Now, the [onPointTap](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/onPointTap.html) event returns the respective data point index while having the nearest x values. + +## [20.3.59] - 11/29/2022 + +**Bugs** +* #FB37704 - Now, the fast line series will render the line when the data points are outside of the range controller's. + +## [20.3.57] - 11/15/2022 + +**Bugs** +* #FB38884 - The null exception will no longer be thrown in the chart while dynamically enabling the [isVisibleInLegend](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/isVisibleInLegend.html) property for the series. + +## [20.3.56] - 11/08/2022 + +**Bugs** +* #FB37724 - Now, the Null check operator exception will no longer be thrown when refreshing the chart in the [onLegendTapped](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/onLegendTapped.html) callback. +* #FB38586 - Now, the plot band will render properly for the [LogarithmicAxis](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/LogarithmicAxis-class.html). + +## [20.3.52] - 10/26/2022 + +**Bugs** +* #FB38235 - The Null exception will no longer be thrown in trackball when using the RangeAreaSeries and AreaSeries with different data sources. + +## [20.3.50] - 10/18/2022 + +**Bugs** +* #FB37724 - Now, the series visibility gets toggled properly when setting the series visibility using the [onLegendTapped](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/onLegendTapped.html) callback. +* #FB37885 - Now, the candle series gets rendered properly when it starts updating data dynamically with a single data point. +* #FB38196 - Now, there is no exception that occurs while calling the trackball public method [show](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/TrackballBehavior/show.html) when there is no visible series in the chart. +* #FB38080 - Now, the trackball tooltip with builder will activate properly when using the [show](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/TrackballBehavior/show.html) public method if the trackball is already moved in the chart using user interaction. +* #FB38046 - Now, the doughnut series with stroke border renders properly with CornerStyle as both sided curve. +* #FB37274 - Now, Infinity or NaN toInt exception will no longer be thrown when rendering Bollinger band with mapping more number identical close point values. + +## [20.3.49] - 10/11/2022 + +**Bugs** +* #FB36732 - Now, while performing zooming and panning, the hidden series won't become visible. + +## [20.3.47] - 09/29/2022 + **Bugs** * #FB37559 - Now, the `NoSuchMethodError` exception will not be thrown when a tooltip is activated using the `showByIndex` method in circular charts. * #FB37311 - The FastLineSeries renders when all the y-values are the same. diff --git a/packages/syncfusion_flutter_charts/README.md b/packages/syncfusion_flutter_charts/README.md index 5e1745d98..824caf187 100644 --- a/packages/syncfusion_flutter_charts/README.md +++ b/packages/syncfusion_flutter_charts/README.md @@ -84,15 +84,12 @@ Explore the full capabilities of our Flutter widgets on your device by installin

- - + +

- -

-

@@ -320,7 +317,7 @@ Widget build(BuildContext context) { ## Support and Feedback -* For any other queries, reach our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev) or post the queries through the [Community forums](https://www.syncfusion.com/forums?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev). +* For any other queries, reach our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev) or post the queries through the [Community forums](https://www.syncfusion.com/forums?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev). * To renew the subscription, click [renew](https://www.syncfusion.com/sales/products?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev) or contact our sales team at salessupport@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Flutter Widgets @@ -330,4 +327,4 @@ The Syncfusion's [Flutter library](https://www.syncfusion.com/flutter-widgets?ut Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [JavaScript](https://www.syncfusion.com/javascript-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Angular](https://www.syncfusion.com/angular-ui-components?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [React](https://www.syncfusion.com/react-ui-components?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Vue](https://www.syncfusion.com/vue-ui-components?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), and [Blazor](https://www.syncfusion.com/blazor-components?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Flutter](https://www.syncfusion.com/flutter-widgets?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [UWP](https://www.syncfusion.com/uwp-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [WPF](https://www.syncfusion.com/wpf-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [UWP](https://www.syncfusion.com/uwp-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev) and [WinUI](https://www.syncfusion.com/winui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [JavaScript](https://www.syncfusion.com/javascript-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Angular](https://www.syncfusion.com/angular-ui-components?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [React](https://www.syncfusion.com/react-ui-components?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Vue](https://www.syncfusion.com/vue-ui-components?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev)), mobile ([.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Xamarin](https://www.syncfusion.com/xamarin-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Flutter](https://www.syncfusion.com/flutter-widgets?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [UWP](https://www.syncfusion.com/uwp-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev)), and desktop development ([.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Flutter](https://www.syncfusion.com/flutter-widgets), [WinForms](https://www.syncfusion.com/winforms-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [WPF](https://www.syncfusion.com/wpf-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [UWP](https://www.syncfusion.com/uwp-ui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), and [WinUI](https://www.syncfusion.com/winui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_charts/example/linux/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_charts/example/linux/flutter/generated_plugin_registrant.cc index e71a16d23..d38195aa0 100644 --- a/packages/syncfusion_flutter_charts/example/linux/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_charts/example/linux/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_charts/example/linux/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_charts/example/linux/flutter/generated_plugin_registrant.h index e0f0a47bc..9bf747894 100644 --- a/packages/syncfusion_flutter_charts/example/linux/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_charts/example/linux/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_charts/example/linux/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_charts/example/linux/flutter/generated_plugins.cmake index 2e1de87a7..51436ae8c 100644 --- a/packages/syncfusion_flutter_charts/example/linux/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_charts/example/linux/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_charts/example/pubspec.yaml b/packages/syncfusion_flutter_charts/example/pubspec.yaml index 3679c0b64..29cba666c 100644 --- a/packages/syncfusion_flutter_charts/example/pubspec.yaml +++ b/packages/syncfusion_flutter_charts/example/pubspec.yaml @@ -4,7 +4,7 @@ version: 1.0.0+1 publish_to: 'none' environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: @@ -13,6 +13,9 @@ dependencies: path: ../ cupertino_icons: ^1.0.2 -flutter: +dev_dependencies: + flutter_test: + sdk: flutter +flutter: uses-material-design: true diff --git a/packages/syncfusion_flutter_charts/example/windows/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_charts/example/windows/flutter/generated_plugin_registrant.cc index 8b6d4680a..4bfa0f3a3 100644 --- a/packages/syncfusion_flutter_charts/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_charts/example/windows/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_charts/example/windows/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_charts/example/windows/flutter/generated_plugin_registrant.h index dc139d85a..9846246b4 100644 --- a/packages/syncfusion_flutter_charts/example/windows/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_charts/example/windows/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_charts/example/windows/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_charts/example/windows/flutter/generated_plugins.cmake index b93c4c30c..4d10c2518 100644 --- a/packages/syncfusion_flutter_charts/example/windows/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_charts/example/windows/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/annotation/annotation_settings.dart b/packages/syncfusion_flutter_charts/lib/src/chart/annotation/annotation_settings.dart index 5652105b4..96dffafdb 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/annotation/annotation_settings.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/annotation/annotation_settings.dart @@ -247,7 +247,7 @@ class CartesianChartAnnotation { /// child: const Text('Annotation')), /// x: 3, /// y: 60, - /// verticalAllignment: ChartAlignment.near + /// verticalAlignment: ChartAlignment.near /// ) /// ], /// ) diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/axis/category_axis.dart b/packages/syncfusion_flutter_charts/lib/src/chart/axis/category_axis.dart index 625a365c6..7f4188414 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/axis/category_axis.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/axis/category_axis.dart @@ -488,7 +488,7 @@ class CategoryAxisRenderer extends ChartAxisRenderer { for (; tempInterval <= _axisDetails.visibleRange!.maximum; tempInterval += _axisDetails.visibleRange!.interval) { - if (withInRange(tempInterval, _axisDetails.visibleRange!)) { + if (withInRange(tempInterval, _axisDetails)) { position = tempInterval.round(); if (position <= -1 || (_axisDetails.labels.isNotEmpty && diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/axis/datetime_axis.dart b/packages/syncfusion_flutter_charts/lib/src/chart/axis/datetime_axis.dart index df3c374dc..caff39cde 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/axis/datetime_axis.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/axis/datetime_axis.dart @@ -510,7 +510,7 @@ class DateTimeAxisRenderer extends ChartAxisRenderer { interval = _axisDetails._alignRangeStart( this, interval, _axisDetails.visibleRange!.interval); while (interval <= _axisDetails.visibleRange!.maximum) { - if (withInRange(interval, _axisDetails.visibleRange!)) { + if (withInRange(interval, _axisDetails)) { prevInterval = (label.isNotEmpty) ? _axisDetails .visibleLabels[_axisDetails.visibleLabels.length - 1].value diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/axis/datetime_category_axis.dart b/packages/syncfusion_flutter_charts/lib/src/chart/axis/datetime_category_axis.dart index 4bad8c450..858bf10f2 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/axis/datetime_category_axis.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/axis/datetime_category_axis.dart @@ -540,7 +540,7 @@ class DateTimeCategoryAxisRenderer extends ChartAxisRenderer { for (; tempInterval <= _axisDetails.visibleRange!.maximum; tempInterval += interval) { - if (withInRange(tempInterval, _axisDetails.visibleRange!)) { + if (withInRange(tempInterval, _axisDetails)) { position = tempInterval.round(); if (position <= -1 || (_axisDetails.labels.isNotEmpty && diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/axis/plotband.dart b/packages/syncfusion_flutter_charts/lib/src/chart/axis/plotband.dart index 5db7a5f9c..2c1e60bfa 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/axis/plotband.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/axis/plotband.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:flutter/material.dart'; import 'package:syncfusion_flutter_core/core.dart'; @@ -887,28 +889,27 @@ class _PlotBandPainter extends CustomPainter { axisDetails.orientation == AxisOrientation.vertical ? axis.plotOffset : 0)); - - startValue = axis is LogarithmicAxis - ? calculateLogBaseValue(startValue, axis.logBase) - : startValue; - endValue = axis is LogarithmicAxis - ? calculateLogBaseValue(endValue, axis.logBase) - : endValue; + final num visibleMin = axis is LogarithmicAxis + ? pow(axis.logBase, axisDetails.visibleRange!.minimum) + : axisDetails.visibleRange!.minimum; + final num visibleMax = axis is LogarithmicAxis + ? pow(axis.logBase, axisDetails.visibleRange!.maximum) + : axisDetails.visibleRange!.maximum; endValue < 0 - ? endValue <= axisDetails.visibleRange!.minimum - ? endValue = axisDetails.visibleRange!.minimum + ? endValue <= visibleMin + ? endValue = visibleMin : endValue = endValue - : endValue >= axisDetails.visibleRange!.maximum - ? endValue = axisDetails.visibleRange!.maximum + : endValue >= visibleMax + ? endValue = visibleMax : endValue = endValue; startValue < 0 - ? startValue <= axisDetails.visibleRange!.minimum - ? startValue = axisDetails.visibleRange!.minimum + ? startValue <= visibleMin + ? startValue = visibleMin : startValue = startValue - : startValue >= axisDetails.visibleRange!.maximum - ? startValue = axisDetails.visibleRange!.maximum + : startValue >= visibleMax + ? startValue = visibleMax : startValue = startValue; startPoint = calculatePoint(startValue, startValue, axisDetails, diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/base/chart_base.dart b/packages/syncfusion_flutter_charts/lib/src/chart/base/chart_base.dart index 8b87c8ae7..8a61fbe9c 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/base/chart_base.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/base/chart_base.dart @@ -986,33 +986,6 @@ class SfCartesianChart extends StatefulWidget { ///``` final ImageProvider? plotAreaBackgroundImage; - /// Data points or series can be selected while performing interaction on the chart. - /// It can also be selected at the initial rendering using this property. - /// - /// - ///```dart - ///SelectionBehavior _selectionBehavior; - /// - ///@override - ///void initState() { - /// _selectionBehavior = SelectionBehavior( enable: true); - /// super.initState(); - /// } - /// - ///Widget build(BuildContext context) { - /// return Container( - /// child: SfCartesianChart( - /// series: >[ - /// BarSeries( - /// initialSelectedDataIndexes: [2, 0], - /// selectionBehavior: _selectionBehavior - /// ), - /// ], - /// ) - /// ); - ///} - ///``` - /// By setting this, the orientation of x-axis is set to vertical and orientation of /// y-axis is set to horizontal. /// @@ -1950,7 +1923,8 @@ class SfCartesianChartState extends State } } if (_stateProperties.renderingDetails.initialRender! || - (_stateProperties.renderingDetails.widgetNeedUpdate && + ((_stateProperties.renderingDetails.widgetNeedUpdate || + _stateProperties.isRedrawByZoomPan) && !_stateProperties.legendToggling && (_stateProperties.renderingDetails.oldDeviceOrientation == MediaQuery.of(context).orientation))) { @@ -1963,10 +1937,6 @@ class SfCartesianChartState extends State seriesRendererDetails.series.isVisible)) { legendCheck = true; } else { - if (_stateProperties.renderingDetails.legendToggleStates.isNotEmpty) { - _stateProperties.renderingDetails.legendToggleStates.clear(); - } - seriesRendererDetails.visible = _stateProperties.renderingDetails.initialRender! ? seriesRendererDetails.series.isVisible @@ -2040,7 +2010,7 @@ class SfCartesianChartState extends State null && _stateProperties.renderingDetails.chartLegend .legendCollections!.isNotEmpty - ? _getLegendItemCollection(index)!.text + ? _getLegendItemCollection(index)?.text : null; final String? seriesName = visibleSeriesDetails.series.name; @@ -2769,8 +2739,7 @@ class ContainerArea extends StatelessWidget { point = dataPoints[j]; if (point.isVisible && !point.isGap && - withInRange(point.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!)) { + withInRange(point.xValue, seriesRendererDetails.xAxisDetails!)) { labelWidget = (series.dataLabelSettings.builder != null) ? series.dataLabelSettings.builder!( series.dataSource[point.overallDataPointIndex!], @@ -3282,6 +3251,13 @@ class ContainerArea extends StatelessWidget { trackballRenderingDetails.isLongPressActivated = false; } + + if (chart.trackballBehavior.enable && + chart.trackballBehavior.activationMode == ActivationMode.singleTap && + chart.trackballBehavior.builder != null) { + trackballRenderingDetails.isMoving = false; + } + // ignore: unnecessary_null_comparison if ((chart.crosshairBehavior != null && chart.crosshairBehavior.enable && @@ -3525,9 +3501,10 @@ class ContainerArea extends StatelessWidget { // ignore: unnecessary_null_comparison if ((chart.trackballBehavior != null && chart.trackballBehavior.enable == true && + _findSeries(position!) != null && chart.trackballBehavior.activationMode == ActivationMode.longPress) && - SeriesHelper.getSeriesRendererDetails(_findSeries(position!)!).series + SeriesHelper.getSeriesRendererDetails(_findSeries(position)!).series is! ErrorBarSeries && // ignore: unnecessary_null_comparison position != null && diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/base/series_base.dart b/packages/syncfusion_flutter_charts/lib/src/chart/base/series_base.dart index 29b2b4525..0a44c85f9 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/base/series_base.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/base/series_base.dart @@ -174,16 +174,27 @@ class ChartSeriesPanel { series.sortFieldValueMapper != null; // ignore: unnecessary_null_comparison if (series.dataSource != null) { - dynamic xVal; + dynamic previousX, currentX, nextX; dynamic yVal; num? low, high; num maxYValue = 0; seriesRendererDetails.overAllDataPoints = ?>[]; + CartesianChartPoint? nextPoint; + CartesianChartPoint? prevPoint; for (int pointIndex = 0; pointIndex < series.dataSource.length;) { currentPoint = getChartPoint( seriesRenderer, series.dataSource[pointIndex], pointIndex); - xVal = currentPoint?.x; + if (pointIndex < series.dataSource.length - 1 && + seriesRendererDetails.seriesType != 'histogram') { + nextPoint = getChartPoint(seriesRenderer, + series.dataSource[pointIndex + 1], pointIndex + 1); + } else { + nextPoint = currentPoint; + } + currentX = currentPoint?.x; + nextX = nextPoint?.x; + previousX = pointIndex == 0 ? currentPoint?.x : prevPoint?.x; yVal = currentPoint?.y; high = currentPoint?.high; low = currentPoint?.low; @@ -196,7 +207,7 @@ class ChartSeriesPanel { currentPoint!.maxYValue = maxYValue; } - if (xVal != null) { + if (currentX != null) { num bubbleSize; final dynamic xAxis = seriesRendererDetails.xAxisDetails?.axis; final dynamic yAxis = seriesRendererDetails.yAxisDetails?.axis; @@ -204,19 +215,25 @@ class ChartSeriesPanel { dynamic xMax = xAxis?.visibleMaximum; final dynamic yMin = yAxis?.visibleMinimum; final dynamic yMax = yAxis?.visibleMaximum; - dynamic xPointValue = xVal; + dynamic xPointValue = currentX; bool isXVisibleRange = true; bool isYVisibleRange = true; if (xAxis is DateTimeAxis) { xMin = xMin != null ? xMin.millisecondsSinceEpoch : xMin; xMax = xMax != null ? xMax.millisecondsSinceEpoch : xMax; xPointValue = xPointValue?.millisecondsSinceEpoch; + nextX = nextX?.millisecondsSinceEpoch; + previousX = previousX?.millisecondsSinceEpoch; } else if (xAxis is CategoryAxis) { xPointValue = pointIndex; + nextX = pointIndex + 1; + previousX = pointIndex - 1; } else if (xAxis is DateTimeCategoryAxis) { xMin = xMin != null ? xMin.millisecondsSinceEpoch : xMin; xMax = xMax != null ? xMax.millisecondsSinceEpoch : xMax; xPointValue = xPointValue?.millisecondsSinceEpoch; + nextX = nextX?.millisecondsSinceEpoch; + previousX = previousX?.millisecondsSinceEpoch; } if (xMin != null || xMax != null) { isXVisibleRange = false; @@ -279,11 +296,24 @@ class ChartSeriesPanel { : yMax != null ? (yVal ?? high) <= yMax : false) == - true) { + true || + // If the data points present between the range the following conditions are working. + + // This condition will works when having a range between the data points and data points between the given range. + // Also works when having a visible minimum value alone and data point outside the range this is for left side point. + ((xMin != null && xPointValue <= xMin && nextX > xMin) || + // This condition will work when having data points outside the given range and nearest to the given range and don't have a points between th range. + ((xMin != null && xMax != null) && + ((xPointValue <= xMin && nextX >= xMax) || + (previousX <= xMin && xPointValue >= xMax))) || + // This condition will works when having a range between the data points and data points between the given range. + // Also works when having a visible maximum value and data point outside the range this is for right side point. + (xMax != null && + (previousX < xMax && xPointValue >= xMax)))) { isXVisibleRange = true; isYVisibleRange = true; seriesRendererDetails.dataPoints.add(currentPoint!); - seriesRendererDetails.xValues!.add(xVal); + seriesRendererDetails.xValues!.add(currentX); if (seriesRenderer is BubbleSeriesRenderer) { bubbleSize = series.sizeValueMapper == null ? 4 @@ -401,6 +431,7 @@ class ChartSeriesPanel { pointIndex = seriesRendererDetails.seriesType != 'histogram' ? pointIndex + 1 : pointIndex + yVal as int; + prevPoint = currentPoint; } if (seriesRendererDetails.xAxisDetails is DateTimeCategoryAxisRenderer) { diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/chart_series/series.dart b/packages/syncfusion_flutter_charts/lib/src/chart/chart_series/series.dart index bb2695613..bfc62ccca 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/chart_series/series.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/chart_series/series.dart @@ -1402,13 +1402,16 @@ class ChartSeriesController { if (needUpdate) { if (seriesRendererDetails.dataPoints.length > index == true) { seriesRendererDetails.dataPoints[index] = currentPoint; + seriesRendererDetails.overAllDataPoints[index] = currentPoint; } } else { if (seriesRendererDetails.dataPoints.length == index) { seriesRendererDetails.dataPoints.add(currentPoint); + seriesRendererDetails.overAllDataPoints.add(currentPoint); } else if (seriesRendererDetails.dataPoints.length > index == true && index >= 0) { seriesRendererDetails.dataPoints.insert(index, currentPoint); + seriesRendererDetails.overAllDataPoints.insert(index, currentPoint); } } @@ -1654,6 +1657,7 @@ class ChartSeriesController { _needXRecalculation = true; } seriesRendererDetails.dataPoints.removeAt(index); + seriesRendererDetails.overAllDataPoints.removeAt(index); // ignore: unnecessary_null_comparison if (currentPoint != null) { if (!_needXRecalculation && diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/chart_series/series_renderer_properties.dart b/packages/syncfusion_flutter_charts/lib/src/chart/chart_series/series_renderer_properties.dart index 2d02192ec..698f554d7 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/chart_series/series_renderer_properties.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/chart_series/series_renderer_properties.dart @@ -57,7 +57,7 @@ class SeriesRendererDetails { bool hasSideBySideInfo = false; /// Specifies whether the series has tooltip behavior - bool hasTooltip = false; + bool isCalculateRegion = false; /// Specifies whether to calculate region for the waterfall/ stacked bar/ stacked column bool needsToCalculateRegion = false; @@ -410,13 +410,12 @@ class SeriesRendererDetails { seriesType.contains('box')); // ignore: unnecessary_null_comparison - hasTooltip = chart.tooltipBehavior != null && - seriesType != 'errorbar' && - (chart.tooltipBehavior.enable || - seriesRendererDetails.series.onPointTap != null || - seriesRendererDetails.series.onPointDoubleTap != null || - seriesRendererDetails.series.onPointLongPress != null) && - seriesType != 'boxandwhisker'; + isCalculateRegion = seriesType != 'errorbar' && + seriesType != 'boxandwhisker' && + ((chart.tooltipBehavior.enable) || + (seriesRendererDetails.series.onPointTap != null || + seriesRendererDetails.series.onPointDoubleTap != null || + seriesRendererDetails.series.onPointLongPress != null)); } /// To find the region data of a series @@ -431,7 +430,7 @@ class SeriesRendererDetails { num? midX, num? midY]) { if (withInRange(seriesRendererDetails.dataPoints[pointIndex].xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!)) { + seriesRendererDetails.xAxisDetails!)) { seriesRendererDetails.visibleDataPoints! .add(seriesRendererDetails.dataPoints[pointIndex]); seriesRendererDetails.dataPoints[pointIndex].visiblePointIndex = @@ -483,7 +482,7 @@ class SeriesRendererDetails { } } // ignore: unnecessary_null_comparison - if (hasTooltip) { + if (isCalculateRegion) { calculateTooltipRegion( point, seriesIndex, seriesRendererDetails, stateProperties); } diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/chart_series/xy_data_series.dart b/packages/syncfusion_flutter_charts/lib/src/chart/chart_series/xy_data_series.dart index aa7a6ce69..2ff869f7d 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/chart_series/xy_data_series.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/chart_series/xy_data_series.dart @@ -584,8 +584,8 @@ abstract class XyDataSeriesRenderer extends CartesianSeriesRenderer { !seriesType.contains('stackedbar')) ? prevPoint.y ?? 0 : 0; - currentPoint.open = 0; - currentPoint.close = 0; + currentPoint.open = currentPoint.open ?? 0; + currentPoint.close = currentPoint.close ?? 0; currentPoint.isVisible = false; } else if (seriesType.contains('line') || seriesType == 'area' || diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/common/data_label_renderer.dart b/packages/syncfusion_flutter_charts/lib/src/chart/common/data_label_renderer.dart index ce84577e0..8a38f7359 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/common/data_label_renderer.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/common/data_label_renderer.dart @@ -875,15 +875,40 @@ void triggerDataLabelEvent(SfCartesianChart chart, SeriesHelper.getSeriesRendererDetails(seriesRenderer); final List>? dataPoints = seriesRendererDetails.visibleDataPoints; + late CartesianChartPoint currentPoint; + ChartLocation? dataLabelLocation; + final String seriesType = seriesRendererDetails.seriesType; for (int pointIndex = 0; pointIndex < dataPoints!.length; pointIndex++) { + currentPoint = dataPoints[pointIndex]; + dataLabelLocation = (currentPoint.dataLabelRegion != null && + currentPoint.dataLabelRegion!.contains(position)) + ? currentPoint.labelLocation + : (currentPoint.dataLabelRegion2 != null && + currentPoint.dataLabelRegion2!.contains(position)) + ? currentPoint.labelLocation2 + : (seriesType == 'hiloopenclose' || + seriesType == 'candle' || + seriesType == 'boxandwhisker') && + (currentPoint.dataLabelRegion3 != null && + currentPoint.dataLabelRegion3!.contains(position)) + ? currentPoint.labelLocation3 + : (seriesType == 'hiloopenclose' || + seriesType == 'candle' || + seriesType == 'boxandwhisker') && + (currentPoint.dataLabelRegion4 != null && + currentPoint.dataLabelRegion4!.contains(position)) + ? currentPoint.labelLocation4 + : (seriesRendererDetails.seriesType == 'boxandwhisker' && + currentPoint.dataLabelRegion5 != null && + currentPoint.dataLabelRegion5!.contains(position)) + ? currentPoint.labelLocation5 + : null; if (seriesRendererDetails.series.dataLabelSettings.isVisible == true && - dataPoints[pointIndex].dataLabelRegion != null && - dataPoints[pointIndex].dataLabelRegion!.contains(position)) { - final CartesianChartPoint point = dataPoints[pointIndex]; + dataLabelLocation != null) { final Offset position = - Offset(point.labelLocation!.x, point.labelLocation!.y); + Offset(dataLabelLocation.x, dataLabelLocation.y); dataLabelTapEvent(chart, seriesRendererDetails.series.dataLabelSettings, - pointIndex, point, position, seriesIndex); + pointIndex, currentPoint, position, seriesIndex); break; } } @@ -1076,7 +1101,7 @@ void _drawDataLabelRectAndText( if (isRangeSeries || isBoxSeries) { if (withInRange(isBoxSeries ? point.minimum : point.low, - seriesRendererDetails.yAxisDetails!.visibleRange!)) { + seriesRendererDetails.yAxisDetails!)) { seriesRendererDetails.renderer.drawDataLabel( index, canvas, @@ -1565,35 +1590,33 @@ bool isLabelWithinRange(SeriesRendererDetails seriesRendererDetails, seriesRendererDetails.seriesType.contains('boxandwhisker'); if (seriesRendererDetails.yAxisDetails is! LogarithmicAxisDetails) { isWithInRange = withInRange( - point.xValue, seriesRendererDetails.xAxisDetails!.visibleRange!) && + point.xValue, seriesRendererDetails.xAxisDetails!) && (seriesRendererDetails.seriesType.contains('range') || seriesRendererDetails.seriesType == 'hilo' ? (isBoxSeries && point.minimum != null && point.maximum != null) || (!isBoxSeries && point.low != null && point.high != null) && - (withInRange( - isBoxSeries ? point.minimum : point.low, - seriesRendererDetails - .yAxisDetails!.visibleRange!) || + (withInRange(isBoxSeries ? point.minimum : point.low, + seriesRendererDetails.yAxisDetails!) || withInRange(isBoxSeries ? point.maximum : point.high, - seriesRendererDetails.yAxisDetails!.visibleRange!)) + seriesRendererDetails.yAxisDetails!)) : seriesRendererDetails.seriesType == 'hiloopenclose' || seriesRendererDetails.seriesType.contains('candle') || isBoxSeries ? (withInRange(isBoxSeries ? point.minimum : point.low, - seriesRendererDetails.yAxisDetails!.visibleRange!) && + seriesRendererDetails.yAxisDetails!) && withInRange(isBoxSeries ? point.maximum : point.high, - seriesRendererDetails.yAxisDetails!.visibleRange!) && + seriesRendererDetails.yAxisDetails!) && withInRange(isBoxSeries ? point.lowerQuartile : point.open, - seriesRendererDetails.yAxisDetails!.visibleRange!) && + seriesRendererDetails.yAxisDetails!) && withInRange(isBoxSeries ? point.upperQuartile : point.close, - seriesRendererDetails.yAxisDetails!.visibleRange!)) + seriesRendererDetails.yAxisDetails!)) : withInRange( seriesRendererDetails.seriesType.contains('100') ? point.cumulativeValue : seriesRendererDetails.seriesType == 'waterfall' ? point.endValue ?? 0 : point.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!)); + seriesRendererDetails.yAxisDetails!)); } return isWithInRange; } diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/bar_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/bar_painter.dart index 1bbae4ce3..76375cd95 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/bar_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/bar_painter.dart @@ -255,13 +255,12 @@ class BarChartPainter extends CustomPainter { seriesRendererDetails.setSeriesProperties(seriesRendererDetails); for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) { point = dataPoints[pointIndex]; - final bool withInXRange = withInRange( - point.xValue, seriesRendererDetails.xAxisDetails!.visibleRange!); + final bool withInXRange = + withInRange(point.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison final bool withInYRange = point != null && point.yValue != null && - withInRange(point.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange(point.yValue, seriesRendererDetails.yAxisDetails!); if (withInXRange || withInYRange) { seriesRendererDetails.calculateRegionData(stateProperties, seriesRendererDetails, painterKey.index, point, pointIndex); diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/bubble_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/bubble_painter.dart index 6670808a3..bace34112 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/bubble_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/bubble_painter.dart @@ -223,13 +223,13 @@ class BubbleChartPainter extends CustomPainter { for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) { final CartesianChartPoint currentPoint = dataPoints[pointIndex]; - final bool withInXRange = withInRange(currentPoint.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + final bool withInXRange = withInRange( + currentPoint.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison final bool withInYRange = currentPoint != null && currentPoint.yValue != null && - withInRange(currentPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange( + currentPoint.yValue, seriesRendererDetails.yAxisDetails!); if (withInXRange || withInYRange) { seriesRendererDetails.calculateRegionData( stateProperties, diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/candle_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/candle_painter.dart index 8461e1bec..e15f3d43c 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/candle_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/candle_painter.dart @@ -116,15 +116,29 @@ class CandleSeriesRenderer extends XyDataSeriesRenderer { CandleSegment candleSegment, SegmentProperties segmentProperties) { final SeriesRendererDetails candleSeriesDetails = SeriesHelper.getSeriesRendererDetails(segmentProperties.seriesRenderer); + // While removing the data point the overallDataPointIndex value is not updated based on + // currently available overall data point, it stick with the old overallDataPointIndex value. + // So, when check the candle series overAllDataPoints by overallDataPointIndex value it through + // range error exception. So, currently we fixed this by checking the length of overAllDataPoints + // instead of overallDataPointIndex when the overallDataPointIndex value greater than overAllDataPoints length. + + final int overallDataPointIndex = + segmentProperties.currentPoint!.overallDataPointIndex!; + final int overAllDataPointsCount = + candleSeriesDetails.overAllDataPoints.length; if (_currentSeriesDetails.candleSeries.enableSolidCandles! && segmentProperties.isSolid) { return (candleSeriesDetails .overAllDataPoints[ - segmentProperties.currentPoint!.overallDataPointIndex!]! + (overAllDataPointsCount - 1 < overallDataPointIndex) + ? overAllDataPointsCount - 1 + : overallDataPointIndex]! .open < candleSeriesDetails .overAllDataPoints[ - segmentProperties.currentPoint!.overallDataPointIndex!]! + (overAllDataPointsCount - 1 < overallDataPointIndex) + ? overAllDataPointsCount - 1 + : overallDataPointIndex]! .close) ? _currentSeriesDetails.candleSeries.bullColor : _currentSeriesDetails.candleSeries.bearColor; @@ -132,13 +146,16 @@ class CandleSeriesRenderer extends XyDataSeriesRenderer { final Color? color = segmentProperties.currentPoint!.overallDataPointIndex! - 1 >= 0 && (candleSeriesDetails - .overAllDataPoints[segmentProperties - .currentPoint!.overallDataPointIndex! - - 1]! + .overAllDataPoints[ + (overAllDataPointsCount - 1 < overallDataPointIndex) + ? overAllDataPointsCount - 2 + : overallDataPointIndex - 1]! .close > candleSeriesDetails - .overAllDataPoints[segmentProperties - .currentPoint!.overallDataPointIndex!]! + .overAllDataPoints[ + (overAllDataPointsCount - 1 < overallDataPointIndex) + ? overAllDataPointsCount - 1 + : overallDataPointIndex]! .close) ? _currentSeriesDetails.candleSeries.bearColor : _currentSeriesDetails.candleSeries.bullColor; @@ -257,11 +274,13 @@ class CandlePainter extends CustomPainter { seriesRendererDetails.setSeriesProperties(seriesRendererDetails); // ignore: unnecessary_null_comparison final bool isTooltipEnabled = chart.tooltipBehavior != null; - final bool hasTooltip = isTooltipEnabled && - (chart.tooltipBehavior.enable || - seriesRendererDetails.series.onPointTap != null || + final bool isPointTapEnabled = + seriesRendererDetails.series.onPointTap != null || seriesRendererDetails.series.onPointDoubleTap != null || - seriesRendererDetails.series.onPointLongPress != null); + seriesRendererDetails.series.onPointLongPress != null; + final bool isCalculateRegion = + (isTooltipEnabled && chart.tooltipBehavior.enable) || + isPointTapEnabled; final bool hasSeriesElements = seriesRendererDetails.visible! && (series.markerSettings.isVisible || series.dataLabelSettings.isVisible || @@ -269,7 +288,8 @@ class CandlePainter extends CustomPainter { chart.tooltipBehavior.enable && (isTooltipEnabled && chart.tooltipBehavior.enable && - series.enableTooltip))); + series.enableTooltip)) || + isPointTapEnabled); seriesRendererDetails.sideBySideInfo = calculateSideBySideInfo( seriesRendererDetails.renderer, stateProperties); final num? sideBySideMinimumVal = @@ -287,16 +307,14 @@ class CandlePainter extends CustomPainter { point.low != null && point.open != null && point.close != null) { - withInHighLowRange = withInRange(point.high, - seriesRendererDetails.yAxisDetails!.visibleRange!) && - withInRange( - point.low, seriesRendererDetails.yAxisDetails!.visibleRange!); - withInOpenCloseRange = withInRange(point.open, - seriesRendererDetails.yAxisDetails!.visibleRange!) && - withInRange(point.close, - seriesRendererDetails.yAxisDetails!.visibleRange!); - final bool withInXRange = withInRange( - point.xValue, seriesRendererDetails.xAxisDetails!.visibleRange!); + withInHighLowRange = + withInRange(point.high, seriesRendererDetails.yAxisDetails!) && + withInRange(point.low, seriesRendererDetails.yAxisDetails!); + withInOpenCloseRange = + withInRange(point.open, seriesRendererDetails.yAxisDetails!) && + withInRange(point.close, seriesRendererDetails.yAxisDetails!); + final bool withInXRange = + withInRange(point.xValue, seriesRendererDetails.xAxisDetails!); if (withInXRange || (withInHighLowRange && withInOpenCloseRange)) { if (withInXRange) { seriesRendererDetails.visibleDataPoints! @@ -421,7 +439,7 @@ class CandlePainter extends CustomPainter { (point.markerPoint!.x - point.markerPoint2!.x).abs(), seriesRendererDetails.series.borderWidth); } - if (hasTooltip) { + if (isCalculateRegion) { calculateTooltipRegion( point, seriesIndex, seriesRendererDetails, stateProperties); } diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/column_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/column_painter.dart index 901a80555..fb437df98 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/column_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/column_painter.dart @@ -266,13 +266,12 @@ class ColumnChartPainter extends CustomPainter { seriesRendererDetails.setSeriesProperties(seriesRendererDetails); for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) { point = dataPoints[pointIndex]; - final bool withInXRange = withInRange( - point.xValue, seriesRendererDetails.xAxisDetails!.visibleRange!); + final bool withInXRange = + withInRange(point.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison final bool withInYRange = point != null && point.yValue != null && - withInRange(point.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange(point.yValue, seriesRendererDetails.yAxisDetails!); if (withInXRange || withInYRange) { seriesRendererDetails.calculateRegionData(stateProperties, seriesRendererDetails, painterKey.index, point, pointIndex); diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/error_bar_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/error_bar_painter.dart index c9bab55cf..f4cf24df3 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/error_bar_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/error_bar_painter.dart @@ -167,13 +167,12 @@ class ErrorBarChartPainter extends CustomPainter { seriesRendererDetails.setSeriesProperties(seriesRendererDetails); for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) { point = dataPoints[pointIndex]; - final bool withInXRange = withInRange( - point.xValue, seriesRendererDetails.xAxisDetails!.visibleRange!); + final bool withInXRange = + withInRange(point.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison final bool withInYRange = point != null && point.yValue != null && - withInRange(point.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange(point.yValue, seriesRendererDetails.yAxisDetails!); if (withInXRange || withInYRange) { seriesRendererDetails.calculateRegionData(stateProperties, seriesRendererDetails, painterKey.index, point, pointIndex); diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/fastline_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/fastline_painter.dart index 9dc0fbd6c..7c14a9f7c 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/fastline_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/fastline_painter.dart @@ -214,6 +214,10 @@ class FastLineChartPainter extends CustomPainter { } // ignore: unnecessary_null_comparison final bool hasTooltipBehavior = chart.tooltipBehavior != null; + final bool isPointTapEnabled = + seriesRendererDetails.series.onPointTap != null || + seriesRendererDetails.series.onPointDoubleTap != null || + seriesRendererDetails.series.onPointLongPress != null; final bool hasSeriesElements = seriesRendererDetails.visible! && (series.markerSettings.isVisible || series.dataLabelSettings.isVisible || @@ -221,12 +225,11 @@ class FastLineChartPainter extends CustomPainter { chart.tooltipBehavior.enable && (hasTooltipBehavior && chart.tooltipBehavior.enable && - series.enableTooltip))); - final bool hasTooltip = hasTooltipBehavior && - (chart.tooltipBehavior.enable || - seriesRendererDetails.series.onPointTap != null || - seriesRendererDetails.series.onPointDoubleTap != null || - seriesRendererDetails.series.onPointLongPress != null); + series.enableTooltip)) || + isPointTapEnabled); + final bool isCalculateRegion = + (hasTooltipBehavior && chart.tooltipBehavior.enable) || + isPointTapEnabled; for (int pointIndex = 0; pointIndex < seriesRendererDetails.dataPoints.length; pointIndex++) { @@ -237,36 +240,36 @@ class FastLineChartPainter extends CustomPainter { (prevYValue - yVal).abs() >= yTolerance) { point = currentPoint; dataPoints.add(currentPoint); - bool withInXRange = withInRange(currentPoint.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + bool withInXRange = withInRange( + currentPoint.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison bool withInYRange = currentPoint != null && currentPoint.yValue != null && - withInRange(currentPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange( + currentPoint.yValue, seriesRendererDetails.yAxisDetails!); bool inRange = withInXRange || withInYRange; if (!inRange && (pointIndex + 1 < seriesRendererDetails.dataPoints.length)) { final CartesianChartPoint? nextPoint = seriesRendererDetails.dataPoints[pointIndex + 1]; - withInXRange = withInRange(nextPoint!.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + withInXRange = withInRange( + nextPoint!.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison withInYRange = nextPoint != null && nextPoint.yValue != null && - withInRange(nextPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange( + nextPoint.yValue, seriesRendererDetails.yAxisDetails!); inRange = withInXRange || withInYRange; if (!inRange && pointIndex - 1 >= 0) { final CartesianChartPoint? prevPoint = seriesRendererDetails.dataPoints[pointIndex - 1]; - withInXRange = withInRange(prevPoint!.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + withInXRange = withInRange( + prevPoint!.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison withInYRange = prevPoint != null && prevPoint.yValue != null && - withInRange(prevPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange( + prevPoint.yValue, seriesRendererDetails.yAxisDetails!); } } if (withInXRange || withInYRange) { @@ -303,7 +306,7 @@ class FastLineChartPainter extends CustomPainter { } } - if (hasTooltip) { + if (isCalculateRegion) { calculateTooltipRegion( point, seriesIndex, seriesRendererDetails, stateProperties); } diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/hilo_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/hilo_painter.dart index 144f3aadd..72c6d6d50 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/hilo_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/hilo_painter.dart @@ -225,11 +225,13 @@ class HiloPainter extends CustomPainter { } // ignore: unnecessary_null_comparison final bool isTooltipEnabled = chart.tooltipBehavior != null; - final bool hasTooltip = isTooltipEnabled && - (chart.tooltipBehavior.enable || - seriesRendererDetails.series.onPointTap != null || + final bool isPointTapEnabled = + seriesRendererDetails.series.onPointTap != null || seriesRendererDetails.series.onPointDoubleTap != null || - seriesRendererDetails.series.onPointLongPress != null); + seriesRendererDetails.series.onPointLongPress != null; + final bool isCalculateRegion = + (isTooltipEnabled && chart.tooltipBehavior.enable) || + isPointTapEnabled; final bool hasSeriesElements = seriesRendererDetails.visible! && (series.markerSettings.isVisible || series.dataLabelSettings.isVisible || @@ -237,7 +239,8 @@ class HiloPainter extends CustomPainter { chart.tooltipBehavior.enable && (isTooltipEnabled && chart.tooltipBehavior.enable && - series.enableTooltip))); + series.enableTooltip)) || + isPointTapEnabled); seriesRendererDetails.sideBySideInfo = calculateSideBySideInfo( seriesRendererDetails.renderer, stateProperties); @@ -268,16 +271,14 @@ class HiloPainter extends CustomPainter { } for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) { point = dataPoints[pointIndex]; - final bool withInXRange = withInRange( - point.xValue, seriesRendererDetails.xAxisDetails!.visibleRange!); + final bool withInXRange = + withInRange(point.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison final bool withInHighLowRange = point != null && point.high != null && point.low != null && - (withInRange(point.high, - seriesRendererDetails.yAxisDetails!.visibleRange!) || - withInRange(point.low, - seriesRendererDetails.yAxisDetails!.visibleRange!)); + (withInRange(point.high, seriesRendererDetails.yAxisDetails!) || + withInRange(point.low, seriesRendererDetails.yAxisDetails!)); if (withInXRange || withInHighLowRange) { if (withInXRange) { seriesRendererDetails.visibleDataPoints! @@ -332,7 +333,7 @@ class HiloPainter extends CustomPainter { (point.markerPoint!.x - point.markerPoint2!.x).abs(), seriesRendererDetails.series.borderWidth); } - if (hasTooltip) { + if (isCalculateRegion) { calculateTooltipRegion( point, seriesIndex, seriesRendererDetails, stateProperties); } diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/hiloopenclose_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/hiloopenclose_painter.dart index 98b26c711..b0b29723c 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/hiloopenclose_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/hiloopenclose_painter.dart @@ -213,18 +213,21 @@ class HiloOpenClosePainter extends CustomPainter { seriesRendererDetails.setSeriesProperties(seriesRendererDetails); // ignore: unnecessary_null_comparison final bool isTooltipEnabled = chart.tooltipBehavior != null; - final bool hasTooltip = isTooltipEnabled && - (chart.tooltipBehavior.enable || - seriesRendererDetails.series.onPointTap != null || + final bool isPointTapEnabled = + seriesRendererDetails.series.onPointTap != null || seriesRendererDetails.series.onPointDoubleTap != null || - seriesRendererDetails.series.onPointLongPress != null); + seriesRendererDetails.series.onPointLongPress != null; + final bool isCalculateRegion = + (isTooltipEnabled && chart.tooltipBehavior.enable) || + isPointTapEnabled; final bool hasSeriesElements = seriesRendererDetails.visible! && (series.dataLabelSettings.isVisible || (isTooltipEnabled && chart.tooltipBehavior.enable && (isTooltipEnabled && chart.tooltipBehavior.enable && - series.enableTooltip))); + series.enableTooltip)) || + isPointTapEnabled); seriesRendererDetails.sideBySideInfo = calculateSideBySideInfo( seriesRendererDetails.renderer, stateProperties); final num? sideBySideMinimumVal = @@ -234,8 +237,8 @@ class HiloOpenClosePainter extends CustomPainter { seriesRendererDetails.sideBySideInfo?.maximum; for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) { point = dataPoints[pointIndex]; - final bool withInXRange = withInRange( - point.xValue, seriesRendererDetails.xAxisDetails!.visibleRange!); + final bool withInXRange = + withInRange(point.xValue, seriesRendererDetails.xAxisDetails!); bool withInHighLowRange = false, withInOpenCloseRange = false; // ignore: unnecessary_null_comparison if (point != null && @@ -243,14 +246,12 @@ class HiloOpenClosePainter extends CustomPainter { point.low != null && point.open != null && point.close != null) { - withInHighLowRange = withInRange(point.high, - seriesRendererDetails.yAxisDetails!.visibleRange!) && - withInRange( - point.low, seriesRendererDetails.yAxisDetails!.visibleRange!); - withInOpenCloseRange = withInRange(point.open, - seriesRendererDetails.yAxisDetails!.visibleRange!) && - withInRange(point.close, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInHighLowRange = + withInRange(point.high, seriesRendererDetails.yAxisDetails!) && + withInRange(point.low, seriesRendererDetails.yAxisDetails!); + withInOpenCloseRange = + withInRange(point.open, seriesRendererDetails.yAxisDetails!) && + withInRange(point.close, seriesRendererDetails.yAxisDetails!); if (withInXRange || (withInHighLowRange && withInOpenCloseRange)) { if (withInXRange) { @@ -376,7 +377,7 @@ class HiloOpenClosePainter extends CustomPainter { (point.markerPoint!.x - point.markerPoint2!.x).abs(), seriesRendererDetails.series.borderWidth); } - if (hasTooltip) { + if (isCalculateRegion) { calculateTooltipRegion( point, seriesIndex, seriesRendererDetails, stateProperties); } diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/histogram_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/histogram_painter.dart index 67ee3c33f..dff55315c 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/histogram_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/histogram_painter.dart @@ -309,13 +309,12 @@ class HistogramChartPainter extends CustomPainter { seriesRendererDetails.setSeriesProperties(seriesRendererDetails); for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) { point = dataPoints[pointIndex]; - final bool withInXRange = withInRange( - point.xValue, seriesRendererDetails.xAxisDetails!.visibleRange!); + final bool withInXRange = + withInRange(point.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison final bool withInYRange = point != null && point.yValue != null && - withInRange(point.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange(point.yValue, seriesRendererDetails.yAxisDetails!); if (withInXRange || withInYRange) { seriesRendererDetails.calculateRegionData( stateProperties, diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/line_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/line_painter.dart index a7b99da5e..a29aa58df 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/line_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/line_painter.dart @@ -221,36 +221,36 @@ class LineChartPainter extends CustomPainter { seriesRendererDetails.setSeriesProperties(seriesRendererDetails); for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) { currentPoint = dataPoints[pointIndex]; - bool withInXRange = withInRange(currentPoint.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + bool withInXRange = withInRange( + currentPoint.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison bool withInYRange = currentPoint != null && currentPoint.yValue != null && - withInRange(currentPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange( + currentPoint.yValue, seriesRendererDetails.yAxisDetails!); bool inRange = withInXRange || withInYRange; if (!inRange && pointIndex + 1 < dataPoints.length) { final CartesianChartPoint? nextPoint = dataPoints[pointIndex + 1]; - withInXRange = withInRange(nextPoint!.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + withInXRange = withInRange( + nextPoint!.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison withInYRange = nextPoint != null && nextPoint.yValue != null && - withInRange(nextPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange( + nextPoint.yValue, seriesRendererDetails.yAxisDetails!); inRange = withInXRange || withInYRange; if (!inRange && pointIndex - 1 >= 0) { final CartesianChartPoint? prevPoint = dataPoints[pointIndex - 1]; - withInXRange = withInRange(prevPoint!.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + withInXRange = withInRange( + prevPoint!.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison withInYRange = prevPoint != null && prevPoint.yValue != null && - withInRange(prevPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange( + prevPoint.yValue, seriesRendererDetails.yAxisDetails!); } } if (withInXRange || withInYRange) { diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/range_column_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/range_column_painter.dart index b24dacc20..60a7ff571 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/range_column_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/range_column_painter.dart @@ -274,16 +274,14 @@ class RangeColumnChartPainter extends CustomPainter { seriesRendererDetails.setSeriesProperties(seriesRendererDetails); for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) { point = dataPoints[pointIndex]; - final bool withInXRange = withInRange( - point.xValue, seriesRendererDetails.xAxisDetails!.visibleRange!); + final bool withInXRange = + withInRange(point.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison final bool withInHighLowRange = point != null && point.high != null && - withInRange(point.high, - seriesRendererDetails.yAxisDetails!.visibleRange!) && + withInRange(point.high, seriesRendererDetails.yAxisDetails!) && point.low != null && - withInRange( - point.low, seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange(point.low, seriesRendererDetails.yAxisDetails!); if (withInXRange || withInHighLowRange) { seriesRendererDetails.calculateRegionData(stateProperties, seriesRendererDetails, painterKey.index, point, pointIndex); diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/scatter_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/scatter_painter.dart index 63fbc0340..6cbe3afcb 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/scatter_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/scatter_painter.dart @@ -273,13 +273,13 @@ class ScatterChartPainter extends CustomPainter { for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) { final CartesianChartPoint currentPoint = dataPoints[pointIndex]; - final bool withInXRange = withInRange(currentPoint.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + final bool withInXRange = withInRange( + currentPoint.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison final bool withInYRange = currentPoint != null && currentPoint.yValue != null && - withInRange(currentPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange( + currentPoint.yValue, seriesRendererDetails.yAxisDetails!); if (withInXRange || withInYRange) { seriesRendererDetails.calculateRegionData( stateProperties, diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/spline_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/spline_painter.dart index 4ca9037ca..a75d22289 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/spline_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/spline_painter.dart @@ -235,11 +235,11 @@ class SplineChartPainter extends CustomPainter { for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) { point = dataPoints[pointIndex]; if (withInRange(seriesRendererDetails.dataPoints[pointIndex].xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!) || + seriesRendererDetails.xAxisDetails!) || (pointIndex < dataPoints.length - 1 && withInRange( seriesRendererDetails.dataPoints[pointIndex + 1].xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!))) { + seriesRendererDetails.xAxisDetails!))) { seriesRendererDetails.calculateRegionData(stateProperties, seriesRendererDetails, painterKey.index, point, pointIndex); if ((point.isVisible && !point.isGap) && startPoint == null) { diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_area_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_area_painter.dart index 12adf3db1..2ce40d7b7 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_area_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_area_painter.dart @@ -278,7 +278,7 @@ class StackedAreaChartPainter extends CustomPainter { seriesRendererDetails, stateProperties, seriesRendererDetails.seriesAnimation, - seriesRendererDetails.seriesElementAnimation!, + seriesRendererDetails.seriesElementAnimation, painterKey); } @@ -330,7 +330,7 @@ class StackedArea100ChartPainter extends CustomPainter { seriesRendererDetails, stateProperties, seriesRendererDetails.seriesAnimation, - seriesRendererDetails.seriesElementAnimation!, + seriesRendererDetails.seriesElementAnimation, painterKey); } @@ -345,7 +345,7 @@ void stackedAreaPainter( SeriesRendererDetails seriesRendererDetails, CartesianStateProperties stateProperties, Animation? seriesAnimation, - Animation chartElementAnimation, + Animation? chartElementAnimation, PainterKey painterKey) { Rect clipRect, axisClipRect; final int seriesIndex = painterKey.index; diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_bar_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_bar_painter.dart index 50be2174b..2e26a00d2 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_bar_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_bar_painter.dart @@ -370,13 +370,12 @@ void _stackedBarPainter( pointIndex < seriesRendererDetails.dataPoints.length; pointIndex++) { point = seriesRendererDetails.dataPoints[pointIndex]; - final bool withInXRange = withInRange( - point.xValue, seriesRendererDetails.xAxisDetails!.visibleRange!); + final bool withInXRange = + withInRange(point.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison final bool withInYRange = point != null && point.yValue != null && - withInRange( - point.yValue, seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange(point.yValue, seriesRendererDetails.yAxisDetails!); if (withInXRange || withInYRange) { seriesRendererDetails.calculateRegionData(stateProperties, seriesRendererDetails, painterKey.index, point, pointIndex); diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_column_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_column_painter.dart index c364654a6..3efa87948 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_column_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_column_painter.dart @@ -365,13 +365,12 @@ void _stackedRectPainter( pointIndex < seriesRendererDetails.dataPoints.length; pointIndex++) { point = seriesRendererDetails.dataPoints[pointIndex]; - final bool withInXRange = withInRange( - point.xValue, seriesRendererDetails.xAxisDetails!.visibleRange!); + final bool withInXRange = + withInRange(point.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison final bool withInYRange = point != null && point.yValue != null && - withInRange( - point.yValue, seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange(point.yValue, seriesRendererDetails.yAxisDetails!); if (withInXRange || withInYRange) { seriesRendererDetails.calculateRegionData(stateProperties, seriesRendererDetails, painterKey.index, point, pointIndex); diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_line_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_line_painter.dart index c3480aec3..d85ab12d8 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_line_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stacked_line_painter.dart @@ -179,7 +179,7 @@ class StackedLineChartPainter extends CustomPainter { seriesRendererDetails, seriesRendererDetails.seriesAnimation, stateProperties, - seriesRendererDetails.seriesElementAnimation!, + seriesRendererDetails.seriesElementAnimation, painterKey); } @@ -349,7 +349,7 @@ class StackedLine100ChartPainter extends CustomPainter { seriesRendererDetails, seriesRendererDetails.seriesAnimation, stateProperties, - seriesRendererDetails.seriesElementAnimation!, + seriesRendererDetails.seriesElementAnimation, painterKey); } @@ -364,7 +364,7 @@ void _stackedLinePainter( SeriesRendererDetails seriesRendererDetails, Animation? seriesAnimation, CartesianStateProperties stateProperties, - Animation chartElementAnimation, + Animation? chartElementAnimation, PainterKey painterKey) { Rect clipRect; double animationFactor; @@ -419,37 +419,35 @@ void _stackedLinePainter( pointIndex < seriesRendererDetails.dataPoints.length; pointIndex++) { currentPoint = seriesRendererDetails.dataPoints[pointIndex]; - bool withInXRange = withInRange(currentPoint.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + bool withInXRange = + withInRange(currentPoint.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison bool withInYRange = currentPoint != null && currentPoint.yValue != null && - withInRange(currentPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange(currentPoint.yValue, seriesRendererDetails.yAxisDetails!); bool inRange = withInXRange || withInYRange; if (!inRange && pointIndex + 1 < seriesRendererDetails.dataPoints.length) { final CartesianChartPoint? nextPoint = seriesRendererDetails.dataPoints[pointIndex + 1]; - withInXRange = withInRange(nextPoint!.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + withInXRange = + withInRange(nextPoint!.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison withInYRange = nextPoint != null && nextPoint.yValue != null && - withInRange(nextPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange(nextPoint.yValue, seriesRendererDetails.yAxisDetails!); inRange = withInXRange || withInYRange; if (!inRange && pointIndex - 1 >= 0) { final CartesianChartPoint? prevPoint = seriesRendererDetails.dataPoints[pointIndex - 1]; - withInXRange = withInRange(prevPoint!.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + withInXRange = withInRange( + prevPoint!.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison withInYRange = prevPoint != null && prevPoint.yValue != null && - withInRange(prevPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange( + prevPoint.yValue, seriesRendererDetails.yAxisDetails!); } } if (withInXRange || withInYRange) { diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stepline_painter.dart b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stepline_painter.dart index d06403b7a..ce9241dac 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stepline_painter.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/series_painter/stepline_painter.dart @@ -217,36 +217,36 @@ class StepLineChartPainter extends CustomPainter { seriesRendererDetails.setSeriesProperties(seriesRendererDetails); for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) { currentPoint = dataPoints[pointIndex]; - bool withInXRange = withInRange(currentPoint.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + bool withInXRange = withInRange( + currentPoint.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison bool withInYRange = currentPoint != null && currentPoint.yValue != null && - withInRange(currentPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange( + currentPoint.yValue, seriesRendererDetails.yAxisDetails!); bool inRange = withInXRange || withInYRange; if (!inRange && pointIndex + 1 < dataPoints.length) { final CartesianChartPoint? nextPoint = dataPoints[pointIndex + 1]; - withInXRange = withInRange(nextPoint!.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + withInXRange = withInRange( + nextPoint!.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison withInYRange = nextPoint != null && nextPoint.yValue != null && - withInRange(nextPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange( + nextPoint.yValue, seriesRendererDetails.yAxisDetails!); inRange = withInXRange || withInYRange; if (!inRange && pointIndex - 1 >= 0) { final CartesianChartPoint? prevPoint = dataPoints[pointIndex - 1]; - withInXRange = withInRange(prevPoint!.xValue, - seriesRendererDetails.xAxisDetails!.visibleRange!); + withInXRange = withInRange( + prevPoint!.xValue, seriesRendererDetails.xAxisDetails!); // ignore: unnecessary_null_comparison withInYRange = prevPoint != null && prevPoint.yValue != null && - withInRange(prevPoint.yValue, - seriesRendererDetails.yAxisDetails!.visibleRange!); + withInRange( + prevPoint.yValue, seriesRendererDetails.yAxisDetails!); } } if (withInXRange || withInYRange) { diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/technical_indicators/technical_indicator.dart b/packages/syncfusion_flutter_charts/lib/src/chart/technical_indicators/technical_indicator.dart index 1532a8fb8..79da9d794 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/technical_indicators/technical_indicator.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/technical_indicators/technical_indicator.dart @@ -1028,16 +1028,24 @@ class TechnicalIndicatorsRenderer { bollingerPoints[j] = _BollingerData( x: validData[j].xValue, midBand: smaPoints[i], - lowBand: lowerBand, - upBand: upperBand, + lowBand: lowerBand.isNaN || lowerBand.isInfinite + ? smaPoints[i] + : lowerBand, + upBand: upperBand.isNaN || upperBand.isInfinite + ? smaPoints[i] + : upperBand, visible: true); } } bollingerPoints[i] = _BollingerData( x: validData[i].xValue, midBand: smaPoints[i], - lowBand: lowerBand, - upBand: upperBand, + lowBand: lowerBand.isNaN || lowerBand.isInfinite + ? smaPoints[i] + : lowerBand, + upBand: upperBand.isNaN || upperBand.isInfinite + ? smaPoints[i] + : upperBand, visible: true); } else { if (i < indicator.period - 1) { diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/user_interaction/trackball.dart b/packages/syncfusion_flutter_charts/lib/src/chart/user_interaction/trackball.dart index 0719f2ef6..984fffdd7 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/user_interaction/trackball.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/user_interaction/trackball.dart @@ -427,6 +427,9 @@ class TrackballBehavior { _stateProperties.trackballBehaviorRenderer); final List visibleSeriesRenderer = stateProperties.chartSeries.visibleSeriesRenderers; + if (visibleSeriesRenderer.isEmpty) { + return; + } final SeriesRendererDetails seriesRendererDetails = SeriesHelper.getSeriesRendererDetails(visibleSeriesRenderer.firstWhere( (CartesianSeriesRenderer element) => @@ -1295,6 +1298,8 @@ class TrackballRenderingDetails { for (final ChartPointInfo pointInfo in chartPointInfo) { xValueList.add(pointInfo.chartDataPoint?.xValue); } + String seriesType; + bool isRangeTypeSeries; if (xValueList.isNotEmpty) { for (int count = 0; count < xValueList.length; count++) { if (xValueList[0] != xValueList[count]) { @@ -1303,15 +1308,19 @@ class TrackballRenderingDetails { if (pointInfo.xPosition == leastX) { leastPointInfo.add(pointInfo); visiblePoints.clear(); + seriesType = pointInfo.seriesRendererDetails!.seriesType; + isRangeTypeSeries = seriesType.contains('range') || + seriesType.contains('hilo') || + seriesType == 'candle'; visiblePoints.add(ClosestPoints( - closestPointX: !isRangeSeries + closestPointX: !isRangeTypeSeries ? pointInfo.xPosition! - : isBoxSeries + : seriesType == 'boxandwhisker' ? pointInfo.maxXPosition! : pointInfo.highXPosition!, - closestPointY: isRangeSeries + closestPointY: isRangeTypeSeries ? pointInfo.highYPosition! - : isBoxSeries + : seriesType == 'boxandwhisker' ? pointInfo.maxYPosition! : pointInfo.yPosition!)); } diff --git a/packages/syncfusion_flutter_charts/lib/src/chart/utils/helper.dart b/packages/syncfusion_flutter_charts/lib/src/chart/utils/helper.dart index 3790e0eaf..aff4e977f 100644 --- a/packages/syncfusion_flutter_charts/lib/src/chart/utils/helper.dart +++ b/packages/syncfusion_flutter_charts/lib/src/chart/utils/helper.dart @@ -115,9 +115,16 @@ num calculateLogBaseValue(num value, num base) => math.log(value) / math.log(base); /// To check if value is within range. -bool withInRange(num value, VisibleRange range) => -// ignore: unnecessary_null_comparison - value != null && (value <= range.maximum) && (value >= range.minimum); +bool withInRange(num value, ChartAxisRendererDetails axisDetails) { + final ChartAxis axis = axisDetails.axis; + final num visibleMinimum = axis is LogarithmicAxis + ? pow(axis.logBase, axisDetails.visibleRange!.minimum) + : axisDetails.visibleRange!.minimum; + final num visibleMaximum = axis is LogarithmicAxis + ? pow(axis.logBase, axisDetails.visibleRange!.maximum) + : axisDetails.visibleRange!.maximum; + return (value <= visibleMaximum) && (value >= visibleMinimum); +} /// To find the proper series color of each point in waterfall chart, /// which includes intermediate sum, total sum and negative point. diff --git a/packages/syncfusion_flutter_charts/lib/src/circular_chart/renderer/data_label_renderer.dart b/packages/syncfusion_flutter_charts/lib/src/circular_chart/renderer/data_label_renderer.dart index 5152cb77f..809b2b0b1 100644 --- a/packages/syncfusion_flutter_charts/lib/src/circular_chart/renderer/data_label_renderer.dart +++ b/packages/syncfusion_flutter_charts/lib/src/circular_chart/renderer/data_label_renderer.dart @@ -9,6 +9,7 @@ import '../../chart/common/data_label.dart'; import '../../chart/utils/enum.dart'; import '../../chart/utils/helper.dart'; import '../../common/event_args.dart'; +import '../../common/template/rendering.dart'; import '../../common/utils/helper.dart'; import '../../pyramid_chart/utils/helper.dart'; import '../base/circular_base.dart'; @@ -264,7 +265,10 @@ void _changeLabelAngle(ChartPoint currentPoint, num newAngle, const String defaultConnectorLineLength = '10%'; final DataLabelSettings dataLabel = seriesRenderer.dataLabelSettingsRenderer.dataLabelSettings; - final Size textSize = measureText(currentPoint.text!, dataLabel.textStyle); + // Builder check for change the angle based on the template size. + final Size textSize = dataLabel.builder != null + ? currentPoint.dataLabelSize + : measureText(currentPoint.text!, dataLabel.textStyle); final Path angleChangedConnectorPath = Path(); final num connectorLength = percentToValue( dataLabel.connectorLineSettings.length ?? defaultConnectorLineLength, @@ -414,99 +418,114 @@ void renderCircularDataLabel( DataLabelRenderArgs dataLabelArgs; TextStyle dataLabelStyle; final List renderDataLabelRegions = []; - Size textSize; + Size? textSize; for (int pointIndex = 0; pointIndex < seriesRenderer.renderPoints!.length; pointIndex++) { point = seriesRenderer.renderPoints![pointIndex]; - if (point.isVisible && (point.y != 0 || dataLabel.showZeroValue)) { - label = point.text; - label = seriesRenderer.renderer.getLabelContent( - seriesRenderer, point, pointIndex, seriesIndex, label!); - dataLabelStyle = dataLabel.textStyle; - dataLabelSettingsRenderer.color = - seriesRenderer.series.dataLabelSettings.color; - if (chart.onDataLabelRender != null && - !seriesRenderer.renderPoints![pointIndex].labelRenderEvent) { - dataLabelArgs = DataLabelRenderArgs(seriesRenderer, - seriesRenderer.renderPoints, pointIndex, pointIndex); - dataLabelArgs.text = label; - dataLabelArgs.textStyle = dataLabelStyle; - dataLabelArgs.color = dataLabelSettingsRenderer.color; - chart.onDataLabelRender!(dataLabelArgs); - label = point.text = dataLabelArgs.text; - dataLabelStyle = dataLabelArgs.textStyle; - pointIndex = dataLabelArgs.pointIndex!; - dataLabelSettingsRenderer.color = dataLabelArgs.color; - seriesRenderer.dataPoints[pointIndex].labelRenderEvent = true; - } - textSize = measureText(label, dataLabelStyle); - - /// condition check for labels after event. - if (label != '') { - if (seriesRenderer.seriesType == 'radialbar') { - dataLabelStyle = chart.onDataLabelRender == null - ? seriesRenderer.renderer.getDataLabelStyle( - seriesRenderer, - point, - pointIndex, - seriesIndex, - dataLabelStyle, - stateProperties.chartState) - : dataLabelStyle; - labelLocation = degreeToPoint(point.startAngle!, - (point.innerRadius! + point.outerRadius!) / 2, point.center!); - labelLocation = Offset( - (labelLocation.dx - textSize.width - 5) + - (angle == 0 ? 0 : textSize.width / 2), - (labelLocation.dy - textSize.height / 2) + - (angle == 0 ? 0 : textSize.height / 2)); - point.labelRect = Rect.fromLTWH( - labelLocation.dx - labelPadding, - labelLocation.dy - labelPadding, - textSize.width + (2 * labelPadding), - textSize.height + (2 * labelPadding)); - drawLabel( - point.labelRect, - labelLocation, - label, - null, - canvas, - seriesRenderer, - point, - pointIndex, - seriesIndex, - chart, - dataLabelStyle, - renderDataLabelRegions, - animateOpacity); + if (dataLabel.builder == null || + dataLabel.labelIntersectAction != LabelIntersectAction.shift) { + if (point.isVisible && (point.y != 0 || dataLabel.showZeroValue)) { + label = point.text; + label = seriesRenderer.renderer.getLabelContent( + seriesRenderer, point, pointIndex, seriesIndex, label!); + dataLabelStyle = dataLabel.textStyle; + dataLabelSettingsRenderer.color = + seriesRenderer.series.dataLabelSettings.color; + if (chart.onDataLabelRender != null && + !seriesRenderer.renderPoints![pointIndex].labelRenderEvent) { + dataLabelArgs = DataLabelRenderArgs(seriesRenderer, + seriesRenderer.renderPoints, pointIndex, pointIndex); + dataLabelArgs.text = label; + dataLabelArgs.textStyle = dataLabelStyle; + dataLabelArgs.color = dataLabelSettingsRenderer.color; + chart.onDataLabelRender!(dataLabelArgs); + label = point.text = dataLabelArgs.text; + dataLabelStyle = dataLabelArgs.textStyle; + pointIndex = dataLabelArgs.pointIndex!; + dataLabelSettingsRenderer.color = dataLabelArgs.color; + seriesRenderer.dataPoints[pointIndex].labelRenderEvent = true; + } + if (seriesRenderer.series.dataLabelSettings.builder != null) { + final int pointIndex = seriesRenderer + .stateProperties.renderingDetails.templates + .indexWhere((ChartTemplateInfo templateInfo) => + templateInfo.pointIndex == point.index); + // Checks template for avoid the hidden data point and calculate the label location based on template size. + if (pointIndex != -1) { + textSize = seriesRenderer.stateProperties.renderingDetails + .dataLabelTemplateRegions[pointIndex].size; + } } else { - setLabelPosition( - dataLabel, - point, - textSize, - stateProperties, - canvas, - renderDataLabelRegions, - pointIndex, - label, - seriesRenderer, - animateOpacity, - dataLabelStyle, - seriesIndex); + textSize = measureText(label, dataLabelStyle); } + + /// condition check for labels after event. + if (label != '') { + if (seriesRenderer.seriesType == 'radialbar') { + dataLabelStyle = chart.onDataLabelRender == null + ? seriesRenderer.renderer.getDataLabelStyle( + seriesRenderer, + point, + pointIndex, + seriesIndex, + dataLabelStyle, + stateProperties.chartState) + : dataLabelStyle; + labelLocation = degreeToPoint(point.startAngle!, + (point.innerRadius! + point.outerRadius!) / 2, point.center!); + labelLocation = Offset( + (labelLocation.dx - textSize!.width - 5) + + (angle == 0 ? 0 : textSize.width / 2), + (labelLocation.dy - textSize.height / 2) + + (angle == 0 ? 0 : textSize.height / 2)); + point.labelRect = Rect.fromLTWH( + labelLocation.dx - labelPadding, + labelLocation.dy - labelPadding, + textSize.width + (2 * labelPadding), + textSize.height + (2 * labelPadding)); + drawLabel( + point.labelRect, + labelLocation, + label, + null, + canvas, + seriesRenderer, + point, + pointIndex, + seriesIndex, + chart, + dataLabelStyle, + renderDataLabelRegions, + animateOpacity); + } else { + setLabelPosition( + dataLabel, + point, + textSize!, + stateProperties, + canvas, + renderDataLabelRegions, + pointIndex, + label, + seriesRenderer, + animateOpacity, + dataLabelStyle, + seriesIndex); + } + } + dataLabelStyle = chart.onDataLabelRender == null + ? seriesRenderer.renderer.getDataLabelStyle( + seriesRenderer, + point, + pointIndex, + seriesIndex, + dataLabelStyle, + stateProperties.chartState) + : dataLabelStyle; + } else { + point.labelRect = Rect.zero; } - dataLabelStyle = chart.onDataLabelRender == null - ? seriesRenderer.renderer.getDataLabelStyle( - seriesRenderer, - point, - pointIndex, - seriesIndex, - dataLabelStyle, - stateProperties.chartState) - : dataLabelStyle; - } else { - point.labelRect = Rect.zero; } } if (seriesRenderer.dataLabelSettingsRenderer.dataLabelSettings @@ -514,33 +533,35 @@ void renderCircularDataLabel( LabelIntersectAction.shift && seriesRenderer.seriesType != 'radialbar') { const int labelPadding = 2; - leftPoints = >[]; - rightPoints = >[]; - for (int i = 0; i < seriesRenderer.renderPoints!.length; i++) { - if (seriesRenderer.renderPoints![i].isVisible) { - PointHelper.setNewAngle(seriesRenderer.renderPoints![i], - seriesRenderer.renderPoints![i].midAngle); - if (seriesRenderer.renderPoints![i].dataLabelPosition == - Position.left && - seriesRenderer.renderPoints![i].renderPosition == - ChartDataLabelPosition.outside) { - leftPoints.add(seriesRenderer.renderPoints![i]); - } else if (seriesRenderer.renderPoints![i].dataLabelPosition == - Position.right && - seriesRenderer.renderPoints![i].renderPosition == - ChartDataLabelPosition.outside) { - rightPoints.add(seriesRenderer.renderPoints![i]); + if (dataLabel.builder == null) { + leftPoints = >[]; + rightPoints = >[]; + for (int i = 0; i < seriesRenderer.renderPoints!.length; i++) { + if (seriesRenderer.renderPoints![i].isVisible) { + PointHelper.setNewAngle(seriesRenderer.renderPoints![i], + seriesRenderer.renderPoints![i].midAngle); + if (seriesRenderer.renderPoints![i].dataLabelPosition == + Position.left && + seriesRenderer.renderPoints![i].renderPosition == + ChartDataLabelPosition.outside) { + leftPoints.add(seriesRenderer.renderPoints![i]); + } else if (seriesRenderer.renderPoints![i].dataLabelPosition == + Position.right && + seriesRenderer.renderPoints![i].renderPosition == + ChartDataLabelPosition.outside) { + rightPoints.add(seriesRenderer.renderPoints![i]); + } } } - } - leftPoints.sort((ChartPoint a, ChartPoint b) => - PointHelper.getNewAngle(a)!.compareTo(PointHelper.getNewAngle(b)!)); - if (leftPoints.isNotEmpty) { - _arrangeLeftSidePoints(seriesRenderer); - } - isIncreaseAngle = false; - if (rightPoints.isNotEmpty) { - _arrangeRightSidePoints(seriesRenderer); + leftPoints.sort((ChartPoint a, ChartPoint b) => + PointHelper.getNewAngle(a)!.compareTo(PointHelper.getNewAngle(b)!)); + if (leftPoints.isNotEmpty) { + _arrangeLeftSidePoints(seriesRenderer); + } + isIncreaseAngle = false; + if (rightPoints.isNotEmpty) { + _arrangeRightSidePoints(seriesRenderer); + } } for (int pointIndex = 0; pointIndex < seriesRenderer.renderPoints!.length; @@ -552,49 +573,52 @@ void renderCircularDataLabel( seriesRenderer.series.dataLabelSettings.margin; final Rect rect = point.labelRect; TextStyle dataLabelStyle = dataLabel.textStyle; - dataLabelStyle = TextStyle( - color: (chart.onDataLabelRender != null && dataLabelSettingsRenderer.color != null) - ? getSaturationColor( - dataLabelSettingsRenderer.color ?? point.fill) - : ((dataLabelStyle.color ?? dataLabel.textStyle.color) ?? - getSaturationColor( - point.renderPosition == ChartDataLabelPosition.outside - ? findthemecolor(stateProperties, point, dataLabel) - : dataLabelSettingsRenderer.color ?? point.fill)), - fontSize: dataLabelStyle.fontSize ?? dataLabel.textStyle.fontSize, - fontFamily: - dataLabelStyle.fontFamily ?? dataLabel.textStyle.fontFamily, - fontStyle: - dataLabelStyle.fontStyle ?? dataLabel.textStyle.fontStyle, - fontWeight: - dataLabelStyle.fontWeight ?? dataLabel.textStyle.fontWeight, - inherit: dataLabelStyle.inherit, - backgroundColor: dataLabelStyle.backgroundColor ?? - dataLabel.textStyle.backgroundColor, - letterSpacing: dataLabelStyle.letterSpacing ?? - dataLabel.textStyle.letterSpacing, - wordSpacing: - dataLabelStyle.wordSpacing ?? dataLabel.textStyle.wordSpacing, - textBaseline: - dataLabelStyle.textBaseline ?? dataLabel.textStyle.textBaseline, - height: dataLabelStyle.height ?? dataLabel.textStyle.height, - locale: dataLabelStyle.locale ?? dataLabel.textStyle.locale, - foreground: - dataLabelStyle.foreground ?? dataLabel.textStyle.foreground, - background: - dataLabelStyle.background ?? dataLabel.textStyle.background, - shadows: dataLabelStyle.shadows ?? dataLabel.textStyle.shadows, - fontFeatures: - dataLabelStyle.fontFeatures ?? dataLabel.textStyle.fontFeatures, - decoration: - dataLabelStyle.decoration ?? dataLabel.textStyle.decoration, - decorationColor: dataLabelStyle.decorationColor ?? - dataLabel.textStyle.decorationColor, - decorationStyle: dataLabelStyle.decorationStyle ?? dataLabel.textStyle.decorationStyle, - decorationThickness: dataLabelStyle.decorationThickness ?? dataLabel.textStyle.decorationThickness, - debugLabel: dataLabelStyle.debugLabel ?? dataLabel.textStyle.debugLabel, - fontFamilyFallback: dataLabelStyle.fontFamilyFallback ?? dataLabel.textStyle.fontFamilyFallback); - textSize = measureText(label!, dataLabelStyle); + if (dataLabel.builder == null) { + dataLabelStyle = TextStyle( + color: (chart.onDataLabelRender != null && + dataLabelSettingsRenderer.color != null) + ? getSaturationColor( + dataLabelSettingsRenderer.color ?? point.fill) + : ((dataLabelStyle.color ?? dataLabel.textStyle.color) ?? + getSaturationColor(point.renderPosition == + ChartDataLabelPosition.outside + ? findthemecolor(stateProperties, point, dataLabel) + : dataLabelSettingsRenderer.color ?? point.fill)), + fontSize: dataLabelStyle.fontSize ?? dataLabel.textStyle.fontSize, + fontFamily: + dataLabelStyle.fontFamily ?? dataLabel.textStyle.fontFamily, + fontStyle: + dataLabelStyle.fontStyle ?? dataLabel.textStyle.fontStyle, + fontWeight: + dataLabelStyle.fontWeight ?? dataLabel.textStyle.fontWeight, + inherit: dataLabelStyle.inherit, + backgroundColor: dataLabelStyle.backgroundColor ?? + dataLabel.textStyle.backgroundColor, + letterSpacing: dataLabelStyle.letterSpacing ?? + dataLabel.textStyle.letterSpacing, + wordSpacing: + dataLabelStyle.wordSpacing ?? dataLabel.textStyle.wordSpacing, + textBaseline: dataLabelStyle.textBaseline ?? + dataLabel.textStyle.textBaseline, + height: dataLabelStyle.height ?? dataLabel.textStyle.height, + locale: dataLabelStyle.locale ?? dataLabel.textStyle.locale, + foreground: + dataLabelStyle.foreground ?? dataLabel.textStyle.foreground, + background: + dataLabelStyle.background ?? dataLabel.textStyle.background, + shadows: dataLabelStyle.shadows ?? dataLabel.textStyle.shadows, + fontFeatures: + dataLabelStyle.fontFeatures ?? dataLabel.textStyle.fontFeatures, + decoration: dataLabelStyle.decoration ?? dataLabel.textStyle.decoration, + decorationColor: dataLabelStyle.decorationColor ?? dataLabel.textStyle.decorationColor, + decorationStyle: dataLabelStyle.decorationStyle ?? dataLabel.textStyle.decorationStyle, + decorationThickness: dataLabelStyle.decorationThickness ?? dataLabel.textStyle.decorationThickness, + debugLabel: dataLabelStyle.debugLabel ?? dataLabel.textStyle.debugLabel, + fontFamilyFallback: dataLabelStyle.fontFamilyFallback ?? dataLabel.textStyle.fontFamilyFallback); + } + textSize = seriesRenderer.series.dataLabelSettings.builder != null + ? point.dataLabelSize + : measureText(label!, dataLabelStyle); labelLocation = Offset( rect.left + (point.renderPosition == ChartDataLabelPosition.inside @@ -847,50 +871,53 @@ void setLabelPosition( (dataLabel.labelIntersectAction == LabelIntersectAction.none && dataLabel.overflowMode == OverflowMode.none)) { point.renderPosition = ChartDataLabelPosition.inside; - dataLabelStyle = TextStyle( - color: (chart.onDataLabelRender != null && - dataLabelSettingsRenderer.color != null) - ? getSaturationColor( - dataLabelSettingsRenderer.color ?? point.fill) - : ((dataLabelStyle.color ?? dataLabel.textStyle.color) ?? - getSaturationColor( - dataLabelSettingsRenderer.color ?? point.fill)), - fontSize: dataLabelStyle.fontSize ?? dataLabel.textStyle.fontSize, - fontFamily: - dataLabelStyle.fontFamily ?? dataLabel.textStyle.fontFamily, - fontStyle: dataLabelStyle.fontStyle ?? dataLabel.textStyle.fontStyle, - fontWeight: - dataLabelStyle.fontWeight ?? dataLabel.textStyle.fontWeight, - inherit: dataLabelStyle.inherit, - backgroundColor: dataLabelStyle.backgroundColor ?? - dataLabel.textStyle.backgroundColor, - letterSpacing: - dataLabelStyle.letterSpacing ?? dataLabel.textStyle.letterSpacing, - wordSpacing: - dataLabelStyle.wordSpacing ?? dataLabel.textStyle.wordSpacing, - textBaseline: - dataLabelStyle.textBaseline ?? dataLabel.textStyle.textBaseline, - height: dataLabelStyle.height ?? dataLabel.textStyle.height, - locale: dataLabelStyle.locale ?? dataLabel.textStyle.locale, - foreground: - dataLabelStyle.foreground ?? dataLabel.textStyle.foreground, - background: - dataLabelStyle.background ?? dataLabel.textStyle.background, - shadows: dataLabelStyle.shadows ?? dataLabel.textStyle.shadows, - fontFeatures: - dataLabelStyle.fontFeatures ?? dataLabel.textStyle.fontFeatures, - decoration: - dataLabelStyle.decoration ?? dataLabel.textStyle.decoration, - decorationColor: dataLabelStyle.decorationColor ?? - dataLabel.textStyle.decorationColor, - decorationStyle: dataLabelStyle.decorationStyle ?? - dataLabel.textStyle.decorationStyle, - decorationThickness: dataLabelStyle.decorationThickness ?? - dataLabel.textStyle.decorationThickness, - debugLabel: - dataLabelStyle.debugLabel ?? dataLabel.textStyle.debugLabel, - fontFamilyFallback: dataLabelStyle.fontFamilyFallback ?? - dataLabel.textStyle.fontFamilyFallback); + if (dataLabel.builder == null) { + dataLabelStyle = TextStyle( + color: (chart.onDataLabelRender != null && + dataLabelSettingsRenderer.color != null) + ? getSaturationColor( + dataLabelSettingsRenderer.color ?? point.fill) + : ((dataLabelStyle.color ?? dataLabel.textStyle.color) ?? + getSaturationColor( + dataLabelSettingsRenderer.color ?? point.fill)), + fontSize: dataLabelStyle.fontSize ?? dataLabel.textStyle.fontSize, + fontFamily: + dataLabelStyle.fontFamily ?? dataLabel.textStyle.fontFamily, + fontStyle: + dataLabelStyle.fontStyle ?? dataLabel.textStyle.fontStyle, + fontWeight: + dataLabelStyle.fontWeight ?? dataLabel.textStyle.fontWeight, + inherit: dataLabelStyle.inherit, + backgroundColor: dataLabelStyle.backgroundColor ?? + dataLabel.textStyle.backgroundColor, + letterSpacing: dataLabelStyle.letterSpacing ?? + dataLabel.textStyle.letterSpacing, + wordSpacing: + dataLabelStyle.wordSpacing ?? dataLabel.textStyle.wordSpacing, + textBaseline: + dataLabelStyle.textBaseline ?? dataLabel.textStyle.textBaseline, + height: dataLabelStyle.height ?? dataLabel.textStyle.height, + locale: dataLabelStyle.locale ?? dataLabel.textStyle.locale, + foreground: + dataLabelStyle.foreground ?? dataLabel.textStyle.foreground, + background: + dataLabelStyle.background ?? dataLabel.textStyle.background, + shadows: dataLabelStyle.shadows ?? dataLabel.textStyle.shadows, + fontFeatures: + dataLabelStyle.fontFeatures ?? dataLabel.textStyle.fontFeatures, + decoration: + dataLabelStyle.decoration ?? dataLabel.textStyle.decoration, + decorationColor: dataLabelStyle.decorationColor ?? + dataLabel.textStyle.decorationColor, + decorationStyle: dataLabelStyle.decorationStyle ?? + dataLabel.textStyle.decorationStyle, + decorationThickness: dataLabelStyle.decorationThickness ?? + dataLabel.textStyle.decorationThickness, + debugLabel: + dataLabelStyle.debugLabel ?? dataLabel.textStyle.debugLabel, + fontFamilyFallback: dataLabelStyle.fontFamilyFallback ?? + dataLabel.textStyle.fontFamilyFallback); + } if (!isDataLabelCollide && (dataLabel.labelIntersectAction == LabelIntersectAction.shift && dataLabel.overflowMode != OverflowMode.hide)) { @@ -943,40 +970,48 @@ void setLabelPosition( } } else { point.renderPosition = ChartDataLabelPosition.outside; - dataLabelStyle = TextStyle( - color: (dataLabelStyle.color ?? dataLabel.textStyle.color) ?? - getSaturationColor( - findthemecolor(stateProperties, point, dataLabel)), - fontSize: dataLabelStyle.fontSize ?? dataLabel.textStyle.fontSize, - fontFamily: dataLabelStyle.fontFamily ?? dataLabel.textStyle.fontFamily, - fontStyle: dataLabelStyle.fontStyle ?? dataLabel.textStyle.fontStyle, - fontWeight: dataLabelStyle.fontWeight ?? dataLabel.textStyle.fontWeight, - inherit: dataLabelStyle.inherit, - backgroundColor: dataLabelStyle.backgroundColor ?? - dataLabel.textStyle.backgroundColor, - letterSpacing: - dataLabelStyle.letterSpacing ?? dataLabel.textStyle.letterSpacing, - wordSpacing: - dataLabelStyle.wordSpacing ?? dataLabel.textStyle.wordSpacing, - textBaseline: - dataLabelStyle.textBaseline ?? dataLabel.textStyle.textBaseline, - height: dataLabelStyle.height ?? dataLabel.textStyle.height, - locale: dataLabelStyle.locale ?? dataLabel.textStyle.locale, - foreground: dataLabelStyle.foreground ?? dataLabel.textStyle.foreground, - background: dataLabelStyle.background ?? dataLabel.textStyle.background, - shadows: dataLabelStyle.shadows ?? dataLabel.textStyle.shadows, - fontFeatures: - dataLabelStyle.fontFeatures ?? dataLabel.textStyle.fontFeatures, - decoration: dataLabelStyle.decoration ?? dataLabel.textStyle.decoration, - decorationColor: dataLabelStyle.decorationColor ?? - dataLabel.textStyle.decorationColor, - decorationStyle: dataLabelStyle.decorationStyle ?? - dataLabel.textStyle.decorationStyle, - decorationThickness: dataLabelStyle.decorationThickness ?? - dataLabel.textStyle.decorationThickness, - debugLabel: dataLabelStyle.debugLabel ?? dataLabel.textStyle.debugLabel, - fontFamilyFallback: dataLabelStyle.fontFamilyFallback ?? - dataLabel.textStyle.fontFamilyFallback); + if (dataLabel.builder == null) { + dataLabelStyle = TextStyle( + color: (dataLabelStyle.color ?? dataLabel.textStyle.color) ?? + getSaturationColor( + findthemecolor(stateProperties, point, dataLabel)), + fontSize: dataLabelStyle.fontSize ?? dataLabel.textStyle.fontSize, + fontFamily: + dataLabelStyle.fontFamily ?? dataLabel.textStyle.fontFamily, + fontStyle: dataLabelStyle.fontStyle ?? dataLabel.textStyle.fontStyle, + fontWeight: + dataLabelStyle.fontWeight ?? dataLabel.textStyle.fontWeight, + inherit: dataLabelStyle.inherit, + backgroundColor: dataLabelStyle.backgroundColor ?? + dataLabel.textStyle.backgroundColor, + letterSpacing: + dataLabelStyle.letterSpacing ?? dataLabel.textStyle.letterSpacing, + wordSpacing: + dataLabelStyle.wordSpacing ?? dataLabel.textStyle.wordSpacing, + textBaseline: + dataLabelStyle.textBaseline ?? dataLabel.textStyle.textBaseline, + height: dataLabelStyle.height ?? dataLabel.textStyle.height, + locale: dataLabelStyle.locale ?? dataLabel.textStyle.locale, + foreground: + dataLabelStyle.foreground ?? dataLabel.textStyle.foreground, + background: + dataLabelStyle.background ?? dataLabel.textStyle.background, + shadows: dataLabelStyle.shadows ?? dataLabel.textStyle.shadows, + fontFeatures: + dataLabelStyle.fontFeatures ?? dataLabel.textStyle.fontFeatures, + decoration: + dataLabelStyle.decoration ?? dataLabel.textStyle.decoration, + decorationColor: dataLabelStyle.decorationColor ?? + dataLabel.textStyle.decorationColor, + decorationStyle: dataLabelStyle.decorationStyle ?? + dataLabel.textStyle.decorationStyle, + decorationThickness: dataLabelStyle.decorationThickness ?? + dataLabel.textStyle.decorationThickness, + debugLabel: + dataLabelStyle.debugLabel ?? dataLabel.textStyle.debugLabel, + fontFamilyFallback: dataLabelStyle.fontFamilyFallback ?? + dataLabel.textStyle.fontFamilyFallback); + } renderOutsideDataLabel( canvas, label, @@ -1023,8 +1058,28 @@ void renderOutsideDataLabel( if (connector.type == ConnectorType.line) { connectorPath.lineTo(endPoint.dx, endPoint.dy); } - rect = getDataLabelRect(point.dataLabelPosition, connector.type, margin, - connectorPath, endPoint, textSize); + if (seriesRenderer.series.dataLabelSettings.builder != null) { + final int pointIndex = seriesRenderer + .stateProperties.renderingDetails.templates + .indexWhere((ChartTemplateInfo templateInfo) => + templateInfo.pointIndex == point.index); + // Checks template for avoid the hidden data point and calculate the label location based on template size. + if (pointIndex != -1) { + textSize = seriesRenderer.stateProperties.renderingDetails + .dataLabelTemplateRegions[pointIndex].size; + } + } + rect = getDataLabelRect( + point.dataLabelPosition, + connector.type, + margin, + connectorPath, + endPoint, + textSize, + // To avoid the extra padding added to the exact template size. + seriesRenderer.series.dataLabelSettings.builder != null + ? seriesRenderer.series.dataLabelSettings + : null); point.labelRect = rect!; labelLocation = Offset(rect.left + margin.left, rect.top + rect.height / 2 - textSize.height / 2); @@ -1075,8 +1130,10 @@ void renderOutsideDataLabel( } else { if (seriesRenderer.series.dataLabelSettings.labelIntersectAction != LabelIntersectAction.shift) { - _drawConnectorLine(labelLocation, connectorPath, canvas, seriesRenderer, - point, animateOpacity, seriesRenderer.series.dataLabelSettings); + if (textSize != Size.zero) { + _drawConnectorLine(labelLocation, connectorPath, canvas, seriesRenderer, + point, animateOpacity, seriesRenderer.series.dataLabelSettings); + } } } } @@ -1375,29 +1432,151 @@ void _drawConnectorLine( if (dataLabel.builder != null) { final List datalabelTemplate = seriesRenderer .stateProperties.renderingDetails.dataLabelTemplateRegions; - final Offset dataLabelLocation = seriesRenderer - .stateProperties.renderingDetails.templates[point.index].location; - for (int i = 0; i < datalabelTemplate.length; i++) { - if (datalabelTemplate[i].contains(location) || - datalabelTemplate[i].contains(dataLabelLocation)) { - canvas.drawPath( - connectorPath, - Paint() - ..color = line.width <= 0 - ? Colors.transparent - : line.color ?? point.fill.withOpacity(animateOpacity) - ..strokeWidth = line.width - ..style = PaintingStyle.stroke); + if (isTemplateWithinBounds( + seriesRenderer.stateProperties.renderingDetails.chartAreaRect, + point.labelRect) && + // Decide to render or ignore the empty point label connected line. + (point.y != 0 || dataLabel.showZeroValue)) { + final List templates = + seriesRenderer.stateProperties.renderingDetails.templates; + if (seriesRenderer.dataLabelSettingsRenderer.dataLabelSettings + .labelIntersectAction == + LabelIntersectAction.hide) { + for (int i = 0; i < templates.length; i++) { + // Here we have used the templates due to iterating the points leads to non initialized error. + // When the point get hidden by the legend toggle then the information of the point is not stored. + if (templates[i].pointIndex == point.index && + datalabelTemplate[i] != Rect.zero) { + _drawConnectedPath( + canvas, connectorPath, line, point, animateOpacity); + } + } + } else { + // This is for the shift and none interaction type connected line. + _drawConnectedPath(canvas, connectorPath, line, point, animateOpacity); } } } else { - canvas.drawPath( - connectorPath, - Paint() - ..color = line.width <= 0 - ? Colors.transparent - : line.color ?? point.fill.withOpacity(animateOpacity) - ..strokeWidth = line.width - ..style = PaintingStyle.stroke); + _drawConnectedPath(canvas, connectorPath, line, point, animateOpacity); } } + +/// To shift the data label template in the circular chart. +void shiftCircularDataLabelTemplate( + CircularSeriesRendererExtension seriesRenderer, + CircularStateProperties stateProperties, + List rectSize) { + leftPoints = >[]; + rightPoints = >[]; + final List renderDataLabelRegions = []; + const int labelPadding = 2; + final List templates = + seriesRenderer.stateProperties.renderingDetails.templates; + for (int i = 0; i < templates.length; i++) { + final ChartPoint point = + seriesRenderer.renderPoints![templates[i].pointIndex!]; + if (PointHelper.getNewAngle(point) == null && + point.isVisible && + templates[i].templateType == 'DataLabel') { + // For the data label position is inside. + if (seriesRenderer.series.dataLabelSettings.labelPosition == + ChartDataLabelPosition.inside) { + Offset labelLocation = degreeToPoint(point.midAngle!, + (point.innerRadius! + point.outerRadius!) / 2, point.center!); + labelLocation = Offset(labelLocation.dx - (rectSize[i].width / 2), + labelLocation.dy - (rectSize[i].height / 2)); + final Rect rect = Rect.fromLTWH( + labelLocation.dx - labelPadding, + labelLocation.dy - labelPadding, + rectSize[i].width + (2 * labelPadding), + rectSize[i].height + (2 * labelPadding)); + // If collide with label when the position is inside calculate the outside rect value of that perticular label. + if (findingCollision(rect, renderDataLabelRegions)) { + _renderOutsideDataLabelTemplate( + point, seriesRenderer, rectSize[i].size, renderDataLabelRegions); + } else { + point.renderPosition = ChartDataLabelPosition.inside; + point.labelRect = rect; + // Stored the region of template rect to compare with next label. + renderDataLabelRegions.add(rect); + } + } else if (seriesRenderer.series.dataLabelSettings.labelPosition == + ChartDataLabelPosition.outside) { + _renderOutsideDataLabelTemplate( + point, seriesRenderer, rectSize[i].size, renderDataLabelRegions); + } + } + } + for (int i = 0; i < seriesRenderer.renderPoints!.length; i++) { + if (seriesRenderer.renderPoints![i].isVisible) { + PointHelper.setNewAngle(seriesRenderer.renderPoints![i], + seriesRenderer.renderPoints![i].midAngle); + if (seriesRenderer.renderPoints![i].dataLabelPosition == Position.left && + seriesRenderer.renderPoints![i].renderPosition == + ChartDataLabelPosition.outside) { + leftPoints.add(seriesRenderer.renderPoints![i]); + } else if (seriesRenderer.renderPoints![i].dataLabelPosition == + Position.right && + seriesRenderer.renderPoints![i].renderPosition == + ChartDataLabelPosition.outside) { + rightPoints.add(seriesRenderer.renderPoints![i]); + } + } + } + leftPoints.sort((ChartPoint a, ChartPoint b) => + PointHelper.getNewAngle(a)!.compareTo(PointHelper.getNewAngle(b)!)); + isIncreaseAngle = false; + if (leftPoints.isNotEmpty) { + _arrangeLeftSidePoints(seriesRenderer); + } + isIncreaseAngle = false; + if (rightPoints.isNotEmpty) { + _arrangeRightSidePoints(seriesRenderer); + } +} + +// Calculate the data label rectangle value when the data label template +// position is outside and it consider the outer radius. +void _renderOutsideDataLabelTemplate( + ChartPoint point, + CircularSeriesRendererExtension seriesRenderer, + Size templateSize, + List renderDataLabelRegion) { + point.renderPosition = ChartDataLabelPosition.outside; + const String defaultConnectorLineLength = '10%'; + final EdgeInsets margin = seriesRenderer.series.dataLabelSettings.margin; + final ConnectorLineSettings connector = + seriesRenderer.series.dataLabelSettings.connectorLineSettings; + final Path connectorPath = Path(); + final num connectorLength = percentToValue( + connector.length ?? defaultConnectorLineLength, point.outerRadius!)!; + final Offset startPoint = + degreeToPoint(point.midAngle!, point.outerRadius!, point.center!); + final Offset endPoint = degreeToPoint( + point.midAngle!, point.outerRadius! + connectorLength, point.center!); + connectorPath.moveTo(startPoint.dx, startPoint.dy); + if (connector.type == ConnectorType.line) { + connectorPath.lineTo(endPoint.dx, endPoint.dy); + } + point.dataLabelSize = templateSize; + final Rect rect = getDataLabelRect(point.dataLabelPosition, connector.type, + margin, connectorPath, endPoint, templateSize)!; + point.labelRect = rect; + renderDataLabelRegion.add(rect); +} + +void _drawConnectedPath( + Canvas canvas, + Path connectorPath, + ConnectorLineSettings line, + ChartPoint point, + double animateOpacity) { + canvas.drawPath( + connectorPath, + Paint() + ..color = line.width <= 0 + ? Colors.transparent + : line.color ?? point.fill.withOpacity(animateOpacity) + ..strokeWidth = line.width + ..style = PaintingStyle.stroke); +} diff --git a/packages/syncfusion_flutter_charts/lib/src/circular_chart/utils/helper.dart b/packages/syncfusion_flutter_charts/lib/src/circular_chart/utils/helper.dart index 7a2bd55a1..de2168fce 100644 --- a/packages/syncfusion_flutter_charts/lib/src/circular_chart/utils/helper.dart +++ b/packages/syncfusion_flutter_charts/lib/src/circular_chart/utils/helper.dart @@ -100,22 +100,14 @@ Path getRoundedCornerArcPath( ChartPoint point) { final Path path = Path(); - Offset midPoint; - num midStartAngle, midEndAngle; if (cornerStyle == CornerStyle.startCurve || cornerStyle == CornerStyle.bothCurve) { - midPoint = - degreeToPoint(startAngle, (innerRadius + outerRadius) / 2, center!); + final Offset startPoint = degreeToPoint(startAngle, innerRadius, center!); + final Offset endPoint = degreeToPoint(startAngle, outerRadius, center); - midStartAngle = degreesToRadians(180); - - midEndAngle = midStartAngle + degreesToRadians(180); - - path.addArc( - Rect.fromCircle( - center: midPoint, radius: (innerRadius - outerRadius).abs() / 2), - midStartAngle.toDouble(), - midEndAngle.toDouble()); + path.moveTo(startPoint.dx, startPoint.dy); + path.arcToPoint(endPoint, + radius: Radius.circular((innerRadius - outerRadius).abs() / 2)); } path.addArc( @@ -125,18 +117,9 @@ Path getRoundedCornerArcPath( if (cornerStyle == CornerStyle.endCurve || cornerStyle == CornerStyle.bothCurve) { - midPoint = degreeToPoint(endAngle, (innerRadius + outerRadius) / 2, center); - - midStartAngle = degreesToRadians(endAngle / 2); - - midEndAngle = midStartAngle + degreesToRadians(180); - - path.arcTo( - Rect.fromCircle( - center: midPoint, radius: (innerRadius - outerRadius).abs() / 2), - midStartAngle.toDouble(), - midEndAngle.toDouble(), - false); + final Offset endPoint = degreeToPoint(endAngle, innerRadius, center); + path.arcToPoint(endPoint, + radius: Radius.circular((innerRadius - outerRadius).abs() / 2)); } path.arcTo( @@ -146,6 +129,10 @@ Path getRoundedCornerArcPath( degreesToRadians(endAngle.toDouble())) .toDouble(), false); + if (cornerStyle == CornerStyle.endCurve) { + path.close(); + } + return path; } diff --git a/packages/syncfusion_flutter_charts/lib/src/common/legend/legend.dart b/packages/syncfusion_flutter_charts/lib/src/common/legend/legend.dart index ae376064c..24ac7d70d 100644 --- a/packages/syncfusion_flutter_charts/lib/src/common/legend/legend.dart +++ b/packages/syncfusion_flutter_charts/lib/src/common/legend/legend.dart @@ -385,11 +385,27 @@ class ChartLegend { (!series.isVisible && seriesRendererDetails.oldSeries!.isVisible == true))) { legendRenderContext.isSelect = true; - if (stateProperties.renderingDetails.legendToggleStates - .contains(legendRenderContext) == - false) { + final List legendToggleStates = + stateProperties.renderingDetails.legendToggleStates; + if (legendToggleStates.isEmpty) { stateProperties.renderingDetails.legendToggleStates .add(legendRenderContext); + } else { + LegendRenderContext? legendContext; + bool isSame = false; + for (int i = 0; i < legendToggleStates.length; i++) { + if (legendToggleStates[i] == legendRenderContext || + legendToggleStates[i].seriesIndex == + legendRenderContext.seriesIndex) { + isSame = true; + } else if (!isSame) { + legendContext = legendRenderContext; + } + } + if (!isSame) { + stateProperties.renderingDetails.legendToggleStates + .add(legendContext!); + } } } else if (renderingDetails.widgetNeedUpdate && (seriesRendererDetails.oldSeries != null && diff --git a/packages/syncfusion_flutter_charts/lib/src/common/template/rendering.dart b/packages/syncfusion_flutter_charts/lib/src/common/template/rendering.dart index 50731916e..086a1d925 100644 --- a/packages/syncfusion_flutter_charts/lib/src/common/template/rendering.dart +++ b/packages/syncfusion_flutter_charts/lib/src/common/template/rendering.dart @@ -1,15 +1,19 @@ import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; +import '../../../charts.dart'; import '../../chart/chart_series/series.dart'; import '../../chart/chart_series/series_renderer_properties.dart'; -import '../../chart/chart_series/xy_data_series.dart'; import '../../chart/common/cartesian_state_properties.dart'; import '../../chart/common/data_label.dart'; import '../../chart/common/data_label_renderer.dart'; import '../../chart/utils/helper.dart'; +import '../../circular_chart/base/circular_state_properties.dart'; +import '../../circular_chart/renderer/data_label_renderer.dart'; +import '../../circular_chart/renderer/renderer_extension.dart'; +import '../../circular_chart/utils/helper.dart'; +import '../rendering_details.dart'; import '../state_properties.dart'; -import '../utils/enum.dart'; import '../utils/helper.dart'; /// Represents the render template class. @@ -186,7 +190,6 @@ class _ChartTemplateRenderBox extends RenderShiftedBox { if (child != null) { locationX = _templateInfo.location.dx; locationY = _templateInfo.location.dy; - child!.layout(constraints, parentUsesSize: true); size = constraints.constrain(Size(child!.size.width, child!.size.height)); if (child!.parentData is BoxParentData) { @@ -267,8 +270,39 @@ class _ChartTemplateRenderBox extends RenderShiftedBox { stateProperties.renderingDetails.dataLabelTemplateRegions; final bool isCollide = (_templateInfo.templateType == 'DataLabel') && findingCollision(rect, dataLabelTemplateRegions); - if (!isCollide && - _isTemplateWithinBounds(_templateInfo.clipRect, rect) && + if (stateProperties is CircularStateProperties && + _templateInfo.templateType == 'DataLabel' && + stateProperties.chartSeries.visibleSeriesRenderers[0].seriesType != + 'radialbar') { + final CircularSeriesRendererExtension seriesRenderer = + (stateProperties as CircularStateProperties) + .chartSeries + .visibleSeriesRenderers[0]; + final DataLabelSettings dataLabelSettings = + seriesRenderer.dataLabelSettingsRenderer.dataLabelSettings; + if (dataLabelSettings.labelIntersectAction == + LabelIntersectAction.shift) { + dataLabelTemplateRegions.add(rect); + } else { + final ChartPoint point = + seriesRenderer.renderPoints![_templateInfo.pointIndex!]; + if ((isCollide && + dataLabelSettings.labelIntersectAction == + LabelIntersectAction.hide && + child != null && + child!.size != Size.zero) || + (!isTemplateWithinBounds(_templateInfo.clipRect, rect) || + (point.y == 0 && !dataLabelSettings.showZeroValue))) { + child!.layout(constraints.copyWith(maxWidth: 0, maxHeight: 0), + parentUsesSize: true); + dataLabelTemplateRegions.add(Rect.zero); + } else { + childParentData.offset = Offset(locationX, locationY); + dataLabelTemplateRegions.add(rect); + } + } + } else if (!isCollide && + isTemplateWithinBounds(_templateInfo.clipRect, rect) && isLabelWithInRange) { (_templateInfo.templateType == 'DataLabel') ? dataLabelTemplateRegions.add(rect) @@ -285,13 +319,6 @@ class _ChartTemplateRenderBox extends RenderShiftedBox { size = Size.zero; } } - - /// To check template is within bounds. - bool _isTemplateWithinBounds(Rect bounds, Rect templateRect) => - templateRect.left >= bounds.left && - templateRect.left + templateRect.width <= bounds.left + bounds.width && - templateRect.top >= bounds.top && - templateRect.top + templateRect.height <= bounds.top + bounds.height; } /// Represents the chart template class. @@ -321,6 +348,87 @@ class ChartTemplate extends StatefulWidget { State createState() => _ChartTemplateState(); } +/// Represent the render object for circular data label template. +class DataLabelTemplateStack extends Stack { + /// Creating an argument constructor of DataLabelTemplateStack class. + DataLabelTemplateStack( + {required this.renderingDetails, + required this.stateProperties, + required List children}) + : super(children: children); + + /// Holds circular series rendering details. + final RenderingDetails renderingDetails; + + /// Holds circular series state properties. + final CircularStateProperties stateProperties; + + @override + RenderStack createRenderObject(BuildContext context) { + final RenderDataLabelTemplateStack dataLabelTemplateStack = + RenderDataLabelTemplateStack() + ..renderingDetails = renderingDetails + ..stateProperties = stateProperties + ..textDirection = Directionality.maybeOf(context); + return dataLabelTemplateStack; + } +} + +/// Shifted the circular data label template based on the template size. +class RenderDataLabelTemplateStack extends RenderStack { + /// Holds the Circular series rendering. + late RenderingDetails renderingDetails; + + /// Holds the CircularStateProperties. + late CircularStateProperties stateProperties; + + @override + void performLayout() { + super.performLayout(); + final CircularSeriesRendererExtension seriesRenderer = + stateProperties.chartSeries.visibleSeriesRenderers[0]; + final List regions = renderingDetails.dataLabelTemplateRegions; + shiftCircularDataLabelTemplate(seriesRenderer, stateProperties, regions); + RenderBox child = firstChild!; + const int labelPadding = 2; + final EdgeInsets margin = seriesRenderer.series.dataLabelSettings.margin; + int pointIndex = 0; + final List templates = + renderingDetails.chartTemplate!.templates; + // Iterate the template for avoid the hidden data points and get the visible points. + while (pointIndex < templates.length) { + final ChartPoint point = + seriesRenderer.renderPoints![templates[pointIndex].pointIndex!]; + if (point.isVisible && + templates[pointIndex].templateType == 'DataLabel') { + final Rect rect = point.labelRect; + final Offset labelLocation = Offset( + rect.left + + (point.renderPosition == ChartDataLabelPosition.inside + ? labelPadding + : margin.left), + rect.top + (rect.height / 2 - regions[pointIndex].height / 2)); + final StackParentData parentData = child.parentData as StackParentData; + if (isTemplateWithinBounds( + stateProperties.renderingDetails.chartAreaRect, rect) && + !isOverlapWithPrevious( + point, seriesRenderer.renderPoints!, point.index) && + (point.y != 0 || + seriesRenderer.series.dataLabelSettings.showZeroValue)) { + parentData.offset = labelLocation; + } else { + // made a child size to zero when it is goes outside the chart area or overlap with previous template. + child.layout(constraints.copyWith(maxHeight: 0, maxWidth: 0)); + } + if (pointIndex < renderingDetails.chartTemplate!.templates.length - 1) { + child = (child.parentData! as StackParentData).nextSibling!; + } + } + pointIndex++; + } + } +} + class _ChartTemplateState extends State { @override void initState() { @@ -332,6 +440,19 @@ class _ChartTemplateState extends State { Widget build(BuildContext context) { widget.state = this; Widget renderTemplate = Container(); + CircularSeriesRendererExtension? seriesRenderer; + DataLabelSettings? dataLabelSettings; + if (widget.stateProperties is CircularStateProperties) { + seriesRenderer = (widget.stateProperties as CircularStateProperties) + .chartSeries + .visibleSeriesRenderers[0]; + if (seriesRenderer.series.dataLabelSettings.isVisible) { + seriesRenderer.dataLabelSettingsRenderer = + DataLabelSettingsRenderer(seriesRenderer.series.dataLabelSettings); + dataLabelSettings = + seriesRenderer.dataLabelSettingsRenderer.dataLabelSettings; + } + } final bool animationCompleted = widget.stateProperties.renderingDetails.animateCompleted; if (animationCompleted && widget.templates.isNotEmpty) { @@ -344,7 +465,20 @@ class _ChartTemplateState extends State { stateProperties: widget.stateProperties, )); } - renderTemplate = Stack(children: renderWidgets); + renderTemplate = ((widget.stateProperties is CircularStateProperties) && + dataLabelSettings != null && + seriesRenderer!.seriesType != 'radialbar' && + dataLabelSettings.labelIntersectAction == + LabelIntersectAction.shift && + dataLabelSettings.builder != null) + ? DataLabelTemplateStack( + renderingDetails: widget.stateProperties.renderingDetails, + stateProperties: + widget.stateProperties as CircularStateProperties, + children: renderWidgets) + : Stack( + children: renderWidgets, + ); } return renderTemplate; } diff --git a/packages/syncfusion_flutter_charts/lib/src/common/user_interaction/tooltip.dart b/packages/syncfusion_flutter_charts/lib/src/common/user_interaction/tooltip.dart index de1443200..762f0921c 100644 --- a/packages/syncfusion_flutter_charts/lib/src/common/user_interaction/tooltip.dart +++ b/packages/syncfusion_flutter_charts/lib/src/common/user_interaction/tooltip.dart @@ -692,8 +692,11 @@ class TooltipBehavior { }); } } - if (renderingDetails.tooltipBehaviorRenderer._tooltipRenderingDetails - .tooltipTemplate == + if (chart.tooltipBehavior.builder != null && x != null) { + renderingDetails.tooltipBehaviorRenderer._tooltipRenderingDetails + .showTemplateTooltip(Offset(position.x, position.y)); + } else if (renderingDetails.tooltipBehaviorRenderer + ._tooltipRenderingDetails.tooltipTemplate == null) { final SfTooltipState? tooltipState = tooltipBehaviorRenderer._tooltipRenderingDetails.chartTooltipState; diff --git a/packages/syncfusion_flutter_charts/lib/src/common/utils/helper.dart b/packages/syncfusion_flutter_charts/lib/src/common/utils/helper.dart index 36e2af198..6468e53e4 100644 --- a/packages/syncfusion_flutter_charts/lib/src/common/utils/helper.dart +++ b/packages/syncfusion_flutter_charts/lib/src/common/utils/helper.dart @@ -40,7 +40,17 @@ void dataLabelTapEvent(dynamic chart, DataLabelSettings dataLabelSettings, datalabelArgs = DataLabelTapDetails( seriesIndex, pointIndex, - chart is SfCartesianChart ? point.label : point.text, + chart is SfCartesianChart + ? point.dataLabelRegion.contains(position) + ? point.label + : point.dataLabelRegion2.contains(position) + ? point.label2 + : point.dataLabelRegion3.contains(position) + ? point.label3 + : point.dataLabelRegion4.contains(position) + ? point.label4 + : point.label5 + : point.text, dataLabelSettings, chart is SfCartesianChart ? point.overallDataPointIndex : pointIndex); datalabelArgs.position = position; @@ -1050,33 +1060,23 @@ void calculatePointSeriesIndex( final SeriesRendererDetails seriesRendererDetails = SeriesHelper.getSeriesRendererDetails( stateProperties.chartSeries.visibleSeriesRenderers[i]); - final String seriesType = seriesRendererDetails.seriesType; int? pointIndex; - final double padding = (seriesType == 'bubble') || - (seriesType == 'scatter') || - (seriesType == 'bar') || - (seriesType == 'column' || - seriesType == 'rangecolumn' || - seriesType.contains('stackedcolumn') || - seriesType.contains('stackedbar') || - seriesType == 'waterfall') - ? 0 - : 15; - - /// Regional padding to detect smooth touch. seriesRendererDetails.regionalData! .forEach((dynamic regionRect, dynamic values) { final Rect region = regionRect[0]; - final double left = region.left - padding; - final double right = region.right + padding; - final double top = region.top - padding; - final double bottom = region.bottom + padding; + final double widthPadding = + region.width < 8 ? (8 - region.width) / 2 : 0; + final double heightPadding = + region.height < 8 ? (8 - region.height) / 2 : 0; + final double left = region.left - widthPadding; + final double right = region.right + widthPadding; + final double top = region.top - heightPadding; + final double bottom = region.bottom + heightPadding; final Rect paddedRegion = Rect.fromLTRB(left, top, right, bottom); if (paddedRegion.contains(position!)) { pointIndex = regionRect[4].visiblePointIndex; } }); - if (pointIndex != null && seriesRendererDetails.visible! == true) { if ((seriesRendererDetails.series.onPointTap != null || seriesRendererDetails.series.onPointDoubleTap != null || @@ -1214,3 +1214,10 @@ String addEllipse(String text, int maxLength, String ellipse, {bool? isRtl}) { return trimText + ellipse; } } + +/// To check template is within bounds. +bool isTemplateWithinBounds(Rect bounds, Rect templateRect) => + templateRect.left >= bounds.left && + templateRect.left + templateRect.width <= bounds.left + bounds.width && + templateRect.top >= bounds.top && + templateRect.top + templateRect.height <= bounds.top + bounds.height; diff --git a/packages/syncfusion_flutter_charts/lib/src/pyramid_chart/utils/helper.dart b/packages/syncfusion_flutter_charts/lib/src/pyramid_chart/utils/helper.dart index acfd75de6..79fa1441d 100644 --- a/packages/syncfusion_flutter_charts/lib/src/pyramid_chart/utils/helper.dart +++ b/packages/syncfusion_flutter_charts/lib/src/pyramid_chart/utils/helper.dart @@ -213,7 +213,8 @@ bool isNeedExplode(int pointIndex, dynamic series, dynamic stateProperties) { /// To return data label rect calculation method based on position. Rect? getDataLabelRect(Position position, ConnectorType connectorType, - EdgeInsets margin, Path connectorPath, Offset endPoint, Size textSize) { + EdgeInsets margin, Path connectorPath, Offset endPoint, Size textSize, + [DataLabelSettings? dataLabelSettings]) { Rect? rect; const int lineLength = 10; switch (position) { @@ -222,26 +223,32 @@ Rect? getDataLabelRect(Position position, ConnectorType connectorType, ? connectorPath.lineTo(endPoint.dx + lineLength, endPoint.dy) : connectorPath.quadraticBezierTo( endPoint.dx, endPoint.dy, endPoint.dx + lineLength, endPoint.dy); - rect = Rect.fromLTWH( - endPoint.dx + lineLength, - endPoint.dy - (textSize.height / 2) - margin.top, - textSize.width + margin.left + margin.right, - textSize.height + margin.top + margin.bottom); + rect = dataLabelSettings != null && dataLabelSettings.builder != null + ? Rect.fromLTWH( + endPoint.dx, endPoint.dy, textSize.width, textSize.height) + : Rect.fromLTWH( + endPoint.dx + lineLength, + endPoint.dy - (textSize.height / 2) - margin.top, + textSize.width + margin.left + margin.right, + textSize.height + margin.top + margin.bottom); break; case Position.left: connectorType == ConnectorType.line ? connectorPath.lineTo(endPoint.dx - lineLength, endPoint.dy) : connectorPath.quadraticBezierTo( endPoint.dx, endPoint.dy, endPoint.dx - lineLength, endPoint.dy); - rect = Rect.fromLTWH( - endPoint.dx - - lineLength - - margin.right - - textSize.width - - margin.left, - endPoint.dy - (textSize.height / 2) - margin.top, - textSize.width + margin.left + margin.right, - textSize.height + margin.top + margin.bottom); + rect = dataLabelSettings != null && dataLabelSettings.builder != null + ? Rect.fromLTWH( + endPoint.dx, endPoint.dy, textSize.width, textSize.height) + : Rect.fromLTWH( + endPoint.dx - + lineLength - + margin.right - + textSize.width - + margin.left, + endPoint.dy - ((textSize.height / 2) + margin.top), + textSize.width + margin.left + margin.right, + textSize.height + margin.top + margin.bottom); break; } return rect; diff --git a/packages/syncfusion_flutter_charts/pubspec.yaml b/packages/syncfusion_flutter_charts/pubspec.yaml index 680d9a62f..b7acb96c2 100644 --- a/packages/syncfusion_flutter_charts/pubspec.yaml +++ b/packages/syncfusion_flutter_charts/pubspec.yaml @@ -1,17 +1,17 @@ name: syncfusion_flutter_charts description: A Flutter Charts library which includes data visualization widgets such as cartesian and circular charts, to create real-time, interactive, high-performance, animated charts. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_charts environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter intl: ^0.17.0 vector_math: ">=2.1.0 <=3.0.0" - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 dev_dependencies: flutter_test: diff --git a/packages/syncfusion_flutter_core/README.md b/packages/syncfusion_flutter_core/README.md index 07cafb6a9..b5d173851 100644 --- a/packages/syncfusion_flutter_core/README.md +++ b/packages/syncfusion_flutter_core/README.md @@ -33,15 +33,12 @@ Explore the full capabilities of our Flutter widgets on your device by installin

- - + +

- -

-

@@ -55,11 +52,11 @@ Take a look at the following to learn more about Syncfusion Flutter widgets: ## Support and Feedback -* For any other queries, reach our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For any other queries, reach our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew the subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at salessupport@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls) and [.NET MAUI](https://www.syncfusion.com/maui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [.NET MAUI](https://www.syncfusion.com/maui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_core/example/linux/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_core/example/linux/flutter/generated_plugin_registrant.cc index e71a16d23..d38195aa0 100644 --- a/packages/syncfusion_flutter_core/example/linux/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_core/example/linux/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_core/example/linux/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_core/example/linux/flutter/generated_plugin_registrant.h index e0f0a47bc..9bf747894 100644 --- a/packages/syncfusion_flutter_core/example/linux/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_core/example/linux/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_core/example/linux/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_core/example/linux/flutter/generated_plugins.cmake index 2e1de87a7..51436ae8c 100644 --- a/packages/syncfusion_flutter_core/example/linux/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_core/example/linux/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_core/example/pubspec.yaml b/packages/syncfusion_flutter_core/example/pubspec.yaml index fdabf4577..2219d1655 100644 --- a/packages/syncfusion_flutter_core/example/pubspec.yaml +++ b/packages/syncfusion_flutter_core/example/pubspec.yaml @@ -3,7 +3,7 @@ description: This project holds information about registering a license key with version: 1.0.0+1 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: diff --git a/packages/syncfusion_flutter_core/example/windows/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_core/example/windows/flutter/generated_plugin_registrant.cc index 8b6d4680a..4bfa0f3a3 100644 --- a/packages/syncfusion_flutter_core/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_core/example/windows/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_core/example/windows/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_core/example/windows/flutter/generated_plugin_registrant.h index dc139d85a..9846246b4 100644 --- a/packages/syncfusion_flutter_core/example/windows/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_core/example/windows/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_core/example/windows/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_core/example/windows/flutter/generated_plugins.cmake index b93c4c30c..4d10c2518 100644 --- a/packages/syncfusion_flutter_core/example/windows/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_core/example/windows/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_core/lib/src/localizations/global_localizations.dart b/packages/syncfusion_flutter_core/lib/src/localizations/global_localizations.dart index 8eb11e3d5..1c2958e8d 100644 --- a/packages/syncfusion_flutter_core/lib/src/localizations/global_localizations.dart +++ b/packages/syncfusion_flutter_core/lib/src/localizations/global_localizations.dart @@ -241,79 +241,83 @@ abstract class SfLocalizations { String get greaterThanOrEqualDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Sort Smallest to Largest` option in drop down widget. + /// `Sort Smallest to Largest` option in the popup menu. String get sortSmallestToLargestDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// ` Sort Largest to Smallest ` option in drop down widget. + /// ` Sort Largest to Smallest ` option in the popup menu. String get sortLargestToSmallestDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Sort A to Z` option in drop down widget. + /// `Sort A to Z` option in the popup menu. String get sortAToZDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Sort Z to A` option in drop down widget. + /// `Sort Z to A` option in the popup menu. String get sortZToADataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Sort Oldest to Newest` option in drop down widget. + /// `Sort Oldest to Newest` option in the popup menu.. String get sortOldestToNewestDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Sort Newest to Oldest` option in drop down widget. + /// `Sort Newest to Oldest` option in the popup menu. String get sortNewestToOldestDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Clear Filter From` option in drop down widget. - String get clearFilterFromDataGridFilteringLabel; + /// `Clear Filter` text in `Clear Filter From` option in the popup menu. + String get clearFilterDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Text Filters` option in drop down widget. + /// `From` text in `Clear Filter From` option in the popup menu. + String get fromDataGridFilteringLabel; + + /// The label that is displayed in the filter view in SfDataGrid for + /// `Text Filters` option in the popup menu. String get textFiltersDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Number Filters` option in drop down widget. + /// `Number Filters` option in the popup menu. String get numberFiltersDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Date Filters` option in drop down widget. + /// `Date Filters` option in the popup menu. String get dateFiltersDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Search` option in drop down widget. + /// `Search` option in the popup menu. String get searchDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `No matches` option in drop down widget. + /// `No matches` option in the popup menu. String get noMatchesDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `OK ` option in drop down widget. + /// `OK ` option in the popup menu. String get okDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Cancel` option in drop down widget. + /// `Cancel` option in the popup menu. String get cancelDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Show rows where` option in drop down widget. + /// `Show rows where` option in the popup menu. String get showRowsWhereDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `And` option in drop down widget. + /// `And` option in the popup menu. String get andDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Or` option in drop down widget. + /// `Or` option in the popup menu. String get orDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Select All` option in drop down widget. + /// `Select All` option in the popup menu. String get selectAllDataGridFilteringLabel; /// The label that is displayed in the filter view in SfDataGrid for - /// `Sort and Filter` option in drop down widget. + /// `Sort and Filter` option in the popup menu. String get sortAndFilterDataGridFilteringLabel; /// Label that is displayed in the bookmark view header of PdfViewer. @@ -659,7 +663,10 @@ class _DefaultLocalizations implements SfLocalizations { 'Sort Newest to Oldest'; @override - String get clearFilterFromDataGridFilteringLabel => 'Clear Filter From'; + String get clearFilterDataGridFilteringLabel => 'Clear Filter'; + + @override + String get fromDataGridFilteringLabel => 'From'; @override String get textFiltersDataGridFilteringLabel => 'Text Filters'; diff --git a/packages/syncfusion_flutter_core/lib/src/theme/datagrid_theme.dart b/packages/syncfusion_flutter_core/lib/src/theme/datagrid_theme.dart index 78f73cf74..e29c712b9 100644 --- a/packages/syncfusion_flutter_core/lib/src/theme/datagrid_theme.dart +++ b/packages/syncfusion_flutter_core/lib/src/theme/datagrid_theme.dart @@ -124,6 +124,11 @@ class SfDataGridThemeData with Diagnosticable { double? columnResizeIndicatorStrokeWidth, TextStyle? rowHoverTextStyle, Widget? sortIcon, + Widget? filterIcon, + Color? filterIconColor, + Color? filterIconHoverColor, + Color? sortOrderNumberColor, + Color? sortOrderNumberBackgroundColor, }) { return SfDataGridThemeData.raw( brightness: brightness, @@ -141,7 +146,12 @@ class SfDataGridThemeData with Diagnosticable { columnResizeIndicatorColor: columnResizeIndicatorColor, columnResizeIndicatorStrokeWidth: columnResizeIndicatorStrokeWidth, rowHoverTextStyle: rowHoverTextStyle, - sortIcon: sortIcon); + sortIcon: sortIcon, + filterIcon: filterIcon, + filterIconColor: filterIconColor, + filterIconHoverColor: filterIconHoverColor, + sortOrderNumberColor: sortOrderNumberColor, + sortOrderNumberBackgroundColor: sortOrderNumberBackgroundColor); } /// Create a [SfDataGridThemeData] given a set of exact values. @@ -167,7 +177,12 @@ class SfDataGridThemeData with Diagnosticable { required this.columnResizeIndicatorStrokeWidth, required this.rowHoverColor, required this.rowHoverTextStyle, - required this.sortIcon}); + required this.sortIcon, + required this.filterIcon, + required this.filterIconColor, + required this.filterIconHoverColor, + required this.sortOrderNumberColor, + required this.sortOrderNumberBackgroundColor}); /// The brightness of the overall theme of the /// application for the [SfDataGrid] widgets. @@ -389,6 +404,84 @@ class SfDataGridThemeData with Diagnosticable { /// ``` final Widget? sortIcon; + /// The icon to indicate the filtering applied in column. + /// + /// If you want to change the icon filter or filtered state, you can use the + /// [Builder](https://api.flutter.dev/flutter/widgets/Builder-class.html) + /// widget and return the respective icon for the state. You have to return + /// the icons for both the states even if you want to change the icon + /// for specific state. + /// + /// ```dart + /// @override + /// Widget build(BuildContext context) { + /// return Scaffold( + /// appBar: AppBar( + /// title: const Text('Syncfusion Flutter DataGrid', + /// overflow: TextOverflow.ellipsis), + /// ), + /// body: SfDataGridTheme( + /// data: SfDataGridThemeData(filterIcon: Builder( + /// builder: (context) { + /// Widget? icon; + /// String columnName = ''; + /// context.visitAncestorElements((element) { + /// if (element is GridHeaderCellElement) { + /// columnName = element.column.columnName; + /// } + /// return true; + /// }); + /// var column = _employeeDataSource.filterConditions.keys + /// .where((element) => element == columnName) + /// .firstOrNull; + + /// if (column != null) { + /// icon = const Icon( + /// Icons.filter_alt_outlined, + /// size: 20, + /// color: Colors.purple, + /// ); + /// } + /// return icon ?? + /// const Icon( + /// Icons.filter_alt_off_outlined, + /// size: 20, + /// color: Colors.deepOrange, + /// ); + /// }, + /// )), + /// child: SfDataGrid( + /// source: _employeeDataSource, + /// allowFiltering: true, + /// allowSorting: true, + /// columns: getColumns(), + /// ), + /// ), + /// ); + /// } + /// ``` + final Widget? filterIcon; + + /// The color of the filter icon which indicates whether + /// the column is filtered or not. + /// + /// This is not applicable when `filterIcon` property is set. + /// This applies the color to default filter icon only. + final Color? filterIconColor; + + /// The color for the filter icon when a pointer is hovering over it. + /// + /// This is not applicable when `filterIcon` property is set. + /// This applies the color to default filter icon only. + final Color? filterIconHoverColor; + + /// The color of the number displayed when the order of the sorting is shown. + final Color? sortOrderNumberColor; + + /// The color of the rounded background displayed + /// when the order of the sorting is shown. + final Color? sortOrderNumberBackgroundColor; + /// Creates a copy of this theme but with the given /// fields replaced with the new values. SfDataGridThemeData copyWith({ @@ -408,6 +501,11 @@ class SfDataGridThemeData with Diagnosticable { Color? rowHoverColor, TextStyle? rowHoverTextStyle, Widget? sortIcon, + Widget? filterIcon, + Color? filterIconColor, + Color? filterIconHoverColor, + Color? sortOrderNumberColor, + Color? sortOrderNumberBackgroundColor, }) { return SfDataGridThemeData.raw( brightness: brightness ?? this.brightness, @@ -428,6 +526,12 @@ class SfDataGridThemeData with Diagnosticable { rowHoverColor: rowHoverColor ?? this.rowHoverColor, rowHoverTextStyle: rowHoverTextStyle ?? this.rowHoverTextStyle, sortIcon: sortIcon ?? this.sortIcon, + filterIcon: filterIcon ?? this.filterIcon, + filterIconColor: filterIconColor ?? this.filterIconColor, + filterIconHoverColor: filterIconHoverColor ?? this.filterIconHoverColor, + sortOrderNumberColor: sortOrderNumberColor ?? this.sortOrderNumberColor, + sortOrderNumberBackgroundColor: + sortOrderNumberBackgroundColor ?? this.sortOrderNumberBackgroundColor, ); } @@ -462,6 +566,15 @@ class SfDataGridThemeData with Diagnosticable { t), rowHoverTextStyle: TextStyle.lerp(a.rowHoverTextStyle, b.rowHoverTextStyle, t), + filterIconColor: Color.lerp(a.filterIconColor, b.filterIconColor, t), + filterIconHoverColor: + Color.lerp(a.filterIconHoverColor, b.filterIconHoverColor, t), + sortOrderNumberColor: + Color.lerp(a.sortOrderNumberColor, b.sortOrderNumberColor, t), + sortOrderNumberBackgroundColor: Color.lerp( + a.sortOrderNumberBackgroundColor, + b.sortOrderNumberBackgroundColor, + t), ); } @@ -491,7 +604,12 @@ class SfDataGridThemeData with Diagnosticable { other.columnResizeIndicatorStrokeWidth == columnResizeIndicatorStrokeWidth && other.rowHoverTextStyle == rowHoverTextStyle && - other.sortIcon == sortIcon; + other.sortIcon == sortIcon && + other.filterIcon == filterIcon && + other.filterIconColor == filterIconColor && + other.filterIconHoverColor == filterIconHoverColor && + other.sortOrderNumberColor == sortOrderNumberColor && + other.sortOrderNumberBackgroundColor == sortOrderNumberBackgroundColor; } @override @@ -511,7 +629,12 @@ class SfDataGridThemeData with Diagnosticable { columnResizeIndicatorColor, columnResizeIndicatorStrokeWidth, rowHoverTextStyle, - sortIcon + sortIcon, + filterIcon, + filterIconColor, + filterIconHoverColor, + sortOrderNumberColor, + sortOrderNumberBackgroundColor ]; return Object.hashAll(values); } @@ -554,6 +677,19 @@ class SfDataGridThemeData with Diagnosticable { properties.add(DiagnosticsProperty( 'rowHoverTextStyle', rowHoverTextStyle, defaultValue: defaultData.rowHoverTextStyle)); + properties.add(DiagnosticsProperty('sortIcon', sortIcon, + defaultValue: defaultData.sortIcon)); + properties.add(DiagnosticsProperty('filterIcon', filterIcon, + defaultValue: defaultData.filterIcon)); + properties.add(ColorProperty('filterIconColor', filterIconColor, + defaultValue: defaultData.filterIconColor)); + properties.add(ColorProperty('filterIconHoverColor', filterIconHoverColor, + defaultValue: defaultData.filterIconHoverColor)); + properties.add(ColorProperty('sortOrderNumberColor', sortOrderNumberColor, + defaultValue: defaultData.sortOrderNumberColor)); + properties.add(ColorProperty( + 'sortOrderNumberBackgroundColor', sortOrderNumberBackgroundColor, + defaultValue: defaultData.sortOrderNumberBackgroundColor)); } } diff --git a/packages/syncfusion_flutter_core/lib/tooltip_internal.dart b/packages/syncfusion_flutter_core/lib/tooltip_internal.dart index 7cbbed140..9faa99398 100644 --- a/packages/syncfusion_flutter_core/lib/tooltip_internal.dart +++ b/packages/syncfusion_flutter_core/lib/tooltip_internal.dart @@ -8,3 +8,4 @@ import 'package:flutter/rendering.dart'; import 'package:flutter_test/flutter_test.dart'; import 'core.dart'; part 'src/tooltip/tooltip.dart'; +part 'src/test/tooltip_tests.dart'; diff --git a/packages/syncfusion_flutter_core/pubspec.yaml b/packages/syncfusion_flutter_core/pubspec.yaml index 5ee49343b..bd8e2ae89 100644 --- a/packages/syncfusion_flutter_core/pubspec.yaml +++ b/packages/syncfusion_flutter_core/pubspec.yaml @@ -1,10 +1,10 @@ name: syncfusion_flutter_core description: Syncfusion Flutter Core is a dependent package for all the Syncfusion Flutter widgets. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_core environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: vector_math: ">=2.1.0 <=3.0.0" diff --git a/packages/syncfusion_flutter_datagrid/CHANGELOG.md b/packages/syncfusion_flutter_datagrid/CHANGELOG.md index 64628a1c8..0fefdc892 100644 --- a/packages/syncfusion_flutter_datagrid/CHANGELOG.md +++ b/packages/syncfusion_flutter_datagrid/CHANGELOG.md @@ -1,5 +1,51 @@ ## Unreleased +**Features** + +* Provided the support to change the shape of the built-in checkbox column. +* Provided the support to change the filter icon and its color. The padding around the filter icon can also be customized. +* Provided the support to customize the filter options in the filter popup. Users can hide the sorting and “Clear Filter” options and show only the checked listbox view or advanced filter popup view to apply filtering. +* Provided the support to customize the color of the sort order number and its rounded background. +* Provided the support to change the elevation effect when setting the `frozenPaneLineColor` property. + +**Bugs** + +* The filtering is now properly applied when programmatically adding the filter conditions and filter popup menu is now opened with proper items in checked listbox. + +## [20.3.60] - 12/06/2022 + +**Bugs** + +* The `onFilterChanging` and `onFilterChanged` callbacks will be called now when tapping `Select All` option to select all the rows in the checked listbox filtering. +* The current cell is now properly removed when setting the `selectedIndex` property as -1 programmatically. + +## [20.3.59] - 11/29/2022 + +**Bugs** + +* The focus is now moved to widgets that are outside the DataGrid when the canSubmitCell method returns true. + +## [20.3.57] - 11/15/2022 + +**Bugs** + +* The listeners in `SelectionController` class are properly disposed + +## [20.3.49] - 10/11/2022 + +**Bugs** + +* The current cell is now updating properly while adding a row at runtime through the `RowSelectionManager`. +* SfDataPager is now working properly when changing the `pageCount` property at run time. + +## [20.3.48] - 10/05/2022 + +**Bugs** + +* Filtering is now working properly when page count is set for paging to apply whole data sorting. + +## [20.3.47] - 09/29/2022 + **Breaking changes** * The left and border is now drawn by default in DataGrid. Hence, there is no need to add `Container` widget as parent for DataGrid to set left and top borders. diff --git a/packages/syncfusion_flutter_datagrid/README.md b/packages/syncfusion_flutter_datagrid/README.md index 01e55f8ab..a53600ba2 100644 --- a/packages/syncfusion_flutter_datagrid/README.md +++ b/packages/syncfusion_flutter_datagrid/README.md @@ -100,15 +100,12 @@ Explore the full capabilities of our Flutter widgets on your device by installin

- - + +

- -

-

@@ -290,11 +287,11 @@ The following screenshot illustrates the result of the above code sample. ## Support and Feedback -* If you have any questions, you can reach the [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post queries to the [community forums](https://www.syncfusion.com/forums). You can also submit a feature request or a bug report through our [feedback portal](https://www.syncfusion.com/feedback/flutter). +* If you have any questions, you can reach the [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post queries to the [community forums](https://www.syncfusion.com/forums). You can also submit a feature request or a bug report through our [feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew your subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at sales@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,600+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components)) , mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to- deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file +Today we provide 1,600+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to- deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_datagrid/example/linux/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_datagrid/example/linux/flutter/generated_plugin_registrant.cc index e71a16d23..d38195aa0 100644 --- a/packages/syncfusion_flutter_datagrid/example/linux/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_datagrid/example/linux/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_datagrid/example/linux/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_datagrid/example/linux/flutter/generated_plugin_registrant.h index e0f0a47bc..9bf747894 100644 --- a/packages/syncfusion_flutter_datagrid/example/linux/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_datagrid/example/linux/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_datagrid/example/linux/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_datagrid/example/linux/flutter/generated_plugins.cmake index 2e1de87a7..51436ae8c 100644 --- a/packages/syncfusion_flutter_datagrid/example/linux/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_datagrid/example/linux/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_datagrid/example/pubspec.yaml b/packages/syncfusion_flutter_datagrid/example/pubspec.yaml index 1a9eb6866..79b413564 100644 --- a/packages/syncfusion_flutter_datagrid/example/pubspec.yaml +++ b/packages/syncfusion_flutter_datagrid/example/pubspec.yaml @@ -3,7 +3,7 @@ description: This project demonstrates how to use Syncfusion Flutter DataGrid wi version: 1.0.0+1 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: diff --git a/packages/syncfusion_flutter_datagrid/example/windows/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_datagrid/example/windows/flutter/generated_plugin_registrant.cc index 8b6d4680a..4bfa0f3a3 100644 --- a/packages/syncfusion_flutter_datagrid/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_datagrid/example/windows/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_datagrid/example/windows/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_datagrid/example/windows/flutter/generated_plugin_registrant.h index dc139d85a..9846246b4 100644 --- a/packages/syncfusion_flutter_datagrid/example/windows/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_datagrid/example/windows/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_datagrid/example/windows/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_datagrid/example/windows/flutter/generated_plugins.cmake index b93c4c30c..4d10c2518 100644 --- a/packages/syncfusion_flutter_datagrid/example/windows/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_datagrid/example/windows/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_datagrid/lib/datagrid.dart b/packages/syncfusion_flutter_datagrid/lib/datagrid.dart index 603de756b..24975b337 100644 --- a/packages/syncfusion_flutter_datagrid/lib/datagrid.dart +++ b/packages/syncfusion_flutter_datagrid/lib/datagrid.dart @@ -31,6 +31,8 @@ export './src/datagrid_widget/sfdatagrid.dart' addFilterConditions, removeFilterConditions, refreshEffectiveRows, + performSorting, + updateDataPager, DataGridThemeHelper; export './src/datapager/sfdatapager.dart' hide SfDataPagerState, DataPagerThemeHelper; diff --git a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/helper/datagrid_configuration.dart b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/helper/datagrid_configuration.dart index ba4e66c9f..f7a6bda83 100644 --- a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/helper/datagrid_configuration.dart +++ b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/helper/datagrid_configuration.dart @@ -60,7 +60,7 @@ class DataGridConfiguration { late ColumnResizeController columnResizeController; /// Provides the base functionalities to process the filtering in [SfDataGrid]. - late DataGridFilterHelper dataGridFilterHelper; + DataGridFilterHelper? dataGridFilterHelper; /// The width of the current datagrid view. late double viewWidth; @@ -366,4 +366,7 @@ class DataGridConfiguration { /// Decides whether the Horizontal ScrollController can be disposed of in the source itself. /// Default to true. bool disposeHorizontalScrollController = true; + + /// Defines the OutlinedBorder for the shape of the checkbox. + OutlinedBorder? checkboxShape; } diff --git a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/helper/datagrid_helper.dart b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/helper/datagrid_helper.dart index 7155a4d12..7eb483d3f 100644 --- a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/helper/datagrid_helper.dart +++ b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/helper/datagrid_helper.dart @@ -833,9 +833,11 @@ Future scrollVertical( return; } - verticalOffset = verticalOffset > verticalController.position.maxScrollExtent - ? verticalController.position.maxScrollExtent - : verticalOffset; + final double maxScrollExtent = max( + dataGridConfiguration.container.rowHeights.totalExtent - + dataGridConfiguration.viewHeight, + 0.0); + verticalOffset = min(verticalOffset, maxScrollExtent); verticalOffset = verticalOffset.isNegative || verticalOffset == 0.0 ? verticalController.position.minScrollExtent : verticalOffset; @@ -863,10 +865,11 @@ Future scrollHorizontal( return; } - horizontalOffset = - horizontalOffset > horizontalController.position.maxScrollExtent - ? horizontalController.position.maxScrollExtent - : horizontalOffset; + final double maxScrollExtent = max( + dataGridConfiguration.container.columnWidths.totalExtent - + dataGridConfiguration.viewWidth, + 0.0); + horizontalOffset = min(horizontalOffset, maxScrollExtent); horizontalOffset = horizontalOffset.isNegative || horizontalOffset == 0.0 ? horizontalController.position.minScrollExtent : horizontalOffset; diff --git a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/helper/enums.dart b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/helper/enums.dart index dc9b5b393..9297764e3 100644 --- a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/helper/enums.dart +++ b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/helper/enums.dart @@ -341,3 +341,15 @@ enum AdvancedFilterType { /// values. date, } + +/// Decides how the checked listbox and advanced filter options should be shown in filter popup +enum FilterMode { + /// Specifies whether the checked listbox only should be shown along with other options. + checkboxFilter, + + /// Specifies whether the advanced filter dropdown only should be shown along with other options. + advancedFilter, + + /// Specifies whether both the checked listbox and advanced filter dropdown options should be shown. + both, +} diff --git a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/runtime/cell_renderers.dart b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/runtime/cell_renderers.dart index 55ecad466..c95e9dc09 100644 --- a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/runtime/cell_renderers.dart +++ b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/runtime/cell_renderers.dart @@ -166,6 +166,7 @@ class GridHeaderCellRenderer visible: dataGridConfiguration .checkboxColumnSettings.showCheckboxOnHeader, child: Checkbox( + shape: dataGridConfiguration.checkboxShape, tristate: true, value: dataGridConfiguration.headerCheckboxState, onChanged: (bool? newValue) { @@ -258,6 +259,7 @@ class GridCheckboxRenderer dataCell.dataRow!.isDirty, dataGridStateDetails: _dataGridStateDetails, child: Checkbox( + shape: dataGridConfiguration.checkboxShape, value: selectionState, onChanged: (bool? newValue) { selection_manager.handleSelectionFromCheckbox( diff --git a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/runtime/column.dart b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/runtime/column.dart index a65df6728..24fed70a0 100644 --- a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/runtime/column.dart +++ b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/runtime/column.dart @@ -31,7 +31,9 @@ class GridColumn { this.maximumWidth = double.nan, this.width = double.nan, this.allowEditing = true, - this.allowFiltering = true}) { + this.allowFiltering = true, + this.filterPopupMenuOptions, + this.filterIconPadding = const EdgeInsets.symmetric(horizontal: 8.0)}) { _actualWidth = double.nan; _autoWidth = double.nan; } @@ -157,6 +159,12 @@ class GridColumn { /// * [DataGridSource.filterConditions] – This property holds the collection /// of the filter conditions which are applied for various columns. final bool allowFiltering; + + /// Decides how the checked listbox and advanced filter options should be shown in filter popup. + final FilterPopupMenuOptions? filterPopupMenuOptions; + + /// The amount of space which should be added with the filter icon + final EdgeInsetsGeometry filterIconPadding; } /// A column which displays the values of the string in its cells. @@ -318,7 +326,12 @@ class ColumnSizer { static const double _sortIconWidth = 20.0; static const double _sortNumberWidth = 18.0; - static const double _filterIconWidth = 34.0; + static const double _filterIconWidth = 18.0; + + /// Defines the outer padding of the sort and filter icon's container. We need + /// to consider this padding to measure the auto-width and height calculation. + EdgeInsetsGeometry iconsOuterPadding = + const EdgeInsets.symmetric(horizontal: 4.0); void _initialRefresh(double availableWidth) { final LineSizeCollection lineSizeCollection = @@ -610,9 +623,13 @@ class ColumnSizer { double _calculateColumnHeaderWidth(GridColumn column, {bool setWidth = true}) { - final double width = _getHeaderCellWidth(column) + - _getSortIconWidth(column) + - _getFilterIconWidth(column); + double iconsWidth = _getSortIconWidth(column) + _getFilterIconWidth(column); + + if (iconsWidth > 0) { + iconsWidth += iconsOuterPadding.horizontal; + } + + final double width = _getHeaderCellWidth(column) + iconsWidth; _updateSetWidth(setWidth, column, width); return width; } @@ -818,7 +835,7 @@ class ColumnSizer { double _getFilterIconWidth(GridColumn column) { if (_dataGridStateDetails!().allowFiltering && column.allowFiltering) { - return _filterIconWidth; + return _filterIconWidth + column.filterIconPadding.horizontal; } return 0.0; } @@ -1065,17 +1082,22 @@ class ColumnSizer { : dataGridConfiguration.container.columnWidths[columnIndex]; final double strokeWidth = _getGridLineStrokeWidth( - rowIndex: rowIndex, dataGridConfiguration: dataGridConfiguration) + rowIndex: rowIndex, + dataGridConfiguration: dataGridConfiguration, + column: column) .width; final double horizontalPadding = column.autoFitPadding.horizontal; // Removed the padding and gridline stroke width from the column width to // measure the accurate height for the cell content. - columnWidth -= _getSortIconWidth(column) + - _getFilterIconWidth(column) + - horizontalPadding + - strokeWidth; + double iconsWidth = _getSortIconWidth(column) + _getFilterIconWidth(column); + + if (iconsWidth > 0) { + iconsWidth += iconsOuterPadding.horizontal; + } + + columnWidth -= iconsWidth + horizontalPadding + strokeWidth; return _calculateTextSize( column: column, @@ -1107,7 +1129,8 @@ class ColumnSizer { Size _getGridLineStrokeWidth( {required int rowIndex, - required DataGridConfiguration dataGridConfiguration}) { + required DataGridConfiguration dataGridConfiguration, + required GridColumn column}) { final double strokeWidth = dataGridConfiguration.dataGridThemeHelper!.gridLineStrokeWidth; @@ -1116,15 +1139,24 @@ class ColumnSizer { ? dataGridConfiguration.headerGridLinesVisibility : dataGridConfiguration.gridLinesVisibility; + final GridColumn firstVisibleColumn = dataGridConfiguration.columns + .firstWhere( + (GridColumn column) => column.visible && column.width != 0.0); + final bool isFirstColumn = + firstVisibleColumn.columnName == column.columnName; + switch (gridLinesVisibility) { case GridLinesVisibility.none: return Size.zero; case GridLinesVisibility.both: - return Size(strokeWidth, strokeWidth); + return Size(strokeWidth, + rowIndex == 0 ? (strokeWidth + strokeWidth) : strokeWidth); case GridLinesVisibility.vertical: - return Size(strokeWidth, 0); + return Size(isFirstColumn ? (strokeWidth + strokeWidth) : strokeWidth, + rowIndex == 0 ? strokeWidth : 0); case GridLinesVisibility.horizontal: - return Size(0, strokeWidth); + return Size(isFirstColumn ? strokeWidth : 0, + rowIndex == 0 ? (strokeWidth + strokeWidth) : strokeWidth); } } @@ -1145,7 +1177,9 @@ class ColumnSizer { _dataGridStateDetails!(); final Size strokeWidthSize = _getGridLineStrokeWidth( - rowIndex: rowIndex, dataGridConfiguration: dataGridConfiguration); + rowIndex: rowIndex, + dataGridConfiguration: dataGridConfiguration, + column: column); final TextPainter textPainter = TextPainter( text: TextSpan(text: value?.toString() ?? '', style: textStyle), @@ -1841,12 +1875,10 @@ class DataGridFilterHelper { advancedFilterHelper = DataGridAdvancedFilterHelper(_dataGridStateDetails); } - /// Checks whether the column is already filtered and needs to use the - /// previous source without current filter conditions or not. - bool canUsePreviousSource = false; - - /// Checks whether the UI view filtering is applied or not. - bool isViewFilterAppiled = false; + /// Holds the data rows that before apply filtering to the current column. + /// Sets the rows when generating the checkbox list view items and use it to + /// apply filtering to optimize the filtering instead of filter whole rows again. + List _previousDataRows = []; /// This flag is used to check whether the filtering popup menu is currently /// showing or not in the view. @@ -1908,11 +1940,7 @@ class DataGridFilterHelper { /// Apply filter to the effective rows based on `filterConditions`. void applyFilter() { if (_dataGridStateDetails().source.filterConditions.isNotEmpty) { - if (isViewFilterAppiled) { - _refreshViewFilter(); - } else { - _refreshFilter(); - } + _refreshFilter(); } } @@ -1932,60 +1960,52 @@ class DataGridFilterHelper { } } - /// Applies filtering based on the filter conditions in orders. - void _refreshViewFilter() { - final DataGridConfiguration dataGridConfiguration = _dataGridStateDetails(); - final Map> filterConditions = - dataGridConfiguration.source.filterConditions; - - if (filterConditions.isNotEmpty) { - for (final String columnName in filterConditions.keys) { - final Map> currentFilterCondition = - >{ - columnName: filterConditions[columnName]! - }; - - final List filteredRows = _getFilterRows( - dataGridConfiguration.source.effectiveRows, currentFilterCondition); - - refreshEffectiveRows(dataGridConfiguration.source, filteredRows); - } - } - } - void _createCheckboxFilterConditions(GridColumn column) { final DataGridSource source = _dataGridStateDetails().source; if (_unCheckedItemsCount == 0 && checkboxFilterHelper._searchedItems.isEmpty) { - if (source.filterConditions.isNotEmpty) { - removeFilterConditions(source, column.columnName); + // Need to invoke `onFilterChanging` and `onFilterChanged` callback to notify + // the filtering changes when tapping `SelectAll` button to select all the + // rows in the Checkbox UI filtering. + if (source.filterConditions.containsKey(column.columnName)) { + if (_invokeFilterChangingCallback(column, [])) { + removeFilterConditions(source, column.columnName); + } else { + return; + } } } else { final bool useSelected = !(_checkedItemsCount > _unCheckedItemsCount && _unCheckedItemsCount > 0); - final List conditions = checkboxFilterHelper.items - .where((FilterElement element) => element.isSelected == useSelected) - .map((FilterElement value) { - final FilterType filterType = - useSelected ? FilterType.equals : FilterType.notEqual; - final FilterOperator filterOperator = - useSelected ? FilterOperator.or : FilterOperator.and; - final String? filterValue = - value.value == '(Blanks)' ? null : value.value.toString(); - - return FilterCondition( - type: filterType, - isCaseSensitive: true, - value: filterValue, - filterBehavior: FilterBehavior.stringDataType, - filterOperator: filterOperator); - }).toList(); + final List conditions = []; + for (final FilterElement value in checkboxFilterHelper.items) { + if (value.isSelected == useSelected) { + final FilterType filterType = + useSelected ? FilterType.equals : FilterType.notEqual; + FilterOperator filterOperator = + useSelected ? FilterOperator.or : FilterOperator.and; + final String? filterValue = + value.value == '(Blanks)' ? null : value.value.toString(); + + // Sets the first filter condition's filter operator as 'AND' to + // perform multi-column filtering. + if (conditions.isEmpty) { + filterOperator = FilterOperator.and; + } + + conditions.add(FilterCondition( + type: filterType, + isCaseSensitive: true, + value: filterValue, + filterBehavior: FilterBehavior.stringDataType, + filterOperator: filterOperator)); + } + } addFilterConditions(source, column.columnName, conditions); } if (source.filterConditions.isEmpty) { - isViewFilterAppiled = false; setFilterFrom(column, FilteredFrom.none); } else { setFilterFrom(column, FilteredFrom.checkboxFilter); @@ -2011,6 +2031,11 @@ class DataGridFilterHelper { /// Format the given cell value to the string data type to display. String getDisplayValue(Object? value) { if (value != null) { + // Should return if the value defines the blank filter. + if (value == '(Blanks)') { + return '(Blanks)'; + } + switch (advancedFilterHelper.advancedFilterType) { case AdvancedFilterType.text: case AdvancedFilterType.numeric: @@ -2069,7 +2094,8 @@ class DataGridFilterHelper { } final DataGridSource source = dataGridConfiguration.source; - if (source.filterConditions.isNotEmpty) { + // Should avoid the type checking if the `effectiveRows` contains an empty list. + if (source.effectiveRows.isNotEmpty && source.filterConditions.isNotEmpty) { for (final String columnName in source.filterConditions.keys) { final GridColumn? column = dataGridConfiguration.columns .firstWhereOrNull( @@ -2131,10 +2157,10 @@ class DataGridFilterHelper { _debugCheckDataType(dataGridConfiguration); if (dataGridConfiguration.source.filterConditions.isNotEmpty) { - final List rows = dataGridConfiguration.source.effectiveRows; + final DataGridSource source = dataGridConfiguration.source; final List filteredRows = - _getFilterRows(rows, dataGridConfiguration.source.filterConditions); - refreshEffectiveRows(dataGridConfiguration.source, filteredRows); + _getFilterRows(source.rows, source.filterConditions); + refreshEffectiveRows(source, filteredRows); } } @@ -2142,39 +2168,37 @@ class DataGridFilterHelper { final DataGridSource source = _dataGridStateDetails().source; if (source.filterConditions.containsKey(column.columnName)) { - if (!_invokeFilterChangingCallback( - column, source.filterConditions[column.columnName]!)) { + final List? filterConditions = + source.filterConditions[column.columnName]; + if (!_invokeFilterChangingCallback(column, filterConditions!)) { removeFilterConditions(source, column.columnName); - if (source.filterConditions.isEmpty) { - isViewFilterAppiled = false; - } return; } - final Map> currentFilterCondition = - >{ - column.columnName: source.filterConditions[column.columnName]! - }; - - final List dataGridRows = canUsePreviousSource - ? _getPreviousFilteredRows(column.columnName) - : source.effectiveRows; - - final List filteredRows = - _getFilterRows(dataGridRows, currentFilterCondition); + List filteredRows = []; + if (_previousDataRows.isNotEmpty) { + filteredRows = _getFilterRows( + _previousDataRows, >{ + column.columnName: filterConditions + }); + } else { + filteredRows = _getFilterRows(source.rows, source.filterConditions); + } - if (canUsePreviousSource) { - canUsePreviousSource = false; + if (_previousDataRows.isNotEmpty) { + _previousDataRows.clear(); } - isViewFilterAppiled = true; + // Need to apply sorting to the filtered rows. + performSorting(source, filteredRows); refreshEffectiveRows(source, filteredRows); + updateDataPager(source); notifyDataGridPropertyChangeListeners(source, propertyName: 'Filtering'); - _invokeFilterChangedCallback( - column, source.filterConditions[column.columnName]!); + _invokeFilterChangedCallback(column, filterConditions); } else { updateDataSource(source); notifyDataGridPropertyChangeListeners(source, propertyName: 'Filtering'); + _invokeFilterChangedCallback(column, []); } } @@ -2186,14 +2210,14 @@ class DataGridFilterHelper { source.filterConditions[columnName]; if (conditions != null && conditions.isNotEmpty) { - if (conditions == source.filterConditions.values.last) { - removeFilterConditions(source, columnName); - items = source.filterConditions.isEmpty - ? source.rows - : _getFilterRows(source.rows, source.filterConditions); - canUsePreviousSource = true; - addFilterConditions(source, columnName, conditions); - } + removeFilterConditions(source, columnName); + items = source.filterConditions.isEmpty + ? source.rows + : _getFilterRows(source.rows, source.filterConditions); + _previousDataRows = items.toList(); + addFilterConditions(source, columnName, conditions); + } else { + _previousDataRows.clear(); } return items ?? source.effectiveRows; @@ -2202,15 +2226,23 @@ class DataGridFilterHelper { List _getCellValues( GridColumn column, List items) { bool hasBlankValues = false; + final DataGridSource source = _dataGridStateDetails().source; + final List conditions = + source.filterConditions[column.columnName] ?? []; + bool isSelected(Object? value) { - final List? currentConditions = - _dataGridStateDetails().source.filterConditions[column.columnName]; - if (currentConditions != null && currentConditions.isNotEmpty) { - final bool isEquals = currentConditions.first.type == FilterType.equals; - final FilterCondition? condition = currentConditions.firstWhereOrNull( - (FilterCondition element) => - element.value?.toString() == value?.toString()); - return isEquals ? condition != null : condition == null; + if (conditions.isNotEmpty) { + // Checkes the previous filtered data rows with current effecive rows to + // find selected and unselected items in the checkbox list view. + for (final DataGridRow row in source.effectiveRows) { + final DataGridCell? cell = row.getCells().firstWhereOrNull( + (DataGridCell element) => + element.columnName == column.columnName); + if (cell?.value?.toString() == value?.toString()) { + return true; + } + } + return false; } return true; } @@ -2332,13 +2364,10 @@ class DataGridFilterHelper { setFilterFrom(column, FilteredFrom.none); removeFilterConditions(dataGridConfiguration.source, column.columnName); - if (dataGridConfiguration.source.filterConditions.isEmpty) { - isViewFilterAppiled = false; - } - updateDataSource(dataGridConfiguration.source); notifyDataGridPropertyChangeListeners(dataGridConfiguration.source, propertyName: 'Filtering'); + _invokeFilterChangedCallback(column, []); } bool _invokeFilterChangingCallback( @@ -2382,10 +2411,20 @@ class DataGridFilterHelper { bool _filterRow( DataGridRow row, Map> filterConditions) { bool? isEqual; + // Holds the previous column's comparer value of the current row to help to + // perform multi-column filtering. + bool previousComparer = true; for (final String columnName in filterConditions.keys) { for (final FilterCondition condition in filterConditions[columnName]!) { final Object? cellValue = _getCellValue(row, columnName); + // Resets the previous column's comparer value if a column is not + // applicable to the multi-column filtering. + if (condition == filterConditions[columnName]!.first && + condition.filterOperator == FilterOperator.or) { + previousComparer = true; + } + /// Holds the current filter type result. bool comparerValue = false; switch (condition.type) { @@ -2430,9 +2469,12 @@ class DataGridFilterHelper { grid_helper.compareLessThan(condition, cellValue, true); break; } - isEqual = grid_helper.compare( - isEqual, comparerValue, condition.filterOperator); + + isEqual = previousComparer && + grid_helper.compare( + isEqual, comparerValue, condition.filterOperator); } + previousComparer = isEqual != null && isEqual; } return isEqual != null && isEqual; } @@ -2490,6 +2532,11 @@ class DataGridFilterHelper { return false; } + // Sets the first filter condition's filter operator as 'AND' to perform + // multi-column filtering. + FilterOperator getFilterOperator() => + filterConditions.isEmpty ? FilterOperator.and : filterOperator; + switch (advancedFilterHelper.advancedFilterType) { case AdvancedFilterType.text: { @@ -2497,7 +2544,7 @@ class DataGridFilterHelper { if (canCreateFilterCondition(filterValue1, filterType1, true)) { final FilterCondition condition = FilterCondition( type: type1, - filterOperator: filterOperator, + filterOperator: getFilterOperator(), value: advancedFilterHelper.filterValue1, filterBehavior: FilterBehavior.stringDataType, isCaseSensitive: advancedFilterHelper.isCaseSensitive1); @@ -2508,7 +2555,7 @@ class DataGridFilterHelper { if (canCreateFilterCondition(filterValue2, filterType2, false)) { final FilterCondition condition = FilterCondition( type: type2, - filterOperator: filterOperator, + filterOperator: getFilterOperator(), value: advancedFilterHelper.filterValue2, filterBehavior: FilterBehavior.stringDataType, isCaseSensitive: advancedFilterHelper.isCaseSensitive2); @@ -2522,7 +2569,7 @@ class DataGridFilterHelper { if (canCreateFilterCondition(filterValue1, filterType1, true)) { final FilterCondition condition = FilterCondition( type: type1, - filterOperator: filterOperator, + filterOperator: getFilterOperator(), value: advancedFilterHelper.filterValue1); filterConditions.add(condition); } @@ -2531,7 +2578,7 @@ class DataGridFilterHelper { if (canCreateFilterCondition(filterValue2, filterType2, false)) { final FilterCondition condition = FilterCondition( type: type2, - filterOperator: filterOperator, + filterOperator: getFilterOperator(), value: advancedFilterHelper.filterValue2); filterConditions.add(condition); } @@ -2543,7 +2590,7 @@ class DataGridFilterHelper { if (canCreateFilterCondition(filterValue1, filterType1, true)) { final FilterCondition condition = FilterCondition( type: type1, - filterOperator: filterOperator, + filterOperator: getFilterOperator(), value: advancedFilterHelper.filterValue1); filterConditions.add(condition); } @@ -2552,7 +2599,7 @@ class DataGridFilterHelper { if (canCreateFilterCondition(filterValue2, filterType2, false)) { final FilterCondition condition = FilterCondition( type: type2, - filterOperator: filterOperator, + filterOperator: getFilterOperator(), value: advancedFilterHelper.filterValue2); filterConditions.add(condition); } @@ -2837,9 +2884,9 @@ class DataGridAdvancedFilterHelper { isOrPredicate = condition.filterOperator == FilterOperator.or; } - firstValueTextController.text = dataGridConfiguration.dataGridFilterHelper + firstValueTextController.text = dataGridConfiguration.dataGridFilterHelper! .getDisplayValue(filterValue1); - secondValueTextController.text = dataGridConfiguration.dataGridFilterHelper + secondValueTextController.text = dataGridConfiguration.dataGridFilterHelper! .getDisplayValue(filterValue2); } @@ -2867,3 +2914,26 @@ class FilterElement { /// Defines the check box state of the cell. bool isSelected; } + +/// Controls how the filtering menu options can be customized. +@immutable +class FilterPopupMenuOptions { + /// + const FilterPopupMenuOptions( + {this.filterMode = FilterMode.both, + this.canShowClearFilterOption = true, + this.canShowSortingOptions = true, + this.showColumnName = true}); + + /// Decides how the checked listbox and advanced filter options should be shown in filter popup. + final FilterMode filterMode; + + /// Decides whether the `Clear Filter From {Column Name}` option should be displayed in filtering popup. + final bool canShowClearFilterOption; + + /// Decides whether the ascending and descending sorting options should be displayed in filtering popup. + final bool canShowSortingOptions; + + /// Decides whether the column name should be displayed along with the content of `Clear Filter` option . + final bool showColumnName; +} diff --git a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/selection/selection_manager.dart b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/selection/selection_manager.dart index 3a5175662..675167621 100644 --- a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/selection/selection_manager.dart +++ b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/selection/selection_manager.dart @@ -156,6 +156,9 @@ class RowSelectionManager extends SelectionManagerBase { _addSelection(record, dataGridConfiguration); } else { _clearSelectedRow(dataGridConfiguration); + if (dataGridConfiguration.navigationMode == GridNavigationMode.cell) { + _clearCurrentCell(dataGridConfiguration); + } } notifyListeners(); @@ -618,10 +621,16 @@ class RowSelectionManager extends SelectionManagerBase { dataGridConfiguration.selectionMode != SelectionMode.multiple; //If newValue is negative we have clear the whole selection data. - //In multiple case we shouldn't to clear the collection as well - // source properties. - if (newValue == null && canClearSelections()) { - _clearSelectedRow(dataGridConfiguration); + if (newValue == null && _selectedRows.isNotEmpty) { + // If selection mode is multiple we need to clear all the selected rows. + if (dataGridConfiguration.selectionMode == SelectionMode.multiple) { + _clearSelectedRows(dataGridConfiguration); + } else { + _clearSelectedRow(dataGridConfiguration); + } + if (dataGridConfiguration.navigationMode == GridNavigationMode.cell) { + _clearCurrentCell(dataGridConfiguration); + } notifyListeners(); return; } @@ -679,10 +688,21 @@ class RowSelectionManager extends SelectionManagerBase { dataGridConfiguration.selectionMode != SelectionMode.multiple; //If newValue is negative we have to clear the whole selection data. - //In multiple case we shouldn't to clear the collection as - // well source properties. - if (newValue == -1 && canClearSelections()) { - _clearSelectedRow(dataGridConfiguration); + if (newValue == -1 && _selectedRows.isNotEmpty) { + // If selection mode is multiple we need to clear all the selected rows. + if (dataGridConfiguration.selectionMode == SelectionMode.multiple) { + _clearSelectedRows(dataGridConfiguration); + } else { + _clearSelectedRow(dataGridConfiguration); + } + + // Issue: + // FLUT-7123-The current cell is not removed when setting the selected index as -1 through the SelectionController + // We removed the selected rows only when setting the selected index as -1 from the controller + // We have resolved the issue by removing the current cell too. + if (dataGridConfiguration.navigationMode == GridNavigationMode.cell) { + _clearCurrentCell(dataGridConfiguration); + } notifyListeners(); return; } @@ -1481,8 +1501,11 @@ class CurrentCellManager { return null; } - return dataRows - .firstWhereOrNull((DataRowBase row) => row.rowIndex == rowIndex); + // If attempt to obtain a current row after calling the `refreshView` method, + // all the row indexes will be -1 in the `items` collection. So, need to + // consider the `isCurrentRow` property additionally to get the current row. + return dataRows.firstWhereOrNull( + (DataRowBase row) => row.rowIndex == rowIndex || row.isCurrentRow); } DataCellBase? _getDataCell(DataRowBase dataRow, int columnIndex) { @@ -1710,21 +1733,39 @@ class CurrentCellManager { return; } + // In programmatic begin edit, need to update current cell when the + // dataCell doesn't contain the proper current cell index. So, we commonly + // update the current cell here for programmatic and F2 key to begin edit + // the cell. + void setCurrentCell() { + final DataRowBase? dataRow = + _getDataRow(dataGridConfiguration, editingRowColumnIndex!.rowIndex); + if (dataRow != null) { + dataCell = _getDataCell(dataRow, editingRowColumnIndex.columnIndex); + } else { + return; + } + } + // If the editing is initiate from f2 key, need not to process the // handleTap. if (needToResolveIndex) { dataGridConfiguration.rowSelectionManager .handleTap(editingRowColumnIndex); + + // In programmatic begin edit, if the `editingRowColumnIndex` has valid + // row and column index and the current cell has a previous current cell + // value, need to update the current cell based on the + // `editingRowColumnIndex` property. + if (dataCell != null && + !editingRowColumnIndex.equals( + RowColumnIndex(dataCell!.rowIndex, dataCell!.columnIndex))) { + setCurrentCell(); + } } else { // Need to skip the editing when current cell is not in view and we // process initiate the editing from f2 key. - final DataRowBase? dataRow = - _getDataRow(dataGridConfiguration, editingRowColumnIndex.rowIndex); - if (dataRow != null) { - dataCell = _getDataCell(dataRow, editingRowColumnIndex.columnIndex); - } else { - return; - } + setCurrentCell(); } editingDataCell = dataCell; @@ -1772,9 +1813,14 @@ class CurrentCellManager { /// So, we need to request the focus here. /// Also, if we return false from the canSubmitCell method and tap other cells /// We need to retain the focus on the text field instead of losing focus. + /// + // Issue: + // FLUT-7120-The focus did not go to the other widgets when DataGrid's current cell is in edit mode. + // We have checked whether the current cell is editing or not based on the `isCurrentCellInEditing` property. + // In this case, it is true. So we fixed it by checking the value of the `canCellSumbit` method. if (!_focusScopeNode.hasFocus && !dataGridConfiguration.dataGridFocusNode!.hasFocus && - dataGridConfiguration.controller.isCurrentCellInEditing) { + !canSubmitCell(dataGridConfiguration)) { _focusScopeNode.requestFocus(); } }, diff --git a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/sfdatagrid.dart b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/sfdatagrid.dart index e34497e9f..185af41dc 100644 --- a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/sfdatagrid.dart +++ b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/sfdatagrid.dart @@ -460,6 +460,7 @@ class SfDataGrid extends StatefulWidget { this.allowFiltering = false, this.onFilterChanging, this.onFilterChanged, + this.checkboxShape, }) : assert(frozenColumnsCount >= 0), assert(footerFrozenColumnsCount >= 0), assert(frozenRowsCount >= 0), @@ -1582,6 +1583,15 @@ class SfDataGrid extends StatefulWidget { /// programmatically. final DataGridFilterChangedCallback? onFilterChanged; + /// The shape of the checkbox. + /// + /// This is applicable for checkbox which is shown when enable the [showCheckboxColumn] property. + /// + /// See also, + /// + /// [Checkbox.shape] + final OutlinedBorder? checkboxShape; + @override State createState() => SfDataGridState(); } @@ -1630,6 +1640,9 @@ class SfDataGridState extends State duration: const Duration(milliseconds: 200), vsync: this); _setUp(); _updateDataGridStateDetails(); + + // To perform sort and filter operations based on the `DataGridSource`. + updateDataSource(_dataGridConfiguration.source); super.initState(); } @@ -1715,7 +1728,7 @@ class SfDataGridState extends State _localizations = newLocalizations; _dataGridConfiguration ..localizations = newLocalizations - ..dataGridFilterHelper.advancedFilterHelper.initProperties(); + ..dataGridFilterHelper!.advancedFilterHelper.initProperties(); } } @@ -1734,7 +1747,10 @@ class SfDataGridState extends State } void _setUp() { - _initializeDataGridDataSource(); + // Initializes the source + _source = widget.source.._dataGridStateDetails = _dataGridStateDetails; + _addDataGridSourceListeners(); + _initializeCellRendererCollection(); //DataGrid Controller @@ -1780,11 +1796,6 @@ class SfDataGridState extends State ColumnResizeController(dataGridStateDetails: _dataGridStateDetails!); _initializeProperties(); - - // Apply filter on initial loading. - if (_dataGridConfiguration.source._filterConditions.isNotEmpty) { - _dataGridConfiguration.dataGridFilterHelper.applyFilter(); - } } @protected @@ -1979,10 +1990,6 @@ class SfDataGridState extends State _resetColumn(); } - if (_dataGridConfiguration.source._filterConditions.isNotEmpty) { - _dataGridConfiguration.dataGridFilterHelper.applyFilter(); - } - if (widget.selectionMode != SelectionMode.none) selection_manager.removeUnWantedDataGridRows(_dataGridConfiguration); if (widget.selectionMode != SelectionMode.none && @@ -2321,7 +2328,8 @@ class SfDataGridState extends State ..dataGridThemeHelper = _dataGridThemeHelper ..allowFiltering = widget.allowFiltering ..onFilterChanging = widget.onFilterChanging - ..onFilterChanged = widget.onFilterChanged; + ..onFilterChanged = widget.onFilterChanged + ..checkboxShape = widget.checkboxShape; if (widget.allowPullToRefresh) { _dataGridConfiguration.refreshIndicatorKey ??= @@ -2390,6 +2398,8 @@ class SfDataGridState extends State // To apply filtering to the runtime changes of columns. final bool canApplyFiltering = isColumnsChanged && _columns!.length != widget.columns.length; + final bool isFilteringChanged = + oldWidget.allowFiltering != widget.allowFiltering; if (oldWidget.verticalScrollController != widget.verticalScrollController) { if (widget.verticalScrollController != null) { @@ -2506,11 +2516,13 @@ class SfDataGridState extends State isSwipingChanged || isFooterRowChanged || isTableSummaryRowsChanged || + isFilteringChanged || oldWidget.rowHeight != widget.rowHeight || oldWidget.headerRowHeight != widget.headerRowHeight || oldWidget.defaultColumnWidth != widget.defaultColumnWidth || oldWidget.navigationMode != widget.navigationMode || oldWidget.showCheckboxColumn != widget.showCheckboxColumn || + oldWidget.checkboxShape != widget.checkboxShape || oldWidget.rowsCacheExtent != widget.rowsCacheExtent || isRowsPerPageChanged) { // Need to endEdit before refreshing @@ -2519,7 +2531,7 @@ class SfDataGridState extends State // Need to initialize the data source when the `isColumnsCollectionChanged` // property is true to adapt the `DataGridRow.cells` changes that made by // the user based on the `columns` collection changes. - if (isSourceChanged || isColumnsCollectionChanged) { + if (isSourceChanged || isColumnsCollectionChanged || canApplyFiltering) { _initializeDataGridDataSource(); } if (isSortingChanged || isMultiColumnSortingChanged) { @@ -2556,10 +2568,6 @@ class SfDataGridState extends State _initializeProperties(); - if (canApplyFiltering) { - _dataGridConfiguration.dataGridFilterHelper.applyFilter(); - } - if (isStackedHeaderRowsChanged || isColumnsChanged) { _onStackedHeaderRowsPropertyChanged(oldWidget, widget); } @@ -2586,16 +2594,37 @@ class SfDataGridState extends State isColumnsChanged || isColumnSizerChanged || isFrozenColumnPaneChanged || - isSortingChanged || isStackedHeaderRowsChanged || oldWidget.showCheckboxColumn != widget.showCheckboxColumn || + oldWidget.checkboxShape != widget.checkboxShape) { + _resetColumn(clearEditing: false); + if (isColumnSizerChanged) { + resetAutoCalculation(_dataGridConfiguration.columnSizer); + } + } + + // Need to reset the auto calculation when sorting, filtering or show + // sort number properties are changed at runtime. then only, the auto-width + // calculation will be calculated for all the columns again. Otherwise, + // all the columns will retain the previously calculated width. + if (isSortingChanged || + isFilteringChanged || widget.allowSorting && isMultiColumnSortingChanged || widget.allowSorting && widget.allowMultiColumnSorting && isShowSortNumbersChanged) { - _resetColumn(clearEditing: false); - if (isColumnSizerChanged) { - resetAutoCalculation(_dataGridConfiguration.columnSizer); + // To reset the auto width calculation. + resetAutoCalculation(_dataGridConfiguration.columnSizer); + + final DataRowBase? dataRow = _rowGenerator.items.firstWhereOrNull( + (DataRowBase element) => element.rowType == RowType.headerRow); + // To refresh the header row to update the sort and filter icon changes + // in the header cells. + if (dataRow != null) { + for (final DataCellBase dataCell in dataRow.visibleColumns) { + dataCell.columnIndex = -1; + } + _container.needToRefreshColumn = true; } } @@ -2852,9 +2881,9 @@ class SfDataGridState extends State _screenSize ??= currentScreenSize; if (_screenSize != currentScreenSize && _dataGridConfiguration - .dataGridFilterHelper.isFilterPopupMenuShowing) { + .dataGridFilterHelper!.isFilterPopupMenuShowing) { Navigator.pop(context); - _dataGridConfiguration.dataGridFilterHelper.isFilterPopupMenuShowing = + _dataGridConfiguration.dataGridFilterHelper!.isFilterPopupMenuShowing = false; } _screenSize = currentScreenSize; @@ -2909,7 +2938,20 @@ class SfDataGridState extends State @override void dispose() { _removeDataGridSourceListeners(); - _controller?.removeListener(_handleDataGridPropertyChangeListeners); + + // Issue: + // FLUT-7056 - The dataGridPropertyChanged listener is not removed properly + // when DataGrid is disposed + // + // Fix: + // The issue occurred due to we didn't remove the listener properly. + // It's added to `_dataGridPropertyChangeListeners` but we didn't remove it from the _dataGridPropertyChangeListeners. + // We have fixed the issue by removing the respective listener from the_dataGridPropertyChangeListeners + // through the _removeDataGridPropertyChangeListener method. + _controller?._removeDataGridPropertyChangeListener( + _handleDataGridPropertyChangeListeners); + _controller?._removeDataGridPropertyChangeListener( + _handleSelectionPropertyChanged); _dataGridConfiguration ..gridPaint = null ..boxPainter = null @@ -2919,10 +2961,10 @@ class SfDataGridState extends State _swipingAnimationController!.dispose(); _swipingAnimationController = null; } - _dataGridConfiguration.dataGridFilterHelper.checkboxFilterHelper + _dataGridConfiguration.dataGridFilterHelper!.checkboxFilterHelper ..textController.dispose() ..searchboxFocusNode.dispose(); - _dataGridConfiguration.dataGridFilterHelper.advancedFilterHelper + _dataGridConfiguration.dataGridFilterHelper!.advancedFilterHelper ..firstValueTextController.dispose() ..secondValueTextController.dispose(); super.dispose(); @@ -3152,10 +3194,10 @@ abstract class DataGridSource extends DataGridSourceChangeNotifier }); } - /// To update the sorted collection in _paginatedRows, notifyListener should be + /// To update the sorted or filtered collection in _paginatedRows, notifyListener should be /// called instead notifyDataGridPropertyChangeListener. Because, notifyListener is common for /// in DataPagerDelegate and DataGridSource will get notified. - void _updateDataPagerOnSorting() { + void _updateDataPager() { if (_pageCount > 0 && _paginatedRows.isNotEmpty && !_suspendDataPagerUpdate) { @@ -3291,17 +3333,20 @@ abstract class DataGridSource extends DataGridSourceChangeNotifier } else { _effectiveRows = rows; } - // Should refresh sorting when the data grid source is updated. - performSorting(_effectiveRows); // Should refresh filtering when the filterConditions is not empty. - if (_filterConditions.isNotEmpty) { - _dataGridStateDetails!().dataGridFilterHelper.applyFilter(); + if (_dataGridStateDetails != null && + _dataGridStateDetails!().dataGridFilterHelper != null && + _filterConditions.isNotEmpty) { + _dataGridStateDetails!().dataGridFilterHelper!.applyFilter(); } - /// Helps to update the sorted collection in _paginatedRows - /// by call the DataPagerDelegate.handlePageChange after sorting. - _updateDataPagerOnSorting(); + // Should refresh sorting when the data grid source is updated. + performSorting(_effectiveRows); + + /// Helps to update the sorted or filtered collection in _paginatedRows + /// by call the DataPagerDelegate.handlePageChange after sorting or filtering. + _updateDataPager(); } /// Call this method when you are adding the [SortColumnDetails] @@ -3406,7 +3451,9 @@ abstract class DataGridSource extends DataGridSourceChangeNotifier _filterConditions[columnName] = conditions; - _refreshFilter(_dataGridStateDetails!()); + if (_dataGridStateDetails != null) { + _refreshFilter(_dataGridStateDetails!()); + } } /// Remove the [FilterCondition] from the given column. @@ -3449,7 +3496,9 @@ abstract class DataGridSource extends DataGridSourceChangeNotifier _filterConditions[columnName] = conditions; } - _refreshFilter(_dataGridStateDetails!()); + if (_dataGridStateDetails != null) { + _refreshFilter(_dataGridStateDetails!()); + } } /// Clear the [FilterCondition] from a given column or clear all the filter @@ -3484,10 +3533,14 @@ abstract class DataGridSource extends DataGridSourceChangeNotifier if (_filterConditions.isNotEmpty) { if (columnName != null && _filterConditions.containsKey(columnName)) { _filterConditions.remove(columnName); - _refreshFilter(_dataGridStateDetails!()); + if (_dataGridStateDetails != null) { + _refreshFilter(_dataGridStateDetails!()); + } } else if (columnName == null) { _filterConditions.clear(); - _refreshFilter(_dataGridStateDetails!()); + if (_dataGridStateDetails != null) { + _refreshFilter(_dataGridStateDetails!()); + } } } } @@ -3734,6 +3787,17 @@ void refreshEffectiveRows(DataGridSource source, List filterRows) { source._effectiveRows = filterRows; } +/// Apply sorting to the given rows. It is used to invoke the +/// `DataGridSource.performSorting` method internally. +void performSorting(DataGridSource source, List rows) { + source.performSorting(rows); +} + +/// Helps to refresh the data pager. +void updateDataPager(DataGridSource source) { + source._updateDataPager(); +} + /// Controls a [SfDataGrid] widget. /// /// This can be used to control the selection and current-cell operations such @@ -4282,6 +4346,12 @@ class DataGridThemeHelper { fontSize: 14, color: colorScheme!.onSurface.withOpacity(0.87)); sortIcon = dataGridThemeData.sortIcon; + filterIcon = dataGridThemeData.filterIcon; + filterIconColor = dataGridThemeData.filterIconColor; + filterIconHoverColor = dataGridThemeData.filterIconHoverColor; + sortOrderNumberColor = dataGridThemeData.sortOrderNumberColor; + sortOrderNumberBackgroundColor = + dataGridThemeData.sortOrderNumberBackgroundColor; } ///ToDo @@ -4344,4 +4414,79 @@ class DataGridThemeHelper { /// To do late Widget? sortIcon; + + /// The icon to indicate the filtering applied in column. + /// + /// If you want to change the icon filter or filtered state, you can use the [Builder] + /// widget and return the respective icon for the state. You have to return + /// the icons for both the states even if you want to change the icon + /// for specific state. + /// + /// ```dart + /// @override + /// Widget build(BuildContext context) { + /// return Scaffold( + /// appBar: AppBar( + /// title: const Text('Syncfusion Flutter DataGrid', + /// overflow: TextOverflow.ellipsis), + /// ), + /// body: SfDataGridTheme( + /// data: SfDataGridThemeData(filterIcon: Builder( + /// builder: (context) { + /// Widget? icon; + /// String columnName = ''; + /// context.visitAncestorElements((element) { + /// if (element is GridHeaderCellElement) { + /// columnName = element.column.columnName; + /// } + /// return true; + /// }); + /// var column = _employeeDataSource.filterConditions.keys + /// .where((element) => element == columnName) + /// .firstOrNull; + + /// if (column != null) { + /// icon = const Icon( + /// Icons.filter_alt_outlined, + /// size: 20, + /// color: Colors.purple, + /// ); + /// } + /// return icon ?? + /// const Icon( + /// Icons.filter_alt_off_outlined, + /// size: 20, + /// color: Colors.deepOrange, + /// ); + /// }, + /// )), + /// child: SfDataGrid( + /// source: _employeeDataSource, + /// allowFiltering: true, + /// allowSorting: true, + /// columns: getColumns(), + /// ), + /// ), + /// ); + /// } + /// ``` + late Widget? filterIcon; + + /// The color of the filter icon which indicates whether the column is filtered or not. + /// + /// This is not applicable when `filterIcon` property is set. + /// This applies the color to default filter icon only. + late Color? filterIconColor; + + /// The color for the filter icon when a pointer is hovering over it. + /// + /// This is not applicable when `filterIcon` property is set. + /// This applies the color to default filter icon only. + late Color? filterIconHoverColor; + + /// The color of the number displayed when the order of the sorting is shown. + late Color? sortOrderNumberColor; + + /// Creates a copy of this theme but with the given fields replaced with the new values. + late Color? sortOrderNumberBackgroundColor; } diff --git a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/widgets/cell_widget.dart b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/widgets/cell_widget.dart index 92a632669..0ba269bce 100644 --- a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/widgets/cell_widget.dart +++ b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/widgets/cell_widget.dart @@ -386,10 +386,12 @@ class _GridHeaderCellState extends State { final int sortNumber = dataGridConfiguration.source.sortedColumns.indexOf(sortColumn) + 1; _sortDirection = sortColumn.sortDirection; - _sortNumberBackgroundColor = + _sortNumberBackgroundColor = dataGridConfiguration + .dataGridThemeHelper!.sortOrderNumberBackgroundColor ?? dataGridConfiguration.colorScheme!.onSurface.withOpacity(0.12); _sortNumberTextColor = - dataGridConfiguration.colorScheme!.onSurface.withOpacity(0.87); + dataGridConfiguration.dataGridThemeHelper!.sortOrderNumberColor ?? + dataGridConfiguration.colorScheme!.onSurface.withOpacity(0.87); if (dataGridConfiguration.source.sortedColumns.length > 1 && dataGridConfiguration.showSortNumbers) { _sortNumber = sortNumber; @@ -466,7 +468,7 @@ class _GridHeaderCellState extends State { child: Container(child: child), ), Container( - padding: const EdgeInsets.only(left: 4.0, right: 4.0), + padding: dataGridConfiguration.columnSizer.iconsOuterPadding, child: Center(child: Row(children: children)), ) ]); @@ -726,34 +728,49 @@ class _FilterIcon extends StatelessWidget { return GestureDetector( onTapUp: (TapUpDetails details) => onHandleTap(details, context), child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 8.0), + padding: column.filterIconPadding, child: StatefulBuilder( builder: (BuildContext context, StateSetter setState) { return MouseRegion( - onEnter: (PointerEnterEvent details) { + onEnter: (_) { setState(() { isHovered = true; }); }, - onExit: (PointerExitEvent details) { + onExit: (_) { setState(() { isHovered = false; }); }, - child: Icon( - isFiltered - ? const IconData(0xe704, - fontFamily: 'FilterIcon', - fontPackage: 'syncfusion_flutter_datagrid') - : const IconData(0xe702, - fontFamily: 'FilterIcon', - fontPackage: 'syncfusion_flutter_datagrid'), - size: 18.0, - color: isHovered - ? dataGridConfiguration.colorScheme!.onSurface - .withOpacity(0.87) - : dataGridConfiguration.dataGridFilterHelper.iconColor, - ), + child: isFiltered + ? _FilteredIcon( + iconColor: isHovered + ? (dataGridConfiguration + .dataGridThemeHelper!.filterIconHoverColor ?? + dataGridConfiguration.colorScheme!.onSurface + .withOpacity(0.87)) + : (dataGridConfiguration + .dataGridThemeHelper!.filterIconColor ?? + dataGridConfiguration + .dataGridFilterHelper!.iconColor), + filterIcon: + dataGridConfiguration.dataGridThemeHelper!.filterIcon, + gridColumnName: column.columnName, + ) + : _UnfilteredIcon( + iconColor: isHovered + ? (dataGridConfiguration + .dataGridThemeHelper!.filterIconHoverColor ?? + dataGridConfiguration.colorScheme!.onSurface + .withOpacity(0.87)) + : (dataGridConfiguration + .dataGridThemeHelper!.filterIconColor ?? + dataGridConfiguration + .dataGridFilterHelper!.iconColor), + filterIcon: + dataGridConfiguration.dataGridThemeHelper!.filterIcon, + gridColumnName: column.columnName, + ), ); }), ), @@ -761,6 +778,60 @@ class _FilterIcon extends StatelessWidget { } } +class _UnfilteredIcon extends StatelessWidget { + const _UnfilteredIcon( + {Key? key, + required this.iconColor, + required this.filterIcon, + required this.gridColumnName}) + : super(key: key); + + final Color iconColor; + final Widget? filterIcon; + final String? gridColumnName; + + @override + Widget build(BuildContext context) { + return filterIcon ?? + Icon( + const IconData(0xe702, + fontFamily: 'FilterIcon', + fontPackage: 'syncfusion_flutter_datagrid'), + size: 18.0, + color: iconColor, + key: ValueKey( + 'datagrid_filtering_${gridColumnName}_filterIcon'), + ); + } +} + +class _FilteredIcon extends StatelessWidget { + const _FilteredIcon( + {Key? key, + required this.iconColor, + required this.filterIcon, + required this.gridColumnName}) + : super(key: key); + + final Color iconColor; + final Widget? filterIcon; + final String? gridColumnName; + + @override + Widget build(BuildContext context) { + return filterIcon ?? + Icon( + const IconData(0xe704, + fontFamily: 'FilterIcon', + fontPackage: 'syncfusion_flutter_datagrid'), + size: 18.0, + color: iconColor, + key: ValueKey( + 'datagrid_filtering_${gridColumnName}_filterIcon'), + ); + } +} + class _FilterPopupMenuItem extends PopupMenuItem { const _FilterPopupMenuItem( {required this.column, required this.dataGridConfiguration}) @@ -845,7 +916,7 @@ class _FilterPopupState extends State<_FilterPopup> { void _initializeFilterProperties() { isMobile = !widget.dataGridConfiguration.isDesktop; - filterHelper = widget.dataGridConfiguration.dataGridFilterHelper; + filterHelper = widget.dataGridConfiguration.dataGridFilterHelper!; filterHelper.filterFrom = filterHelper.getFilterForm(widget.column); isAdvancedFilter = filterHelper.filterFrom == FilteredFrom.advancedFilter; filterHelper.checkboxFilterHelper.textController.clear(); @@ -891,6 +962,7 @@ class _FilterPopupState extends State<_FilterPopup> { child: Container(height: 1.0, color: filterHelper.borderColor)), backgroundColor: filterHelper.backgroundColor, leading: IconButton( + key: const ValueKey('datagrid_filtering_cancelFilter_icon'), onPressed: closePage, icon: Icon(Icons.close, size: 22.0, color: filterHelper.iconColor)), centerTitle: false, @@ -901,6 +973,7 @@ class _FilterPopupState extends State<_FilterPopup> { style: filterHelper.textStyle), actions: [ IconButton( + key: const ValueKey('datagrid_filtering_applyFilter_icon'), onPressed: canDisableOkButton() ? null : onHandleOkButtonTap, icon: Icon(Icons.check, size: 22.0, @@ -925,106 +998,152 @@ class _FilterPopupState extends State<_FilterPopup> { final bool isSortDescendingEnabled = canEnableSortButton(DataGridSortDirection.descending); final bool isClearFilterEnabled = hasFilterConditions(); + const FilterPopupMenuOptions filterPopupMenuOptions = + FilterPopupMenuOptions(); + bool isCheckboxFilterEnabled = + filterPopupMenuOptions.filterMode == FilterMode.checkboxFilter; + bool isAdvancedFilterEnabled = + filterPopupMenuOptions.filterMode == FilterMode.advancedFilter; + bool isBothFilterEnabled = + filterPopupMenuOptions.filterMode == FilterMode.both; + bool canShowSortingOptions = filterPopupMenuOptions.canShowSortingOptions; + bool canShowClearFilterOption = + filterPopupMenuOptions.canShowClearFilterOption; + bool showColumnName = filterPopupMenuOptions.showColumnName; + double advanceFilterTopPadding = 12; + + if (widget.column.filterPopupMenuOptions != null) { + isCheckboxFilterEnabled = + widget.column.filterPopupMenuOptions!.filterMode == + FilterMode.checkboxFilter; + isAdvancedFilterEnabled = + widget.column.filterPopupMenuOptions!.filterMode == + FilterMode.advancedFilter; + isBothFilterEnabled = + widget.column.filterPopupMenuOptions!.filterMode == FilterMode.both; + canShowSortingOptions = + widget.column.filterPopupMenuOptions!.canShowSortingOptions; + canShowClearFilterOption = + widget.column.filterPopupMenuOptions!.canShowClearFilterOption; + showColumnName = widget.column.filterPopupMenuOptions!.showColumnName; + } Widget buildPopup({Size? viewSize}) { return SingleChildScrollView( + key: const ValueKey('datagrid_filtering_scrollView'), child: Container( width: isMobile ? null : 274.0, color: filterHelper.backgroundColor, child: Column( children: [ - _FilterPopupMenuTile( - style: isSortAscendingEnabled + if (canShowSortingOptions) + _FilterPopupMenuTile( + style: isSortAscendingEnabled + ? filterHelper.textStyle + : filterHelper.disableTextStyle, + height: filterHelper.tileHeight, + prefix: Icon( + const IconData(0xe700, + fontFamily: 'FilterIcon', + fontPackage: 'syncfusion_flutter_datagrid'), + color: isSortAscendingEnabled + ? iconColor + : filterHelper.disableIconColor), + prefixPadding: + const EdgeInsets.only(left: 4.0, right: 14.0), + onTap: isSortAscendingEnabled + ? onHandleSortAscendingTap + : null, + child: Text(grid_helper.getSortButtonText( + localizations, true, filterType))), + if (canShowSortingOptions) + _FilterPopupMenuTile( + style: isSortDescendingEnabled ? filterHelper.textStyle : filterHelper.disableTextStyle, height: filterHelper.tileHeight, prefix: Icon( - const IconData(0xe700, + const IconData(0xe701, fontFamily: 'FilterIcon', fontPackage: 'syncfusion_flutter_datagrid'), - color: isSortAscendingEnabled + color: isSortDescendingEnabled ? iconColor : filterHelper.disableIconColor), prefixPadding: const EdgeInsets.only(left: 4.0, right: 14.0), - onTap: - isSortAscendingEnabled ? onHandleSortAscendingTap : null, + onTap: isSortDescendingEnabled + ? onHandleSortDescendingTap + : null, child: Text(grid_helper.getSortButtonText( - localizations, true, filterType))), - _FilterPopupMenuTile( - style: isSortDescendingEnabled - ? filterHelper.textStyle - : filterHelper.disableTextStyle, - height: filterHelper.tileHeight, - prefix: Icon( - const IconData(0xe701, - fontFamily: 'FilterIcon', - fontPackage: 'syncfusion_flutter_datagrid'), - color: isSortDescendingEnabled - ? iconColor - : filterHelper.disableIconColor), - prefixPadding: const EdgeInsets.only(left: 4.0, right: 14.0), - onTap: - isSortDescendingEnabled ? onHandleSortDescendingTap : null, - child: Text(grid_helper.getSortButtonText( - localizations, false, filterType)), - ), - const Divider(indent: 8.0, endIndent: 8.0), - _FilterPopupMenuTile( - style: isClearFilterEnabled - ? filterHelper.textStyle - : filterHelper.disableTextStyle, - height: filterHelper.tileHeight, - prefix: Icon( - const IconData(0xe703, - fontFamily: 'FilterIcon', - fontPackage: 'syncfusion_flutter_datagrid'), - size: 22.0, - color: isClearFilterEnabled - ? iconColor - : filterHelper.disableIconColor), - prefixPadding: const EdgeInsets.only(left: 4.0, right: 14.0), - onTap: isClearFilterEnabled ? onHandleClearFilterTap : null, - child: Text(getClearFilterText(localizations), - overflow: TextOverflow.ellipsis), - ), - _FilterPopupMenuTile( - style: filterHelper.textStyle, - height: filterHelper.tileHeight, - onTap: onHandleExpansionTileTap, - prefix: Icon( - filterHelper.getFilterForm(widget.column) == - FilteredFrom.advancedFilter - ? const IconData(0xe704, - fontFamily: 'FilterIcon', - fontPackage: 'syncfusion_flutter_datagrid') - : const IconData(0xe702, - fontFamily: 'FilterIcon', - fontPackage: 'syncfusion_flutter_datagrid'), - size: 20.0, - color: iconColor), - suffix: Icon( - isAdvancedFilter - ? Icons.keyboard_arrow_down - : Icons.keyboard_arrow_right, - size: 20.0, - color: iconColor), - prefixPadding: const EdgeInsets.only(left: 4.0, right: 14.0), - child: Text( - grid_helper.getFilterTileText(localizations, filterType)), - ), - Visibility( - visible: isAdvancedFilter, - replacement: _CheckboxFilterMenu( - column: widget.column, - setState: setState, - viewSize: viewSize, - dataGridConfiguration: widget.dataGridConfiguration, + localizations, false, filterType)), ), - child: _AdvancedFilterPopupMenu( + if (canShowSortingOptions) + const Divider(indent: 8.0, endIndent: 8.0), + if (canShowClearFilterOption) + _FilterPopupMenuTile( + style: isClearFilterEnabled + ? filterHelper.textStyle + : filterHelper.disableTextStyle, + height: filterHelper.tileHeight, + prefix: Icon( + const IconData(0xe703, + fontFamily: 'FilterIcon', + fontPackage: 'syncfusion_flutter_datagrid'), + size: 22.0, + color: isClearFilterEnabled + ? iconColor + : filterHelper.disableIconColor), + prefixPadding: const EdgeInsets.only(left: 4.0, right: 14.0), + onTap: isClearFilterEnabled ? onHandleClearFilterTap : null, + child: Text(getClearFilterText(localizations, showColumnName), + overflow: TextOverflow.ellipsis), + ), + if (isAdvancedFilterEnabled) + _AdvancedFilterPopupMenu( setState: setState, dataGridConfiguration: widget.dataGridConfiguration, + advanceFilterTopPadding: advanceFilterTopPadding, + ), + if (isBothFilterEnabled) + _FilterPopupMenuTile( + style: filterHelper.textStyle, + height: filterHelper.tileHeight, + onTap: onHandleExpansionTileTap, + prefix: Icon( + filterHelper.getFilterForm(widget.column) == + FilteredFrom.advancedFilter + ? const IconData(0xe704, + fontFamily: 'FilterIcon', + fontPackage: 'syncfusion_flutter_datagrid') + : const IconData(0xe702, + fontFamily: 'FilterIcon', + fontPackage: 'syncfusion_flutter_datagrid'), + size: 20.0, + color: iconColor), + suffix: Icon( + isAdvancedFilter + ? Icons.keyboard_arrow_down + : Icons.keyboard_arrow_right, + size: 20.0, + color: iconColor), + prefixPadding: const EdgeInsets.only(left: 4.0, right: 14.0), + child: Text( + grid_helper.getFilterTileText(localizations, filterType)), + ), + if (isCheckboxFilterEnabled || isBothFilterEnabled) + Visibility( + visible: isAdvancedFilter, + replacement: _CheckboxFilterMenu( + column: widget.column, + setState: setState, + viewSize: viewSize, + dataGridConfiguration: widget.dataGridConfiguration, + ), + child: _AdvancedFilterPopupMenu( + setState: setState, + dataGridConfiguration: widget.dataGridConfiguration, + advanceFilterTopPadding: advanceFilterTopPadding, + ), ), - ), if (!isMobile) const Divider(height: 10), if (!isMobile) Padding( @@ -1063,6 +1182,15 @@ class _FilterPopupState extends State<_FilterPopup> { ); } + if (isAdvancedFilterEnabled) { + isAdvancedFilter = true; + } + if (isAdvancedFilterEnabled && + !canShowClearFilterOption && + !canShowSortingOptions) { + advanceFilterTopPadding = 6; + } + if (isMobile) { return LayoutBuilder( builder: (BuildContext context, BoxConstraints constrainsts) => @@ -1139,8 +1267,12 @@ class _FilterPopupState extends State<_FilterPopup> { return false; } - String getClearFilterText(SfLocalizations localization) { - return '${localization.clearFilterFromDataGridFilteringLabel} "${widget.column.columnName}"'; + String getClearFilterText(SfLocalizations localization, bool showColumnName) { + if (showColumnName) { + return '${localization.clearFilterDataGridFilteringLabel} ${localization.fromDataGridFilteringLabel} "${widget.column.columnName}"'; + } else { + return localization.clearFilterDataGridFilteringLabel; + } } } @@ -1261,7 +1393,7 @@ class _CheckboxFilterMenu extends StatelessWidget { } DataGridCheckboxFilterHelper get filterHelper { - return dataGridConfiguration.dataGridFilterHelper.checkboxFilterHelper; + return dataGridConfiguration.dataGridFilterHelper!.checkboxFilterHelper; } @override @@ -1278,12 +1410,31 @@ class _CheckboxFilterMenu extends StatelessWidget { Widget _buildCheckboxListView(BuildContext context) { final DataGridFilterHelper helper = - dataGridConfiguration.dataGridFilterHelper; + dataGridConfiguration.dataGridFilterHelper!; + + // 340.0 it's a occupied height in the current view by the other widgets. + double occupiedHeight = 340.0; + + // Need to set the Checkbox Filter height in the mobile platform + // based on the options enabled in the Filter popup menu + if (column.filterPopupMenuOptions != null && isMobile) { + if (!column.filterPopupMenuOptions!.canShowSortingOptions) { + // 16.0 is the height of the divider shown below the sorting options + occupiedHeight -= (helper.tileHeight * 2) + 16.0; + } + if (!column.filterPopupMenuOptions!.canShowClearFilterOption) { + occupiedHeight -= helper.tileHeight; + } + if (column.filterPopupMenuOptions!.filterMode == + FilterMode.checkboxFilter) { + occupiedHeight -= helper.tileHeight; + } + } + // Gets the remaining height of the current view to fill the checkbox - // listview in the mobile platform. 340.0 it's a occupied height in the - // current view by the other widgets. + // listview in the mobile platform. final double checkboxHeight = - isMobile ? max(viewSize!.height - 340.0, 120.0) : 200.0; + isMobile ? max(viewSize!.height - occupiedHeight, 120.0) : 200.0; final double selectAllButtonHeight = isMobile ? 48.0 : 40.0; return Padding( @@ -1323,6 +1474,8 @@ class _CheckboxFilterMenu extends StatelessWidget { SizedBox( height: checkboxHeight, child: ListView.builder( + key: const ValueKey( + 'datagrid_filtering_checkbox_listView'), prototypeItem: buildCheckboxTile( filterHelper.items.length - 1, helper.textStyle), itemCount: filterHelper.items.length, @@ -1338,12 +1491,11 @@ class _CheckboxFilterMenu extends StatelessWidget { Widget _buildSearchBox(Color onSurface, BuildContext context) { final DataGridFilterHelper helper = - dataGridConfiguration.dataGridFilterHelper; + dataGridConfiguration.dataGridFilterHelper!; void onSearchboxSubmitted(String value) { if (filterHelper.items.isNotEmpty) { - dataGridConfiguration.dataGridFilterHelper - .createFilterConditions(true, column); + helper.createFilterConditions(true, column); Navigator.pop(context); } else { filterHelper.searchboxFocusNode.requestFocus(); @@ -1355,6 +1507,7 @@ class _CheckboxFilterMenu extends StatelessWidget { child: SizedBox( height: isMobile ? 52.0 : 36.0, child: TextField( + key: const ValueKey('datagrid_filtering_search_textfield'), focusNode: filterHelper.searchboxFocusNode, controller: filterHelper.textController, onChanged: onHandleSearchTextFieldChanged, @@ -1365,6 +1518,8 @@ class _CheckboxFilterMenu extends StatelessWidget { suffixIcon: Visibility( visible: filterHelper.textController.text.isEmpty, replacement: IconButton( + key: const ValueKey( + 'datagrid_filtering_clearSearch_icon'), iconSize: 22.0, padding: EdgeInsets.zero, constraints: const BoxConstraints.tightFor( @@ -1391,7 +1546,7 @@ class _CheckboxFilterMenu extends StatelessWidget { Widget? buildCheckboxTile(int index, TextStyle style) { if (filterHelper.items.isNotEmpty) { final FilterElement element = filterHelper.items[index]; - final String displayText = dataGridConfiguration.dataGridFilterHelper + final String displayText = dataGridConfiguration.dataGridFilterHelper! .getDisplayValue(element.value); return _FilterPopupMenuTile( style: style, @@ -1433,25 +1588,30 @@ class _CheckboxFilterMenu extends StatelessWidget { class _AdvancedFilterPopupMenu extends StatelessWidget { const _AdvancedFilterPopupMenu( - {Key? key, required this.setState, required this.dataGridConfiguration}) + {Key? key, + required this.setState, + required this.dataGridConfiguration, + required this.advanceFilterTopPadding}) : super(key: key); final StateSetter setState; final DataGridConfiguration dataGridConfiguration; + final double advanceFilterTopPadding; + bool get isMobile { return !dataGridConfiguration.isDesktop; } DataGridAdvancedFilterHelper get filterHelper { - return dataGridConfiguration.dataGridFilterHelper.advancedFilterHelper; + return dataGridConfiguration.dataGridFilterHelper!.advancedFilterHelper; } @override Widget build(BuildContext context) { final DataGridFilterHelper helper = - dataGridConfiguration.dataGridFilterHelper; + dataGridConfiguration.dataGridFilterHelper!; return Padding( padding: const EdgeInsets.symmetric(horizontal: 12.0), @@ -1459,7 +1619,7 @@ class _AdvancedFilterPopupMenu extends StatelessWidget { children: [ _FilterMenuDropdown( height: 16.0, - padding: const EdgeInsets.only(top: 12.0, bottom: 8.0), + padding: EdgeInsets.only(top: advanceFilterTopPadding, bottom: 8.0), child: Text( '${dataGridConfiguration.localizations.showRowsWhereDataGridFilteringLabel}:', style: TextStyle( @@ -1495,7 +1655,7 @@ class _AdvancedFilterPopupMenu extends StatelessWidget { Widget _buildRadioButtons() { final DataGridFilterHelper helper = - dataGridConfiguration.dataGridFilterHelper; + dataGridConfiguration.dataGridFilterHelper!; final SfLocalizations localizations = dataGridConfiguration.localizations; void handleChanged(bool? value) { @@ -1510,6 +1670,7 @@ class _AdvancedFilterPopupMenu extends StatelessWidget { SizedBox.fromSize( size: const Size(24.0, 24.0), child: Radio( + key: const ValueKey('datagrid_filtering_and_button'), value: false, activeColor: helper.primaryColor, onChanged: handleChanged, @@ -1523,6 +1684,7 @@ class _AdvancedFilterPopupMenu extends StatelessWidget { SizedBox.fromSize( size: const Size(24.0, 24.0), child: Radio( + key: const ValueKey('datagrid_filtering_or_button'), value: true, activeColor: helper.primaryColor, onChanged: handleChanged, @@ -1537,7 +1699,7 @@ class _AdvancedFilterPopupMenu extends StatelessWidget { Widget _buildFilterValueDropdown({required bool isTopButton}) { final DataGridFilterHelper helper = - dataGridConfiguration.dataGridFilterHelper; + dataGridConfiguration.dataGridFilterHelper!; void setValue(Object? value) { if (isTopButton) { @@ -1572,6 +1734,11 @@ class _AdvancedFilterPopupMenu extends StatelessWidget { Widget buildDropdownFormField() { return DropdownButtonHideUnderline( child: DropdownButtonFormField( + key: isTopButton + ? const ValueKey( + 'datagrid_filtering_filterValue_first_button') + : const ValueKey( + 'datagrid_filtering_filterValue_second_button'), decoration: InputDecoration( enabledBorder: OutlineInputBorder( borderSide: BorderSide(color: helper.borderColor)), @@ -1599,6 +1766,11 @@ class _AdvancedFilterPopupMenu extends StatelessWidget { Widget buildTextField() { return TextField( + key: isTopButton + ? const ValueKey( + 'datagrid_filtering_filterValue_first_button') + : const ValueKey( + 'datagrid_filtering_filterValue_second_button'), controller: isTopButton ? filterHelper.firstValueTextController : filterHelper.secondValueTextController, @@ -1627,7 +1799,7 @@ class _AdvancedFilterPopupMenu extends StatelessWidget { Widget _buildFilterTypeDropdown({required bool isFirstButton}) { final DataGridFilterHelper helper = - dataGridConfiguration.dataGridFilterHelper; + dataGridConfiguration.dataGridFilterHelper!; void handleChanged(String? value) { if (isFirstButton) { @@ -1676,6 +1848,11 @@ class _AdvancedFilterPopupMenu extends StatelessWidget { return DropdownButtonHideUnderline( child: DropdownButtonFormField( + key: isFirstButton + ? const ValueKey( + 'datagrid_filtering_filterType_first_button') + : const ValueKey( + 'datagrid_filtering_filterType_second_button'), decoration: InputDecoration( enabledBorder: OutlineInputBorder( borderSide: BorderSide(color: helper.borderColor)), @@ -1699,7 +1876,7 @@ class _AdvancedFilterPopupMenu extends StatelessWidget { Widget? _getTrailingWidget(BuildContext context, bool isFirstButton) { final DataGridFilterHelper helper = - dataGridConfiguration.dataGridFilterHelper; + dataGridConfiguration.dataGridFilterHelper!; if (filterHelper.advancedFilterType == AdvancedFilterType.numeric) { return null; @@ -1766,6 +1943,11 @@ class _AdvancedFilterPopupMenu extends StatelessWidget { const IconData caseSensitiveIcon = IconData(0xe705, fontFamily: 'FilterIcon', fontPackage: 'syncfusion_flutter_datagrid'); return IconButton( + key: isFirstButton + ? const ValueKey( + 'datagrid_filtering_case_sensitive_first_button') + : const ValueKey( + 'datagrid_filtering_case_sensitive_second_button'), iconSize: 22.0, splashRadius: 20.0, padding: EdgeInsets.zero, @@ -1818,6 +2000,7 @@ BorderDirectional _getCellBorder( final bool isTableSummaryCell = dataCell.cellType == CellType.tableSummaryCell; final bool isRowCell = dataCell.cellType == CellType.gridCell; + final bool isCheckboxCell = dataCell.cellType == CellType.checkboxCell; // To skip bottom border for the top data row of the starting row of bottom table // summary rows and draw top border for the bottom summary start row instead. @@ -1864,7 +2047,7 @@ BorderDirectional _getCellBorder( !isHeaderCell; final GridColumn firstVisibleColumn = dataGridConfiguration.columns - .firstWhere((GridColumn column) => column.visible); + .firstWhere((GridColumn column) => column.visible && column.width != 0.0); final GridColumn column = dataCell.gridColumn!; @@ -1882,7 +2065,8 @@ BorderDirectional _getCellBorder( // To draw the left outer border for the DataGrid Rows. final bool canDrawGridRowsLeftOuterBorder = (isRowCell || - isTableSummaryCell) && + isTableSummaryCell || + isCheckboxCell) && dataGridConfiguration.gridLinesVisibility != GridLinesVisibility.none && column.columnName == firstVisibleColumn.columnName; diff --git a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/widgets/scrollview_widget.dart b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/widgets/scrollview_widget.dart index 20ec259c3..f5e1bf98e 100644 --- a/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/widgets/scrollview_widget.dart +++ b/packages/syncfusion_flutter_datagrid/lib/src/datagrid_widget/widgets/scrollview_widget.dart @@ -488,11 +488,12 @@ class _ScrollViewWidgetState extends State { effectiveRows(dataGridConfiguration.source).isEmpty) { return; } - final Color frozenLineColorWithOpacity = - dataGridConfiguration.colorScheme!.onSurface.withOpacity(0.38); final Color frozenLineColorWithoutOpacity = - dataGridConfiguration.colorScheme!.onSurface.withOpacity(0.14); + dataGridThemeHelper.frozenPaneLineColor; + + final Color frozenLineColorWithOpacity = + dataGridThemeHelper.frozenPaneLineColor.withOpacity(0.14); void drawElevation({ EdgeInsets? margin, @@ -583,7 +584,7 @@ class _ScrollViewWidgetState extends State { !_canDisableHorizontalScrolling(dataGridConfiguration)) { double spreadRadiusValue = 1.5; double blurRadiusValue = 0.0; - Color frozenLineColor = frozenLineColorWithOpacity; + Color frozenLineColor = frozenLineColorWithoutOpacity; final double top = getTopPosition(columnHeaderRow, frozenColumnIndex); final double left = columnHeaderRow.getColumnWidth( 0, dataGridConfiguration.frozenColumnsCount - 1); @@ -592,7 +593,7 @@ class _ScrollViewWidgetState extends State { spreadRadiusValue = 3.0; blurRadiusValue = dataGridConfiguration.dataGridThemeHelper!.frozenPaneElevation; - frozenLineColor = frozenLineColorWithoutOpacity; + frozenLineColor = frozenLineColorWithOpacity; } if (dataGridConfiguration.textDirection == TextDirection.rtl && dataGridConfiguration.horizontalScrollController!.hasClients && @@ -602,7 +603,7 @@ class _ScrollViewWidgetState extends State { spreadRadiusValue = 3.0; blurRadiusValue = dataGridConfiguration.dataGridThemeHelper!.frozenPaneElevation; - frozenLineColor = frozenLineColorWithoutOpacity; + frozenLineColor = frozenLineColorWithOpacity; } drawElevation( @@ -624,7 +625,7 @@ class _ScrollViewWidgetState extends State { double spreadRadiusValue = 3.0; double blurRadiusValue = dataGridConfiguration.dataGridThemeHelper!.frozenPaneElevation; - Color frozenLineColor = frozenLineColorWithoutOpacity; + Color frozenLineColor = frozenLineColorWithOpacity; final double top = getTopPosition(columnHeaderRow, footerFrozenColumnIndex); final double right = columnHeaderRow.getColumnWidth( @@ -636,13 +637,13 @@ class _ScrollViewWidgetState extends State { dataGridConfiguration.container.horizontalOffset) { spreadRadiusValue = 1.5; blurRadiusValue = 0.0; - frozenLineColor = frozenLineColorWithOpacity; + frozenLineColor = frozenLineColorWithoutOpacity; } if (dataGridConfiguration.textDirection == TextDirection.rtl && dataGridConfiguration.container.horizontalOffset == 0) { spreadRadiusValue = 1.5; blurRadiusValue = 0.0; - frozenLineColor = frozenLineColorWithOpacity; + frozenLineColor = frozenLineColorWithoutOpacity; } drawElevation( @@ -663,14 +664,14 @@ class _ScrollViewWidgetState extends State { !_canDisableVerticalScrolling(dataGridConfiguration)) { double spreadRadiusValue = 1.5; double blurRadiusValue = 0.0; - Color frozenLineColor = frozenLineColorWithOpacity; + Color frozenLineColor = frozenLineColorWithoutOpacity; final double top = columnHeaderRow.getRowHeight(0, frozenRowIndex); if (dataGridConfiguration.container.verticalOffset > 0) { spreadRadiusValue = 3.0; blurRadiusValue = dataGridConfiguration.dataGridThemeHelper!.frozenPaneElevation; - frozenLineColor = frozenLineColorWithoutOpacity; + frozenLineColor = frozenLineColorWithOpacity; } drawElevation( @@ -690,17 +691,18 @@ class _ScrollViewWidgetState extends State { double spreadRadiusValue = 3.0; double blurRadiusValue = dataGridConfiguration.dataGridThemeHelper!.frozenPaneElevation; - Color frozenLineColor = frozenLineColorWithoutOpacity; + Color frozenLineColor = frozenLineColorWithOpacity; final double bottom = columnHeaderRow.getRowHeight( footerFrozenRowIndex, dataGridConfiguration.container.rowCount); if (dataGridConfiguration.verticalScrollController!.hasClients && dataGridConfiguration - .verticalScrollController!.position.maxScrollExtent == - dataGridConfiguration.container.verticalOffset) { + .verticalScrollController!.position.maxScrollExtent + .ceilToDouble() == + dataGridConfiguration.container.verticalOffset.ceilToDouble()) { spreadRadiusValue = 1.5; blurRadiusValue = 0.0; - frozenLineColor = frozenLineColorWithOpacity; + frozenLineColor = frozenLineColorWithoutOpacity; } drawElevation( diff --git a/packages/syncfusion_flutter_datagrid/lib/src/datapager/sfdatapager.dart b/packages/syncfusion_flutter_datagrid/lib/src/datapager/sfdatapager.dart index 9adeaf3ff..bfdd3e72e 100644 --- a/packages/syncfusion_flutter_datagrid/lib/src/datapager/sfdatapager.dart +++ b/packages/syncfusion_flutter_datagrid/lib/src/datapager/sfdatapager.dart @@ -978,11 +978,21 @@ class SfDataPagerState extends State { _scrollController!.offset <= _scrollController!.position.minScrollExtent ? 0 : _scrollController!.offset ~/ buttonSize; - final int endIndex = - _scrollController!.offset >= _scrollController!.position.maxScrollExtent - ? _lastPageIndex - : (_scrollController!.offset + _scrollViewPortSize) ~/ buttonSize; + // Issue: + // + // FLUT-6923-SfDataPager is not working properly when updating the pageCount dynamically + // + // Fix: + // We have gotten the page item `endIndex` based on the maxScrollExtent and offset. + // If the pager has below 5-page count then it's not scrollable at initial loading. + // Updating the page index dynamically, the offset and maxScrollExtent have zero as a value. + // So, it satisfied the first condition, takes the end index as the `_lastPageIndex` and generates all the pages. + // Now we removed that unwanted condition to get the last page index. Since we get the last page index + // from the current scroll offset + scrollViewPortSize ~/ buttonSize itself. + // It returns the last visible page index. + final int endIndex = + (_scrollController!.offset + _scrollViewPortSize) ~/ buttonSize; _itemGenerator.ensureItems(startIndex, endIndex); } diff --git a/packages/syncfusion_flutter_datagrid/pubspec.yaml b/packages/syncfusion_flutter_datagrid/pubspec.yaml index 16b8af5c2..5263edcad 100644 --- a/packages/syncfusion_flutter_datagrid/pubspec.yaml +++ b/packages/syncfusion_flutter_datagrid/pubspec.yaml @@ -1,16 +1,16 @@ name: syncfusion_flutter_datagrid description: The Syncfusion Flutter DataGrid is used to display and manipulate data in a tabular view. Its rich feature set includes different types of columns, selections, column sizing, etc. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_datagrid environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 collection: ">=1.9.0 <=2.0.0" diff --git a/packages/syncfusion_flutter_datagrid_export/README.md b/packages/syncfusion_flutter_datagrid_export/README.md index 53743cbaa..1b9a59e0d 100644 --- a/packages/syncfusion_flutter_datagrid_export/README.md +++ b/packages/syncfusion_flutter_datagrid_export/README.md @@ -22,15 +22,12 @@ Explore the full capabilities of our Flutter widgets on your device by installin

- - + +

- -

-

@@ -191,11 +188,11 @@ Use the `exportToPdfDocument` method from `_key.currentState!` and call this met ## Support and feedback -* If you have any questions, you can contact the [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post them to the [community forums](https://www.syncfusion.com/forums). You can also submit a feature request or a bug report through our [feedback portal](https://www.syncfusion.com/feedback/flutter). +* If you have any questions, you can contact the [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post them to the [community forums](https://www.syncfusion.com/forums). You can also submit a feature request or a bug report through our [feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew your subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at sales@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 22,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today, we provide 1,600+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components)) , mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to- deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file + Today, we provide 1,600+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)) , mobile ([.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Flutter](https://www.syncfusion.com/flutter-widgets), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to- deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_datagrid_export/example/linux/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_datagrid_export/example/linux/flutter/generated_plugin_registrant.cc index e71a16d23..d38195aa0 100644 --- a/packages/syncfusion_flutter_datagrid_export/example/linux/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_datagrid_export/example/linux/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_datagrid_export/example/linux/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_datagrid_export/example/linux/flutter/generated_plugin_registrant.h index e0f0a47bc..9bf747894 100644 --- a/packages/syncfusion_flutter_datagrid_export/example/linux/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_datagrid_export/example/linux/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_datagrid_export/example/linux/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_datagrid_export/example/linux/flutter/generated_plugins.cmake index 2e1de87a7..51436ae8c 100644 --- a/packages/syncfusion_flutter_datagrid_export/example/linux/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_datagrid_export/example/linux/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_datagrid_export/example/pubspec.yaml b/packages/syncfusion_flutter_datagrid_export/example/pubspec.yaml index ba1f2390e..4b975ab4c 100644 --- a/packages/syncfusion_flutter_datagrid_export/example/pubspec.yaml +++ b/packages/syncfusion_flutter_datagrid_export/example/pubspec.yaml @@ -6,7 +6,7 @@ publish_to: "none" version: 1.0.0+1 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: cupertino_icons: ^1.0.2 diff --git a/packages/syncfusion_flutter_datagrid_export/example/windows/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_datagrid_export/example/windows/flutter/generated_plugin_registrant.cc index 8b6d4680a..4bfa0f3a3 100644 --- a/packages/syncfusion_flutter_datagrid_export/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_datagrid_export/example/windows/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_datagrid_export/example/windows/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_datagrid_export/example/windows/flutter/generated_plugin_registrant.h index dc139d85a..9846246b4 100644 --- a/packages/syncfusion_flutter_datagrid_export/example/windows/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_datagrid_export/example/windows/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_datagrid_export/example/windows/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_datagrid_export/example/windows/flutter/generated_plugins.cmake index b93c4c30c..4d10c2518 100644 --- a/packages/syncfusion_flutter_datagrid_export/example/windows/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_datagrid_export/example/windows/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_datagrid_export/pubspec.yaml b/packages/syncfusion_flutter_datagrid_export/pubspec.yaml index fc665df99..3d03099b7 100644 --- a/packages/syncfusion_flutter_datagrid_export/pubspec.yaml +++ b/packages/syncfusion_flutter_datagrid_export/pubspec.yaml @@ -1,21 +1,21 @@ name: syncfusion_flutter_datagrid_export description: The Syncfusion Flutter DataGrid Export library is used to export the DataGrid content to Excel and Pdf format with several customization options. -version: 20.3.47-beta +version: 20.4.38-beta homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_datagrid_export environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" flutter: ">=1.17.0" dependencies: flutter: sdk: flutter - syncfusion_flutter_datagrid: ^20.3.47 + syncfusion_flutter_datagrid: ^20.4.38 - syncfusion_flutter_xlsio: ^20.3.47-beta + syncfusion_flutter_xlsio: ^20.4.38-beta - syncfusion_flutter_pdf: ^20.3.47 + syncfusion_flutter_pdf: ^20.4.38 collection: ">=1.9.0 <=2.0.0" diff --git a/packages/syncfusion_flutter_datepicker/README.md b/packages/syncfusion_flutter_datepicker/README.md index 30291c7ec..69a0a7577 100644 --- a/packages/syncfusion_flutter_datepicker/README.md +++ b/packages/syncfusion_flutter_datepicker/README.md @@ -105,15 +105,12 @@ Explore the full capabilities of our Flutter widgets on your device by installin

- - + +

- -

-

@@ -208,11 +205,11 @@ Widget build(BuildContext context) { ## Support and Feedback -* For any other queries, reach our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For any other queries, reach our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew the subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at salessupport@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_datepicker/example/linux/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_datepicker/example/linux/flutter/generated_plugins.cmake index 2e1de87a7..51436ae8c 100644 --- a/packages/syncfusion_flutter_datepicker/example/linux/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_datepicker/example/linux/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_datepicker/example/macos/Flutter/GeneratedPluginRegistrant.swift b/packages/syncfusion_flutter_datepicker/example/macos/Flutter/GeneratedPluginRegistrant.swift index cccf817a5..cf9814600 100644 --- a/packages/syncfusion_flutter_datepicker/example/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/packages/syncfusion_flutter_datepicker/example/macos/Flutter/GeneratedPluginRegistrant.swift @@ -2,6 +2,8 @@ // Generated file. Do not edit. // +// clang-format off + import FlutterMacOS import Foundation diff --git a/packages/syncfusion_flutter_datepicker/example/pubspec.yaml b/packages/syncfusion_flutter_datepicker/example/pubspec.yaml index bb4c76e54..2e6d327a7 100644 --- a/packages/syncfusion_flutter_datepicker/example/pubspec.yaml +++ b/packages/syncfusion_flutter_datepicker/example/pubspec.yaml @@ -3,7 +3,7 @@ description: Syncfusion date picker example project version: 1.0.0+1 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: diff --git a/packages/syncfusion_flutter_datepicker/example/windows/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_datepicker/example/windows/flutter/generated_plugins.cmake index b93c4c30c..4d10c2518 100644 --- a/packages/syncfusion_flutter_datepicker/example/windows/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_datepicker/example/windows/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_datepicker/pubspec.yaml b/packages/syncfusion_flutter_datepicker/pubspec.yaml index ebf006ca1..c9c98c907 100644 --- a/packages/syncfusion_flutter_datepicker/pubspec.yaml +++ b/packages/syncfusion_flutter_datepicker/pubspec.yaml @@ -1,16 +1,16 @@ name: syncfusion_flutter_datepicker description: The Flutter Date Range Picker widget allows users to easily select dates or a range of dates. It has four built-in views that allow quick navigation to the desired date. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-examples environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter intl: ">=0.15.0 <0.20.0" - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 dev_dependencies: flutter_test: diff --git a/packages/syncfusion_flutter_gauges/README.md b/packages/syncfusion_flutter_gauges/README.md index 8df515284..cfa0a15b9 100644 --- a/packages/syncfusion_flutter_gauges/README.md +++ b/packages/syncfusion_flutter_gauges/README.md @@ -78,15 +78,12 @@ Explore the full capabilities of our Flutter widgets on your device by installin

- - + +

- -

-

@@ -216,11 +213,11 @@ The following screenshot illustrates the result of the above code sample. ## Support and Feedback -* For any other queries, reach our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For any other queries, reach our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew the subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at sales@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to- deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to- deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_gauges/example/linux/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_gauges/example/linux/flutter/generated_plugin_registrant.cc index e71a16d23..d38195aa0 100644 --- a/packages/syncfusion_flutter_gauges/example/linux/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_gauges/example/linux/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_gauges/example/linux/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_gauges/example/linux/flutter/generated_plugin_registrant.h index e0f0a47bc..9bf747894 100644 --- a/packages/syncfusion_flutter_gauges/example/linux/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_gauges/example/linux/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_gauges/example/linux/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_gauges/example/linux/flutter/generated_plugins.cmake index 2e1de87a7..51436ae8c 100644 --- a/packages/syncfusion_flutter_gauges/example/linux/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_gauges/example/linux/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_gauges/example/pubspec.yaml b/packages/syncfusion_flutter_gauges/example/pubspec.yaml index 0ddcd7f31..48705a6ed 100644 --- a/packages/syncfusion_flutter_gauges/example/pubspec.yaml +++ b/packages/syncfusion_flutter_gauges/example/pubspec.yaml @@ -14,7 +14,7 @@ description: A new Flutter project. version: 1.0.0+1 environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' dependencies: flutter: diff --git a/packages/syncfusion_flutter_gauges/example/windows/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_gauges/example/windows/flutter/generated_plugin_registrant.cc index 8b6d4680a..4bfa0f3a3 100644 --- a/packages/syncfusion_flutter_gauges/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_gauges/example/windows/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_gauges/example/windows/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_gauges/example/windows/flutter/generated_plugin_registrant.h index dc139d85a..9846246b4 100644 --- a/packages/syncfusion_flutter_gauges/example/windows/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_gauges/example/windows/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_gauges/example/windows/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_gauges/example/windows/flutter/generated_plugins.cmake index b93c4c30c..4d10c2518 100644 --- a/packages/syncfusion_flutter_gauges/example/windows/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_gauges/example/windows/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_gauges/lib/src/linear_gauge/gauge/linear_gauge_render_widget.dart b/packages/syncfusion_flutter_gauges/lib/src/linear_gauge/gauge/linear_gauge_render_widget.dart index b3e907426..17b30c0fb 100644 --- a/packages/syncfusion_flutter_gauges/lib/src/linear_gauge/gauge/linear_gauge_render_widget.dart +++ b/packages/syncfusion_flutter_gauges/lib/src/linear_gauge/gauge/linear_gauge_render_widget.dart @@ -2,6 +2,7 @@ import 'dart:math' as math; import 'package:flutter/gestures.dart' show + DeviceGestureSettings, DragStartBehavior, GestureArenaTeam, HitTestTarget, @@ -40,8 +41,9 @@ class LinearGaugeRenderWidget extends MultiChildRenderObjectWidget { final List> pointerAnimations; @override - RenderObject createRenderObject(BuildContext context) => - RenderLinearGauge(pointerAnimations: pointerAnimations); + RenderObject createRenderObject(BuildContext context) => RenderLinearGauge( + pointerAnimations: pointerAnimations, + gestureSettings: MediaQuery.of(context).gestureSettings); @override void updateRenderObject( @@ -106,8 +108,10 @@ class RenderLinearGauge extends RenderBox /// /// By default, the non-positioned children of the stack are aligned by their /// top left corners. - RenderLinearGauge({required List> pointerAnimations}) - : _gestureArenaTeam = GestureArenaTeam(), + RenderLinearGauge({ + required List> pointerAnimations, + required DeviceGestureSettings gestureSettings, + }) : _gestureArenaTeam = GestureArenaTeam(), _pointerAnimations = pointerAnimations { _ranges = []; _barPointers = []; @@ -119,6 +123,7 @@ class RenderLinearGauge extends RenderBox ..onStart = _handleDragStart ..onUpdate = _handleDragUpdate ..onEnd = _handleDragEnd + ..gestureSettings = gestureSettings ..dragStartBehavior = DragStartBehavior.start; _horizontalDragGestureRecognizer = HorizontalDragGestureRecognizer() @@ -126,6 +131,7 @@ class RenderLinearGauge extends RenderBox ..onStart = _handleDragStart ..onUpdate = _handleDragUpdate ..onEnd = _handleDragEnd + ..gestureSettings = gestureSettings ..dragStartBehavior = DragStartBehavior.start; } diff --git a/packages/syncfusion_flutter_gauges/lib/src/radial_gauge/axis/radial_axis_parent_widget.dart b/packages/syncfusion_flutter_gauges/lib/src/radial_gauge/axis/radial_axis_parent_widget.dart index 2ae566c4c..ca37cb725 100644 --- a/packages/syncfusion_flutter_gauges/lib/src/radial_gauge/axis/radial_axis_parent_widget.dart +++ b/packages/syncfusion_flutter_gauges/lib/src/radial_gauge/axis/radial_axis_parent_widget.dart @@ -2,6 +2,7 @@ import 'dart:math' as math; import 'package:flutter/gestures.dart' show + DeviceGestureSettings, DragStartBehavior, GestureArenaTeam, HitTestTarget, @@ -36,7 +37,8 @@ class RadialAxisParentWidget extends MultiChildRenderObjectWidget { @override RenderObject createRenderObject(BuildContext context) => - RenderRadialAxisParent(); + RenderRadialAxisParent( + gestureSettings: MediaQuery.of(context).gestureSettings); @override void updateRenderObject( @@ -109,12 +111,15 @@ class RenderRadialAxisParent extends RenderBox /// /// By default, the non-positioned children of the stack are aligned by their /// top left corners. - RenderRadialAxisParent() : _gestureArenaTeam = GestureArenaTeam() { + RenderRadialAxisParent({ + required DeviceGestureSettings gestureSettings, + }) : _gestureArenaTeam = GestureArenaTeam() { _verticalDragGestureRecognizer = VerticalDragGestureRecognizer() ..team = _gestureArenaTeam ..onStart = _handleDragStart ..onUpdate = _handleDragUpdate ..onEnd = _handleDragEnd + ..gestureSettings = gestureSettings ..dragStartBehavior = DragStartBehavior.start; _horizontalDragGestureRecognizer = HorizontalDragGestureRecognizer() @@ -122,6 +127,7 @@ class RenderRadialAxisParent extends RenderBox ..onStart = _handleDragStart ..onUpdate = _handleDragUpdate ..onEnd = _handleDragEnd + ..gestureSettings = gestureSettings ..dragStartBehavior = DragStartBehavior.start; _tapGestureRecognizer = TapGestureRecognizer()..onTapUp = _handleTapUP; diff --git a/packages/syncfusion_flutter_gauges/pubspec.yaml b/packages/syncfusion_flutter_gauges/pubspec.yaml index b2e330987..a40d1e012 100644 --- a/packages/syncfusion_flutter_gauges/pubspec.yaml +++ b/packages/syncfusion_flutter_gauges/pubspec.yaml @@ -1,15 +1,15 @@ name: syncfusion_flutter_gauges description: The Flutter gauges library includes a linear gauge and radial gauge (a.k.a. circular gauge) to create modern, interactive, animated gauges and radial sliders. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_gauges environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' dependencies: flutter: sdk: flutter - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 intl: ^0.17.0 dev_dependencies: diff --git a/packages/syncfusion_flutter_maps/CHANGELOG.md b/packages/syncfusion_flutter_maps/CHANGELOG.md index 37ecfa205..319f5de60 100644 --- a/packages/syncfusion_flutter_maps/CHANGELOG.md +++ b/packages/syncfusion_flutter_maps/CHANGELOG.md @@ -1,4 +1,4 @@ -## Unreleased +## [20.3.47] - 09/29/2022 **Bug** * #FB37232 – Now, the data labels get rendered when enabling it programmatically. diff --git a/packages/syncfusion_flutter_maps/README.md b/packages/syncfusion_flutter_maps/README.md index 1b815732c..b7206e8a2 100644 --- a/packages/syncfusion_flutter_maps/README.md +++ b/packages/syncfusion_flutter_maps/README.md @@ -109,15 +109,12 @@ Explore the full capability of our Flutter widgets on your device by installing

- - + +

- -

-

@@ -340,11 +337,11 @@ The following screenshot illustrates the result of the above code sample. ## Support and feedback -* For questions, reach out to our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post them through the [Community forums](https://www.syncfusion.com/forums). Submit a feature request or a bug in our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For questions, reach out to our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post them through the [Community forums](https://www.syncfusion.com/forums). Submit a feature request or a bug in our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew your subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at sales@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to-deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to-deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_maps/example/linux/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_maps/example/linux/flutter/generated_plugin_registrant.cc index e71a16d23..d38195aa0 100644 --- a/packages/syncfusion_flutter_maps/example/linux/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_maps/example/linux/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_maps/example/linux/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_maps/example/linux/flutter/generated_plugin_registrant.h index e0f0a47bc..9bf747894 100644 --- a/packages/syncfusion_flutter_maps/example/linux/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_maps/example/linux/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_maps/example/linux/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_maps/example/linux/flutter/generated_plugins.cmake index 2e1de87a7..51436ae8c 100644 --- a/packages/syncfusion_flutter_maps/example/linux/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_maps/example/linux/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_maps/example/pubspec.yaml b/packages/syncfusion_flutter_maps/example/pubspec.yaml index ef5a87448..021e7eb79 100644 --- a/packages/syncfusion_flutter_maps/example/pubspec.yaml +++ b/packages/syncfusion_flutter_maps/example/pubspec.yaml @@ -14,7 +14,7 @@ description: A new Flutter project. version: 1.0.0+1 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: diff --git a/packages/syncfusion_flutter_maps/example/windows/flutter/generated_plugin_registrant.cc b/packages/syncfusion_flutter_maps/example/windows/flutter/generated_plugin_registrant.cc index 8b6d4680a..4bfa0f3a3 100644 --- a/packages/syncfusion_flutter_maps/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_flutter_maps/example/windows/flutter/generated_plugin_registrant.cc @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" diff --git a/packages/syncfusion_flutter_maps/example/windows/flutter/generated_plugin_registrant.h b/packages/syncfusion_flutter_maps/example/windows/flutter/generated_plugin_registrant.h index dc139d85a..9846246b4 100644 --- a/packages/syncfusion_flutter_maps/example/windows/flutter/generated_plugin_registrant.h +++ b/packages/syncfusion_flutter_maps/example/windows/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/packages/syncfusion_flutter_maps/example/windows/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_maps/example/windows/flutter/generated_plugins.cmake index b93c4c30c..4d10c2518 100644 --- a/packages/syncfusion_flutter_maps/example/windows/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_maps/example/windows/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_maps/pubspec.yaml b/packages/syncfusion_flutter_maps/pubspec.yaml index 6b8f0b491..807902244 100644 --- a/packages/syncfusion_flutter_maps/pubspec.yaml +++ b/packages/syncfusion_flutter_maps/pubspec.yaml @@ -1,16 +1,16 @@ name: syncfusion_flutter_maps description: A Flutter Maps library for creating beautiful, interactive, and customizable maps from shape files or WMTS services to visualize the geographical area. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_maps environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 http: ">=0.12.0 <=0.13.5" vector_math: ">=2.1.0 <=3.0.0" diff --git a/packages/syncfusion_flutter_pdf/CHANGELOG.md b/packages/syncfusion_flutter_pdf/CHANGELOG.md index e4949aaa5..455eb0c0b 100644 --- a/packages/syncfusion_flutter_pdf/CHANGELOG.md +++ b/packages/syncfusion_flutter_pdf/CHANGELOG.md @@ -1,3 +1,15 @@ +## [20.3.57] - 11/15/2022 + +**Bugs** + +* Alpha channel is not initialized properly in transparent brush is now resolved. + +## [20.3.56] - 11/08/2022 + +**Features** + +* Provided support to set signed date while signing the pdf document. + ## [20.2.48] - 09/06/2022 **Bugs** diff --git a/packages/syncfusion_flutter_pdf/README.md b/packages/syncfusion_flutter_pdf/README.md index ce99ca632..248d5abd3 100644 --- a/packages/syncfusion_flutter_pdf/README.md +++ b/packages/syncfusion_flutter_pdf/README.md @@ -63,15 +63,12 @@ Explore the full capability of our Flutter widgets on your device by installing

- - + +

- -

-

@@ -654,14 +651,11 @@ Refer to our [documentation](https://help.syncfusion.com/flutter/pdf/working-wit ## Support and feedback -* For any questions, please post them in our [community forums](https://www.syncfusion.com/forums) or contact our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident). You can also submit a feature request or a bug alert through our [feedback portal](https://www.syncfusion.com/feedback/flutter). +* For any questions, please post them in our [community forums](https://www.syncfusion.com/forums) or contact our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create). You can also submit a feature request or a bug alert through our [feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew your subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at salessupport@syncfusion.com | Toll free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 22,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,600+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software in our Bold line of products for dashboarding and reporting. Many customers have saved millions in licensing fees by deploying our software. - - - +Today we provide 1,600+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software in our Bold line of products for dashboarding and reporting. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_pdf/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/syncfusion_flutter_pdf/example/android/gradle/wrapper/gradle-wrapper.properties index bc6a58afd..cc5527d78 100644 --- a/packages/syncfusion_flutter_pdf/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/syncfusion_flutter_pdf/example/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip diff --git a/packages/syncfusion_flutter_pdf/example/linux/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_pdf/example/linux/flutter/generated_plugins.cmake index 2e1de87a7..51436ae8c 100644 --- a/packages/syncfusion_flutter_pdf/example/linux/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_pdf/example/linux/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_pdf/example/pubspec.yaml b/packages/syncfusion_flutter_pdf/example/pubspec.yaml index c3a9b6f3a..2b9e89ae0 100644 --- a/packages/syncfusion_flutter_pdf/example/pubspec.yaml +++ b/packages/syncfusion_flutter_pdf/example/pubspec.yaml @@ -3,7 +3,7 @@ description: Demo for creating a PDF file using syncfusion_flutter_pdf package. version: 1.0.0+1 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: diff --git a/packages/syncfusion_flutter_pdf/example/windows/flutter/generated_plugins.cmake b/packages/syncfusion_flutter_pdf/example/windows/flutter/generated_plugins.cmake index b93c4c30c..4d10c2518 100644 --- a/packages/syncfusion_flutter_pdf/example/windows/flutter/generated_plugins.cmake +++ b/packages/syncfusion_flutter_pdf/example/windows/flutter/generated_plugins.cmake @@ -5,9 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -16,8 +13,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/graphics/brushes/pdf_brush.dart b/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/graphics/brushes/pdf_brush.dart index 442480b91..17bc184fc 100644 --- a/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/graphics/brushes/pdf_brush.dart +++ b/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/graphics/brushes/pdf_brush.dart @@ -3010,7 +3010,8 @@ class PdfBrushes { static PdfBrush _getBrush(KnownColor kColor) { final ColorHelper color = ColorHelper(kColor); - final PdfBrush brush = PdfSolidBrush(PdfColor(color.r, color.g, color.b)); + final PdfBrush brush = + PdfSolidBrush(PdfColor(color.r, color.g, color.b, color.a)); _brushes[kColor] = brush; return brush; } diff --git a/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/graphics/pdf_pens.dart b/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/graphics/pdf_pens.dart index 2c1345a82..0c8795a7c 100644 --- a/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/graphics/pdf_pens.dart +++ b/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/graphics/pdf_pens.dart @@ -3209,7 +3209,7 @@ class PdfPens { static PdfPen _getPen(KnownColor kColor) { final ColorHelper color = ColorHelper(kColor); final PdfPen pen = - PdfPenHelper.immutable(PdfColor(color.r, color.g, color.b)); + PdfPenHelper.immutable(PdfColor(color.r, color.g, color.b, color.a)); _pens[kColor] = pen; return pen; } diff --git a/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/security/digital_signature/pdf_signature.dart b/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/security/digital_signature/pdf_signature.dart index a8ac9c611..7e634fc89 100644 --- a/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/security/digital_signature/pdf_signature.dart +++ b/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/security/digital_signature/pdf_signature.dart @@ -31,10 +31,11 @@ class PdfSignature { List? documentPermissions, CryptographicStandard cryptographicStandard = CryptographicStandard.cms, DigestAlgorithm digestAlgorithm = DigestAlgorithm.sha256, - PdfCertificate? certificate}) { + PdfCertificate? certificate, + DateTime? signedDate}) { _helper = PdfSignatureHelper(this); _init(signedName, locationInfo, reason, contactInfo, documentPermissions, - cryptographicStandard, digestAlgorithm, certificate); + cryptographicStandard, digestAlgorithm, certificate, signedDate); } //Fields @@ -56,9 +57,15 @@ class PdfSignature { /// Gets or sets the signed name String? signedName; - /// Gets the signed date. + /// Gets or sets the signed date. + /// + /// NOTE: The signed date can only be set when signing the PDF document and does not work on existing signatures. DateTime? get signedDate => _helper.dateOfSign; + set signedDate(DateTime? value) { + _helper.dateOfSign = value; + } + /// Gets or sets cryptographic standard. late CryptographicStandard cryptographicStandard; @@ -81,7 +88,8 @@ class PdfSignature { List? documentPermissions, CryptographicStandard cryptographicStandard, DigestAlgorithm digestAlgorithm, - PdfCertificate? pdfCertificate) { + PdfCertificate? pdfCertificate, + DateTime? signedDate) { this.cryptographicStandard = cryptographicStandard; this.digestAlgorithm = digestAlgorithm; if (signedName != null) { @@ -102,6 +110,9 @@ class PdfSignature { if (pdfCertificate != null) { certificate = pdfCertificate; } + if (signedDate != null) { + this.signedDate = signedDate; + } } /// Add external signer for signature. diff --git a/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/security/digital_signature/pdf_signature_dictionary.dart b/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/security/digital_signature/pdf_signature_dictionary.dart index 20c21b03b..4a33ec0a9 100644 --- a/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/security/digital_signature/pdf_signature_dictionary.dart +++ b/packages/syncfusion_flutter_pdf/lib/src/pdf/implementation/security/digital_signature/pdf_signature_dictionary.dart @@ -170,7 +170,10 @@ class PdfSignatureDictionary implements IPdfWrapper { } void _addDate() { - final DateTime dateTime = DateTime.now(); + DateTime dateTime = DateTime.now(); + if (_sig != null && _sig!.signedDate != null) { + dateTime = _sig!.signedDate!; + } final DateFormat dateFormat = DateFormat('yyyyMMddHHmmss'); final int regionMinutes = dateTime.timeZoneOffset.inMinutes ~/ 11; String offsetMinutes = regionMinutes.toString(); diff --git a/packages/syncfusion_flutter_pdf/pubspec.yaml b/packages/syncfusion_flutter_pdf/pubspec.yaml index b7fd3e1cb..3bf21b4c3 100644 --- a/packages/syncfusion_flutter_pdf/pubspec.yaml +++ b/packages/syncfusion_flutter_pdf/pubspec.yaml @@ -1,17 +1,17 @@ name: syncfusion_flutter_pdf description: The Flutter PDF is a library written natively in Dart for creating, reading, editing, and securing PDF files in Android, iOS, and web platforms. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_pdf environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' dependencies: flutter: sdk: flutter intl: ">=0.17.0 <0.20.0" xml: ">=5.1.0 <7.0.0" - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 crypto: ">=3.0.0 <4.0.0" convert: ">=3.0.0 <4.0.0" diff --git a/packages/syncfusion_flutter_pdfviewer/CHANGELOG.md b/packages/syncfusion_flutter_pdfviewer/CHANGELOG.md index 1d28a8ca1..07e72519e 100644 --- a/packages/syncfusion_flutter_pdfviewer/CHANGELOG.md +++ b/packages/syncfusion_flutter_pdfviewer/CHANGELOG.md @@ -1,4 +1,18 @@ -## Unreleased +## [20.3.58] - 11/22/2022 + +**Bugs** + +* Now, the PDF page will not be zoomed while performing a mouse scroll in the mobile view of the web platform. + +**Features** + +* Support for the text web link navigation has been provided. + +## [20.3.52] - 10/26/2022 + +* When copying PDF content from the `SfPdfViewer` widget, spacing between the words is now added properly. + +## [20.3.47] - 09/29/2022 **Features** @@ -202,4 +216,4 @@ Initial release. * Page navigation - Navigate to the desired pages instantly. * Bookmark navigation - Bookmarks saved in the document are loaded and made ready for easy navigation. This feature helps navigate the topics bookmarked already within the PDF document. * Themes - Easily switch between light and dark themes. -* Localization - All static text within the PDF Viewer can be localized to any supported language. +* Localization - All static text within the PDF Viewer can be localized to any supported language. \ No newline at end of file diff --git a/packages/syncfusion_flutter_pdfviewer/README.md b/packages/syncfusion_flutter_pdfviewer/README.md index 8faadf726..2f59cb51c 100644 --- a/packages/syncfusion_flutter_pdfviewer/README.md +++ b/packages/syncfusion_flutter_pdfviewer/README.md @@ -63,15 +63,12 @@ Explore the full capabilities of our Flutter widgets on your device by installin

- - + +

- -

-

@@ -509,11 +506,11 @@ Widget build(BuildContext context) { ## Support and Feedback -* For any other queries, reach our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For any other queries, reach our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew the subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at salessupport@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_pdfviewer/example/pubspec.yaml b/packages/syncfusion_flutter_pdfviewer/example/pubspec.yaml index 017eb8af6..87a4cae30 100644 --- a/packages/syncfusion_flutter_pdfviewer/example/pubspec.yaml +++ b/packages/syncfusion_flutter_pdfviewer/example/pubspec.yaml @@ -6,7 +6,7 @@ description: Demonstrates how to use the syncfusion_flutter_pdfviewer plugin. publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' dependencies: flutter: diff --git a/packages/syncfusion_flutter_pdfviewer/lib/src/control/pdf_page_view.dart b/packages/syncfusion_flutter_pdfviewer/lib/src/control/pdf_page_view.dart index 3c5f51615..51145712a 100644 --- a/packages/syncfusion_flutter_pdfviewer/lib/src/control/pdf_page_view.dart +++ b/packages/syncfusion_flutter_pdfviewer/lib/src/control/pdf_page_view.dart @@ -491,6 +491,12 @@ class PdfPageViewState extends State { onPointerDown: (PointerDownEvent details) { widget.onPdfPagePointerDown(details); }, + onPointerMove: (PointerMoveEvent details) { + widget.onPdfPagePointerMove(details); + }, + onPointerUp: (PointerUpEvent details) { + widget.onPdfPagePointerUp(details); + }, child: canvasContainer)); return Stack(children: [ pdfPage, diff --git a/packages/syncfusion_flutter_pdfviewer/lib/src/control/pdfviewer_canvas.dart b/packages/syncfusion_flutter_pdfviewer/lib/src/control/pdfviewer_canvas.dart index c279d7562..dd7451504 100644 --- a/packages/syncfusion_flutter_pdfviewer/lib/src/control/pdfviewer_canvas.dart +++ b/packages/syncfusion_flutter_pdfviewer/lib/src/control/pdfviewer_canvas.dart @@ -351,6 +351,7 @@ class CanvasRenderBox extends RenderBox { late VerticalDragGestureRecognizer _verticalDragRecognizer; late PdfDocumentLinkAnnotation? _documentLinkAnnotation; late PdfUriAnnotation? _pdfUriAnnotation; + PdfTextWebLink? _pdfTextWebLink; late final PdfPageRotateAngle _rotatedAngle = pdfDocument!.pages[pageIndex].rotation; @@ -412,7 +413,7 @@ class CanvasRenderBox extends RenderBox { ThemeData? _themeData; SfLocalizations? _localizations; - Future _showHyperLinkDialog(Uri url) { + Future _showMobileHyperLinkDialog(Uri url) { _pdfViewerThemeData = SfPdfViewerTheme.of(context); _themeData = Theme.of(context); _localizations = SfLocalizations.of(context); @@ -577,7 +578,7 @@ class CanvasRenderBox extends RenderBox { }); } - Future _showWebHyperLinkDialog(Uri url) { + Future _showDesktopHyperLinkDialog(Uri url) { _pdfViewerThemeData = SfPdfViewerTheme.of(context); _themeData = Theme.of(context); _localizations = SfLocalizations.of(context); @@ -742,113 +743,132 @@ class CanvasRenderBox extends RenderBox { _textSelectionHelper.enableTapSelection = false; } _viewId = pageIndex; - final double heightPercentage = - pdfDocument!.pages[_viewId!].size.height / height; - final double widthPercentage = - pdfDocument!.pages[_viewId!].size.width / width; - final PdfPage page = pdfDocument!.pages[pageIndex]; - final int length = page.annotations.count; - for (int index = 0; index < length; index++) { - if (page.annotations[index] is PdfUriAnnotation && - enableHyperlinkNavigation) { - _pdfUriAnnotation = page.annotations[index] as PdfUriAnnotation; - assert(_pdfUriAnnotation != null); - if ((details.localPosition.dy >= - (_pdfUriAnnotation!.bounds.top / heightPercentage)) && - (details.localPosition.dy <= - (_pdfUriAnnotation!.bounds.bottom / heightPercentage)) && - (details.localPosition.dx >= - (_pdfUriAnnotation!.bounds.left / heightPercentage)) && - (details.localPosition.dx <= - (_pdfUriAnnotation!.bounds.right / heightPercentage))) { - if (_pdfUriAnnotation!.uri.isNotEmpty) { - _isHyperLinkTapped = true; - final Uri uri = Uri.parse(_pdfUriAnnotation!.uri); - if (canShowHyperlinkDialog) { - if (_pdfUriAnnotation!.uri.contains('mailto')) { - launchUrl(uri); - } else { - kIsDesktop - ? _showWebHyperLinkDialog(uri) - : _showHyperLinkDialog(uri); - } + if (enableHyperlinkNavigation || enableDocumentLinkNavigation) { + final double heightPercentage = + pdfDocument!.pages[_viewId!].size.height / height; + final double widthPercentage = + pdfDocument!.pages[_viewId!].size.width / width; + final PdfPage page = pdfDocument!.pages[pageIndex]; + final int length = page.annotations.count; + for (int index = 0; index < length; index++) { + if (page.annotations[index] is PdfUriAnnotation && + enableHyperlinkNavigation) { + _pdfUriAnnotation = page.annotations[index] as PdfUriAnnotation; + assert(_pdfUriAnnotation != null); + if (_checkHyperLinkPosition( + details, heightPercentage, _pdfUriAnnotation!.bounds)) { + if (_pdfUriAnnotation!.uri.isNotEmpty) { + _isHyperLinkTapped = true; + final Uri uri = Uri.parse(_pdfUriAnnotation!.uri); + _showHyperLinkDialog(uri); + markNeedsPaint(); + break; + } + } + } else if (page.annotations[index] is PdfTextWebLink && + enableHyperlinkNavigation) { + _pdfTextWebLink = page.annotations[index] as PdfTextWebLink; + assert(_pdfTextWebLink != null); + if (_checkHyperLinkPosition( + details, heightPercentage, _pdfTextWebLink!.bounds)) { + if (_pdfTextWebLink!.url.isNotEmpty) { + _isHyperLinkTapped = true; + final bool isMailID = + RegExp(r'^.+@[a-zA-Z]+\.{1}[a-zA-Z]+(\.{0,1}[a-zA-Z]+)$') + .hasMatch(_pdfTextWebLink!.url); + final String scheme = isMailID + ? !_pdfTextWebLink!.url.contains('mailto') + ? 'mailto' + : '' + : (!_pdfTextWebLink!.url.contains('https') && + !_pdfTextWebLink!.url.contains('http')) + ? 'https' + : ''; + final Uri url = !_pdfTextWebLink!.url.contains(scheme) + ? scheme.contains('mailto') + ? Uri(scheme: scheme, path: _pdfTextWebLink!.url) + : Uri(scheme: scheme, host: _pdfTextWebLink!.url) + : Uri.parse(_pdfTextWebLink!.url); + _showHyperLinkDialog(url); + markNeedsPaint(); + break; } - triggerHyperLinkCallback(); - markNeedsPaint(); - break; } } - } - if (enableDocumentLinkNavigation) { - if (page.annotations[index] is PdfDocumentLinkAnnotation) { - _documentLinkAnnotation = - // ignore: avoid_as - page.annotations[index] as PdfDocumentLinkAnnotation; - assert(_documentLinkAnnotation != null); - if ((details.localPosition.dy >= - (_documentLinkAnnotation!.bounds.top / heightPercentage)) && - (details.localPosition.dy <= - (_documentLinkAnnotation!.bounds.bottom / - heightPercentage)) && - (details.localPosition.dx >= - (_documentLinkAnnotation!.bounds.left / heightPercentage)) && - (details.localPosition.dx <= - (_documentLinkAnnotation!.bounds.right / heightPercentage))) { - if (_documentLinkAnnotation!.destination?.page != null) { - _isTOCTapped = true; - final PdfPage destinationPage = - _documentLinkAnnotation!.destination!.page; - final int destinationPageIndex = - pdfDocument!.pages.indexOf(destinationPage) + 1; - Offset destinationPageOffset = - _documentLinkAnnotation!.destination!.location; - destinationPageOffset = getRotatedOffset(destinationPageOffset, - destinationPageIndex - 1, destinationPage.rotation); - final double positionX = - destinationPageOffset.dx / widthPercentage; - final double positionY = - destinationPageOffset.dy / heightPercentage; - final double pageOffset = - pdfPages[destinationPageIndex]!.pageOffset; - if (isSinglePageView) { - _totalPageOffset = Offset(positionX, positionY); - } else { - if (scrollDirection == PdfScrollDirection.horizontal) { - if (pdfViewerController.zoomLevel == 1) { - _totalPageOffset = Offset(pageOffset, positionY); + if (enableDocumentLinkNavigation) { + if (page.annotations[index] is PdfDocumentLinkAnnotation) { + _documentLinkAnnotation = + // ignore: avoid_as + page.annotations[index] as PdfDocumentLinkAnnotation; + assert(_documentLinkAnnotation != null); + if ((details.localPosition.dy >= + (_documentLinkAnnotation!.bounds.top / heightPercentage)) && + (details.localPosition.dy <= + (_documentLinkAnnotation!.bounds.bottom / + heightPercentage)) && + (details.localPosition.dx >= + (_documentLinkAnnotation!.bounds.left / + heightPercentage)) && + (details.localPosition.dx <= + (_documentLinkAnnotation!.bounds.right / + heightPercentage))) { + if (_documentLinkAnnotation!.destination?.page != null) { + _isTOCTapped = true; + final PdfPage destinationPage = + _documentLinkAnnotation!.destination!.page; + final int destinationPageIndex = + pdfDocument!.pages.indexOf(destinationPage) + 1; + Offset destinationPageOffset = + _documentLinkAnnotation!.destination!.location; + destinationPageOffset = getRotatedOffset(destinationPageOffset, + destinationPageIndex - 1, destinationPage.rotation); + final double positionX = + destinationPageOffset.dx / widthPercentage; + final double positionY = + destinationPageOffset.dy / heightPercentage; + final double pageOffset = + pdfPages[destinationPageIndex]!.pageOffset; + if (isSinglePageView) { + _totalPageOffset = Offset(positionX, positionY); + } else { + if (scrollDirection == PdfScrollDirection.horizontal) { + if (pdfViewerController.zoomLevel == 1) { + _totalPageOffset = Offset(pageOffset, positionY); + } else { + _totalPageOffset = + Offset(pageOffset + positionX, positionY); + } } else { _totalPageOffset = - Offset(pageOffset + positionX, positionY); + Offset(positionX, pageOffset + positionY); } - } else { - _totalPageOffset = Offset(positionX, pageOffset + positionY); } + _viewId = pageIndex; + _destinationPageIndex = destinationPageIndex; + + /// Mark this render object as having changed its visual appearance. + /// + /// Rather than eagerly updating this render object's display list + /// in response to writes, we instead mark the render object as needing to + /// paint, which schedules a visual update. As part of the visual update, the + /// rendering pipeline will give this render object an opportunity to update + /// its display list. + /// + /// This mechanism batches the painting work so that multiple sequential + /// writes are coalesced, removing redundant computation. + /// + /// Once markNeedsPaint has been called on a render object, + /// debugNeedsPaint returns true for that render object until just after + /// the pipeline owner has called paint on the render object. + /// + /// See also: + /// + /// * RepaintBoundary, to scope a subtree of render objects to their own + /// layer, thus limiting the number of nodes that markNeedsPaint must mark + /// dirty. + markNeedsPaint(); + break; } - _viewId = pageIndex; - _destinationPageIndex = destinationPageIndex; - - /// Mark this render object as having changed its visual appearance. - /// - /// Rather than eagerly updating this render object's display list - /// in response to writes, we instead mark the render object as needing to - /// paint, which schedules a visual update. As part of the visual update, the - /// rendering pipeline will give this render object an opportunity to update - /// its display list. - /// - /// This mechanism batches the painting work so that multiple sequential - /// writes are coalesced, removing redundant computation. - /// - /// Once markNeedsPaint has been called on a render object, - /// debugNeedsPaint returns true for that render object until just after - /// the pipeline owner has called paint on the render object. - /// - /// See also: - /// - /// * RepaintBoundary, to scope a subtree of render objects to their own - /// layer, thus limiting the number of nodes that markNeedsPaint must mark - /// dirty. - markNeedsPaint(); - break; } } } @@ -856,6 +876,32 @@ class CanvasRenderBox extends RenderBox { } } + /// Check if the hyperlink exists in the tapped position or not. + bool _checkHyperLinkPosition( + dynamic details, double heightPercentage, Rect bounds) { + if ((details.localPosition.dy >= (bounds.top / heightPercentage)) && + (details.localPosition.dy <= (bounds.bottom / heightPercentage)) && + (details.localPosition.dx >= (bounds.left / heightPercentage)) && + (details.localPosition.dx <= (bounds.right / heightPercentage))) { + return true; + } + return false; + } + + /// Show the hyperlink navigation dialog. + void _showHyperLinkDialog(Uri uri) { + if (canShowHyperlinkDialog) { + if (uri.toString().contains('mailto')) { + launchUrl(uri); + } else { + kIsDesktop + ? _showDesktopHyperLinkDialog(uri) + : _showMobileHyperLinkDialog(uri); + } + } + triggerHyperLinkCallback(uri.toString()); + } + /// Handles the long press started event.cursorMode void handleLongPressStart(LongPressStartDetails details) { if (kIsDesktop && !isMobileWebView && pdfDocument != null) { @@ -1086,10 +1132,10 @@ class CanvasRenderBox extends RenderBox { } /// Triggers callback for hyperlink navigation. - void triggerHyperLinkCallback() { + void triggerHyperLinkCallback(String url) { if (onHyperlinkClicked != null) { onHyperlinkClicked!(PdfHyperlinkClickedDetails( - _pdfUriAnnotation!.uri, + url, )); } } @@ -1442,7 +1488,8 @@ class CanvasRenderBox extends RenderBox { final bool hasTOC = page.annotations[index] is PdfDocumentLinkAnnotation && enableDocumentLinkNavigation; - final bool hasURI = page.annotations[index] is PdfUriAnnotation && + final bool hasURI = (page.annotations[index] is PdfUriAnnotation || + page.annotations[index] is PdfTextWebLink) && enableHyperlinkNavigation; if (hasTOC) { _documentLinkAnnotation = @@ -1455,13 +1502,22 @@ class CanvasRenderBox extends RenderBox { return true; } } else if (hasURI) { - _pdfUriAnnotation = - // ignore: avoid_as - page.annotations[index] as PdfUriAnnotation; - if ((hoverDetails.dy >= (_pdfUriAnnotation!.bounds.top)) && - (hoverDetails.dy <= (_pdfUriAnnotation!.bounds.bottom)) && - (hoverDetails.dx >= (_pdfUriAnnotation!.bounds.left)) && - (hoverDetails.dx <= (_pdfUriAnnotation!.bounds.right))) { + late Rect bounds; + if (page.annotations[index] is PdfUriAnnotation) { + _pdfUriAnnotation = + // ignore: avoid_as + page.annotations[index] as PdfUriAnnotation; + bounds = _pdfUriAnnotation!.bounds; + } else { + _pdfTextWebLink = + // ignore: avoid_as + page.annotations[index] as PdfTextWebLink; + bounds = _pdfTextWebLink!.bounds; + } + if ((hoverDetails.dy >= (bounds.top)) && + (hoverDetails.dy <= (bounds.bottom)) && + (hoverDetails.dx >= (bounds.left)) && + (hoverDetails.dx <= (bounds.right))) { return true; } } @@ -1571,16 +1627,10 @@ class CanvasRenderBox extends RenderBox { void _performHyperLinkNavigation(Canvas canvas, Offset offset) { if (pageIndex == _viewId) { if (_isHyperLinkTapped && enableHyperlinkNavigation) { - final double heightPercentage = - pdfDocument!.pages[_viewId!].size.height / height; - final Paint wordPaint = Paint() - ..color = const Color.fromRGBO(228, 238, 244, 0.75); - canvas.drawRect( - offset.translate(_pdfUriAnnotation!.bounds.left / heightPercentage, - _pdfUriAnnotation!.bounds.top / heightPercentage) & - Size(_pdfUriAnnotation!.bounds.width / heightPercentage, - _pdfUriAnnotation!.bounds.height / heightPercentage), - wordPaint); + final Rect bounds = _pdfTextWebLink != null + ? _pdfTextWebLink!.bounds + : _pdfUriAnnotation!.bounds; + _drawHyperLinkTapColor(canvas, offset, bounds); _isHyperLinkTapped = false; Future.delayed(Duration.zero, () async { markNeedsPaint(); @@ -1589,6 +1639,20 @@ class CanvasRenderBox extends RenderBox { } } + /// Draw the selection background color while tapping the hyperlink. + void _drawHyperLinkTapColor(Canvas canvas, Offset offset, Rect bounds) { + final double heightPercentage = + pdfDocument!.pages[_viewId!].size.height / height; + final Paint wordPaint = Paint() + ..color = const Color.fromRGBO(228, 238, 244, 0.75); + canvas.drawRect( + offset.translate( + bounds.left / heightPercentage, bounds.top / heightPercentage) & + Size(bounds.width / heightPercentage, + bounds.height / heightPercentage), + wordPaint); + } + /// Perform document link navigation. void _performDocumentLinkNavigation(Canvas canvas, Offset offset) { if (pageIndex == _viewId) { @@ -1725,6 +1789,19 @@ class CanvasRenderBox extends RenderBox { } } } + if (wordIndex < textWordCollection.length - 1 && !_isRTLText) { + final TextWord word = textWordCollection[wordIndex]; + final TextGlyph currentWord = word.glyphs[word.text.length - 1]; + final TextGlyph nextWord = + textWordCollection[wordIndex + 1].glyphs[0]; + + if ((((currentWord.bounds.width + currentWord.bounds.left) - + nextWord.bounds.left) + .abs()) > + 1.0) { + glyphText = '$glyphText '; + } + } } } @@ -1772,7 +1849,17 @@ class CanvasRenderBox extends RenderBox { } glyphText = rtlText + glyphText; } else { - glyphText = glyphText + glyph.text; + double glyphPosition = 0; + if (glyphIndex < textWord.text.length - 1) { + final TextGlyph textGlyph = textWord.glyphs[glyphIndex]; + final double currentGlyph = + textGlyph.bounds.width + textGlyph.bounds.left; + final double nextGlyph = textWord.glyphs[glyphIndex + 1].bounds.left; + glyphPosition = (currentGlyph - nextGlyph).abs(); + } + glyphText = (glyphPosition > 1.0) + ? '$glyphText${glyph.text} ' + : glyphText + glyph.text; } return glyphText; } diff --git a/packages/syncfusion_flutter_pdfviewer/lib/src/control/scroll_head_overlay.dart b/packages/syncfusion_flutter_pdfviewer/lib/src/control/scroll_head_overlay.dart index 228b71f3d..1972d696c 100644 --- a/packages/syncfusion_flutter_pdfviewer/lib/src/control/scroll_head_overlay.dart +++ b/packages/syncfusion_flutter_pdfviewer/lib/src/control/scroll_head_overlay.dart @@ -309,12 +309,9 @@ class ScrollHeadOverlayState extends State { transformationController: widget.transformationController, key: _childKey, enableDoubleTapZooming: enableDoubleTapZoom, - // ignore: avoid_bool_literals_in_conditional_expressions - scaleEnabled: ((kIsDesktop && widget.isMobileWebView) || - !kIsDesktop || - (kIsDesktop && widget.scaleEnabled)) - ? true - : false, + scaleEnabled: + // ignore: avoid_bool_literals_in_conditional_expressions + (!kIsDesktop || (kIsDesktop && widget.scaleEnabled)) ? true : false, panEnabled: widget.isPanEnabled, onInteractionStart: _handleInteractionStart, onInteractionUpdate: _handleInteractionChanged, diff --git a/packages/syncfusion_flutter_pdfviewer/lib/src/control/single_page_view.dart b/packages/syncfusion_flutter_pdfviewer/lib/src/control/single_page_view.dart index d16ef2c14..118f8f6a7 100644 --- a/packages/syncfusion_flutter_pdfviewer/lib/src/control/single_page_view.dart +++ b/packages/syncfusion_flutter_pdfviewer/lib/src/control/single_page_view.dart @@ -43,6 +43,7 @@ class SinglePageView extends StatefulWidget { this.onPdfOffsetChanged, this.isBookmarkViewOpen, this.textDirection, + this.isTablet, this.children) : super(key: key); @@ -104,6 +105,9 @@ class SinglePageView extends StatefulWidget { ///A direction of text flow. final TextDirection textDirection; + /// Indicates whether the current environment is running in Tablet + final bool isTablet; + @override SinglePageViewState createState() => SinglePageViewState(); } @@ -313,214 +317,223 @@ class SinglePageViewState extends State { ? true : false; final List pages = []; - for (int pageIndex = 0; pageIndex < widget.children.length; pageIndex++) { - final Widget page = widget.children[pageIndex]; - final bool isLandscape = - MediaQuery.of(context).orientation == Orientation.landscape; - double imageSize = widget.pdfPages[pageIndex + 1]!.pageSize.height * - widget.pdfViewerController.zoomLevel; - _topMargin = (widget.pdfPages[pageIndex + 1]!.pageSize.height - - widget.viewportDimension.height) / - 2; - greyAreaSize = widget.viewportDimension.height - - (widget.pdfPages[pageIndex + 1]!.pageSize.height); - bool isHeightFitted = false; - if (_topMargin == 0) { - isHeightFitted = true; - _leftMargin = (widget.pdfPages[pageIndex + 1]!.pageSize.width - - widget.viewportDimension.width) / + if (widget.pdfPages.isNotEmpty) { + for (int pageIndex = 0; pageIndex < widget.children.length; pageIndex++) { + final Widget page = widget.children[pageIndex]; + final bool isLandscape = + MediaQuery.of(context).orientation == Orientation.landscape; + double imageSize = widget.pdfPages[pageIndex + 1]!.pageSize.height * + widget.pdfViewerController.zoomLevel; + _topMargin = (widget.pdfPages[pageIndex + 1]!.pageSize.height - + widget.viewportDimension.height) / 2; - imageSize = widget.pdfPages[pageIndex + 1]!.pageSize.width * - double.parse( - widget.pdfViewerController.zoomLevel.toStringAsFixed(1)) - .round(); - } - pages.add(InteractiveScrollViewer( - SizedBox( - height: isLandscape && !kIsDesktop - ? childSize.height - : widget.viewportDimension.height, - width: - isLandscape ? childSize.width : widget.viewportDimension.width, - child: Center(child: page)), - clipBehavior: Clip.none, - boundaryMargin: EdgeInsets.only( - top: isHeightFitted || isLandscape - ? 0 - : (imageSize.round() <= widget.viewportDimension.height.round() - ? (childSize.height - widget.viewportDimension.height) / 2 - : _topMargin), - bottom: isHeightFitted || isLandscape - ? 0 - : (imageSize.round() <= widget.viewportDimension.height.round() - ? (childSize.height - widget.viewportDimension.height) / 2 - : _topMargin), - right: isHeightFitted - ? (imageSize <= widget.viewportDimension.width ? 0 : _leftMargin) - : 0, - left: isHeightFitted - ? (imageSize <= widget.viewportDimension.width ? 0 : _leftMargin) - : 0, - ), - constrained: false, - onDoubleTapZoomInvoked: _onDoubleTapZoomInvoked, - // ignore: avoid_bool_literals_in_conditional_expressions - scaleEnabled: ((kIsDesktop && widget.isMobileWebView) || - !kIsDesktop || - (kIsDesktop && widget.scaleEnabled)) - ? true - : false, - enableDoubleTapZooming: enableDoubleTapZoom, - transformationController: _transformationController, - onInteractionStart: (ScaleStartDetails details) { - _panStartOffset = details.localFocalPoint.dx; - if (!kIsDesktop || - (kIsDesktop && widget.isMobileWebView) || - (kIsDesktop && widget.scaleEnabled)) { - if (previousZoomLevel != _oldPreviousZoomLevel) { - _oldPreviousZoomLevel = previousZoomLevel; + greyAreaSize = widget.viewportDimension.height - + (widget.pdfPages[pageIndex + 1]!.pageSize.height); + bool isHeightFitted = false; + if (_topMargin == 0) { + isHeightFitted = true; + _leftMargin = (widget.pdfPages[pageIndex + 1]!.pageSize.width - + widget.viewportDimension.width) / + 2; + imageSize = widget.pdfPages[pageIndex + 1]!.pageSize.width * + double.parse( + widget.pdfViewerController.zoomLevel.toStringAsFixed(1)) + .round(); + } + pages.add(InteractiveScrollViewer( + SizedBox( + height: isLandscape && !kIsDesktop + ? childSize.height + : widget.viewportDimension.height, + width: isLandscape + ? childSize.width + : widget.viewportDimension.width, + child: Center(child: page)), + clipBehavior: Clip.none, + boundaryMargin: EdgeInsets.only( + top: isHeightFitted || isLandscape + ? 0 + : (imageSize.round() <= widget.viewportDimension.height.round() + ? (childSize.height - widget.viewportDimension.height) / 2 + : _topMargin), + bottom: isHeightFitted || isLandscape + ? 0 + : (imageSize.round() <= widget.viewportDimension.height.round() + ? (childSize.height - widget.viewportDimension.height) / 2 + : _topMargin), + right: isHeightFitted + ? (imageSize <= widget.viewportDimension.width + ? 0 + : _leftMargin) + : 0, + left: isHeightFitted + ? (imageSize <= widget.viewportDimension.width + ? 0 + : _leftMargin) + : 0, + ), + constrained: false, + onDoubleTapZoomInvoked: _onDoubleTapZoomInvoked, + // ignore: avoid_bool_literals_in_conditional_expressions + scaleEnabled: (!kIsDesktop || (kIsDesktop && widget.scaleEnabled)) + ? true + : false, + enableDoubleTapZooming: enableDoubleTapZoom, + transformationController: _transformationController, + onInteractionStart: (ScaleStartDetails details) { + _panStartOffset = details.localFocalPoint.dx; + if (!kIsDesktop || + (kIsDesktop && widget.isMobileWebView) || + (kIsDesktop && widget.scaleEnabled)) { + if (previousZoomLevel != _oldPreviousZoomLevel) { + _oldPreviousZoomLevel = previousZoomLevel; + } + previousZoomLevel = widget.pdfViewerController.zoomLevel; } - previousZoomLevel = widget.pdfViewerController.zoomLevel; - } - _paddingWidthScale = 0; - _paddingHeightScale = 0; - }, - onInteractionUpdate: (ScaleUpdateDetails details) { - if (widget.interactionMode == PdfInteractionMode.pan) { - _panUpdateOffset = details.localFocalPoint.dx; - if (_panStartOffset != _panUpdateOffset) { - if (_panStartOffset < details.localFocalPoint.dx) { - _canJumpPrevious = true; - } else { - _canJumpNext = true; + _paddingWidthScale = 0; + _paddingHeightScale = 0; + }, + onInteractionUpdate: (ScaleUpdateDetails details) { + if (widget.interactionMode == PdfInteractionMode.pan) { + _panUpdateOffset = details.localFocalPoint.dx; + if (_panStartOffset != _panUpdateOffset) { + if (_panStartOffset < details.localFocalPoint.dx) { + _canJumpPrevious = true; + } else { + _canJumpNext = true; + } } } - } - _currentOffsetOfInteractionUpdate = - _transformationController.toScene(Offset.zero); - if (!kIsDesktop || - (kIsDesktop && widget.isMobileWebView) || - (kIsDesktop && widget.scaleEnabled)) { - widget.interactionUpdate( - _transformationController.value.getMaxScaleOnAxis()); - } - final double currentScale = - _transformationController.value.getMaxScaleOnAxis(); - if (details.scale <= 1) { - if (((kIsDesktop && !widget.isMobileWebView) || - (widget.viewportDimension.width > - widget.viewportDimension.height)) && - widget.viewportDimension.width.round() >= - (widget.pdfPages[widget.pdfViewerController.pageNumber]! - .pageSize.width * - currentScale) - .round()) { - setState(() { - _paddingWidthScale = details.scale * currentScale; - }); + _currentOffsetOfInteractionUpdate = + _transformationController.toScene(Offset.zero); + if (!kIsDesktop || + (kIsDesktop && widget.isMobileWebView) || + (kIsDesktop && widget.scaleEnabled)) { + widget.interactionUpdate( + _transformationController.value.getMaxScaleOnAxis()); } - if (widget.viewportDimension.height.round() >= - (widget.pdfPages[widget.pdfViewerController.pageNumber]! - .pageSize.height * - _transformationController.value.getMaxScaleOnAxis()) - .round()) { - setState(() { - _paddingHeightScale = (details.scale) * currentScale; - }); + final double currentScale = + _transformationController.value.getMaxScaleOnAxis(); + if (details.scale <= 1) { + if (((kIsDesktop && !widget.isMobileWebView) || + (widget.viewportDimension.width > + widget.viewportDimension.height)) && + widget.viewportDimension.width.round() >= + (widget.pdfPages[widget.pdfViewerController.pageNumber]! + .pageSize.width * + currentScale) + .round()) { + setState(() { + _paddingWidthScale = details.scale * currentScale; + }); + } + if (widget.viewportDimension.height.round() >= + (widget.pdfPages[widget.pdfViewerController.pageNumber]! + .pageSize.height * + _transformationController.value.getMaxScaleOnAxis()) + .round()) { + setState(() { + _paddingHeightScale = (details.scale) * currentScale; + }); + } } - } - if (details.scale == 1) { - if (_transformationController - .toScene(Offset(widget.viewportDimension.width, 0)) - .dx - .round() + - _leftMargin.abs().round() >= - widget.viewportDimension.width || - _transformationController.toScene(Offset.zero).dx.round() <= - _leftMargin.abs().round()) { - _canPanOnZoom = true; + if (details.scale == 1) { + if (_transformationController + .toScene( + Offset(widget.viewportDimension.width, 0)) + .dx + .round() + + _leftMargin.abs().round() >= + widget.viewportDimension.width || + _transformationController.toScene(Offset.zero).dx.round() <= + _leftMargin.abs().round()) { + _canPanOnZoom = true; + } else { + _canScroll = true; + } } else { _canScroll = true; } - } else { - _canScroll = true; - } - widget.onPdfOffsetChanged! - .call(_transformationController.toScene(Offset.zero)); - }, - onInteractionEnd: (ScaleEndDetails details) { - if (widget.interactionMode == PdfInteractionMode.pan) { - final double pannedDistance = - (_panStartOffset - _panUpdateOffset).abs(); - if (pannedDistance > 300) { - if (_canJumpPrevious && - widget.pdfViewerController.pageNumber != 1) { - widget.pageController.animateToPage( - widget.pdfViewerController.pageNumber - 2, - duration: const Duration(milliseconds: 500), - curve: Curves.ease); - } else if (_canJumpNext && - widget.pdfViewerController.pageNumber != - widget.pdfViewerController.pageCount) { - widget.pageController.animateToPage( - widget.pdfViewerController.pageNumber, - duration: const Duration(milliseconds: 500), - curve: Curves.ease); - } - _canJumpPrevious = false; - _canJumpNext = false; - } else { - if (_canJumpPrevious) { - widget.pageController.animateTo( - widget.pageController.offset - 10, - duration: const Duration(milliseconds: 100), - curve: Curves.ease); - } else if (_canJumpNext) { - widget.pageController.animateTo( - widget.pageController.offset + 10, - duration: const Duration(milliseconds: 100), - curve: Curves.ease); + widget.onPdfOffsetChanged! + .call(_transformationController.toScene(Offset.zero)); + }, + onInteractionEnd: (ScaleEndDetails details) { + if (widget.interactionMode == PdfInteractionMode.pan) { + final double pannedDistance = + (_panStartOffset - _panUpdateOffset).abs(); + if (pannedDistance > 300) { + if (_canJumpPrevious && + widget.pdfViewerController.pageNumber != 1) { + widget.pageController.animateToPage( + widget.pdfViewerController.pageNumber - 2, + duration: const Duration(milliseconds: 500), + curve: Curves.ease); + } else if (_canJumpNext && + widget.pdfViewerController.pageNumber != + widget.pdfViewerController.pageCount) { + widget.pageController.animateToPage( + widget.pdfViewerController.pageNumber, + duration: const Duration(milliseconds: 500), + curve: Curves.ease); + } + _canJumpPrevious = false; + _canJumpNext = false; + } else { + if (_canJumpPrevious) { + widget.pageController.animateTo( + widget.pageController.offset - 10, + duration: const Duration(milliseconds: 100), + curve: Curves.ease); + } else if (_canJumpNext) { + widget.pageController.animateTo( + widget.pageController.offset + 10, + duration: const Duration(milliseconds: 100), + curve: Curves.ease); + } } } - } - if (!kIsDesktop || - (kIsDesktop && widget.isMobileWebView) || - (kIsDesktop && widget.scaleEnabled)) { - widget.onZoomLevelChanged( - _transformationController.value.getMaxScaleOnAxis()); - } - currentOffset = _transformationController.toScene(Offset.zero); - if (_canScroll) { - _canPanOnZoom = false; - _canScroll = false; - } - _paddingWidthScale = 0; - _paddingHeightScale = 0; - if (widget.viewportDimension.width > - widget.pdfPages[widget.pdfViewerController.pageNumber]!.pageSize - .width * - _transformationController.value.getMaxScaleOnAxis()) { - setState(() { - if (!_isMousePointer) { - _transformationController.value - .translate(_currentOffsetOfInteractionUpdate.dx); - _isOverFlowed = false; - } - }); - } else { - if (kIsDesktop && !widget.isMobileWebView) { - /// Invoked when pdf pages width greater viewport width - if (_isOverFlowed == false) { - _transformationController.value - .translate(_currentOffsetOfInteractionUpdate.dx); - _isOverFlowed = true; + if (!kIsDesktop || + (kIsDesktop && widget.isMobileWebView) || + (kIsDesktop && widget.scaleEnabled)) { + widget.onZoomLevelChanged( + _transformationController.value.getMaxScaleOnAxis()); + } + currentOffset = _transformationController.toScene(Offset.zero); + if (_canScroll) { + _canPanOnZoom = false; + _canScroll = false; + } + _paddingWidthScale = 0; + _paddingHeightScale = 0; + if (widget.viewportDimension.width > + widget.pdfPages[widget.pdfViewerController.pageNumber]! + .pageSize.width * + _transformationController.value.getMaxScaleOnAxis() && + (kIsDesktop || + (widget.isMobileWebView && isLandscape) || + (widget.isTablet && isLandscape))) { + setState(() { + if (!_isMousePointer) { + _transformationController.value + .translate(_currentOffsetOfInteractionUpdate.dx); + _isOverFlowed = false; + } + }); + } else { + if (kIsDesktop && !widget.isMobileWebView) { + /// Invoked when pdf pages width greater viewport width + if (_isOverFlowed == false) { + _transformationController.value + .translate(_currentOffsetOfInteractionUpdate.dx); + _isOverFlowed = true; + } } } - } - _isMousePointer = false; - setState(() {}); - }, - )); + _isMousePointer = false; + setState(() {}); + }, + )); + } } _scrollHeadPosition = widget.pdfViewerController.pageNumber == 1 ? 0 @@ -635,51 +648,77 @@ class SinglePageViewState extends State { _transformationController.value.getMaxScaleOnAxis(); final double pdfPageHeight = widget.pdfPages[widget.pdfViewerController.pageNumber]!.pageSize.height; - final double totalPageOffset = + + final double pdfPageWidth = widget.pdfPages[widget.pdfViewerController.pageNumber]!.pageSize.width; + final bool isPortrait = + MediaQuery.of(context).orientation == Orientation.portrait; if (widget.pdfViewerController.zoomLevel <= 1) { if (kIsDesktop && !widget.isMobileWebView) { offset = Offset.zero; } else { - offset = Offset(0, offset.dy); + if ((widget.isMobileWebView || widget.isTablet) && + isPortrait && + widget.viewportDimension.width > pdfPageWidth) { + offset = Offset(offset.dx, 0); + } else { + offset = Offset(0, offset.dy); + } } } - if (widget.viewportDimension.height > pdfPageHeight) { + + /// Calculates the offset when the viewport width is greater than the page width. + if ((widget.isMobileWebView || widget.isTablet) && + isPortrait && + widget.viewportDimension.width > pdfPageWidth) { + offset = Offset( + (tapPosition.dx > widget.viewportDimension.width / 2) + ? offset.dx + (widget.viewportDimension.width - pdfPageWidth) / 2 + : (offset.dx / 2), + offset.dy); + + offset = Offset( + ((widget.pdfViewerController.zoomLevel) > 1 + ? offset.dx + + (widget.viewportDimension.width - pdfPageWidth) / 2 + : 0.0) + .clamp( + 0, + (((widget.viewportDimension.width - pdfPageWidth) + + pdfPageWidth) / + 2) - + (widget.viewportDimension.width - pdfPageWidth) / 2), + (offset.dy - (widget.viewportDimension.height - pdfPageHeight)).clamp( + 0, + (offset.dy - (widget.viewportDimension.height - pdfPageHeight)) + .abs())); + } + + /// Calculates the offset when the viewport height is greater than the page height. + else { + if (widget.viewportDimension.height > pdfPageHeight) { + offset = Offset( + offset.dx, + (tapPosition.dy > widget.viewportDimension.height / 2) + ? offset.dy + pdfPageHeight / 2 + : (offset.dy / 2)); + } + offset = Offset( - offset.dx, - (tapPosition.dy > widget.viewportDimension.height / 2) - ? offset.dy + - (widget.viewportDimension.height - - widget - .pdfPages[widget.pdfViewerController.pageNumber]! - .pageSize - .height) / - 2 - : (offset.dy / 2)); + (offset.dx - (widget.viewportDimension.width - pdfPageWidth)).clamp( + 0, + (offset.dx - (widget.viewportDimension.width - pdfPageWidth)) + .abs()), + ((widget.pdfViewerController.zoomLevel) > 1 + ? offset.dy + greyAreaSize / 2 + : 0.0) + .clamp( + 0, + (((widget.viewportDimension.height - pdfPageHeight) + + pdfPageHeight) / + 2) - + greyAreaSize / 2)); } - offset = Offset( - (offset.dx - (widget.viewportDimension.width - totalPageOffset)).clamp( - 0, - (offset.dx - (widget.viewportDimension.width - totalPageOffset)) - .abs()), - ((widget.pdfViewerController.zoomLevel) > 1 - ? offset.dy + greyAreaSize / 2 - : 0.0) - .clamp( - 0, - (((widget.viewportDimension.height - - widget - .pdfPages[ - widget.pdfViewerController.pageNumber]! - .pageSize - .height) + - widget - .pdfPages[ - widget.pdfViewerController.pageNumber]! - .pageSize - .height) / - 2) - - greyAreaSize / 2)); setState(() { _canPanOnZoom = false; diff --git a/packages/syncfusion_flutter_pdfviewer/lib/src/pdfviewer.dart b/packages/syncfusion_flutter_pdfviewer/lib/src/pdfviewer.dart index 470e913e3..c2b747091 100644 --- a/packages/syncfusion_flutter_pdfviewer/lib/src/pdfviewer.dart +++ b/packages/syncfusion_flutter_pdfviewer/lib/src/pdfviewer.dart @@ -871,7 +871,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { PdfDocument? _document; bool _hasError = false; bool _panEnabled = true; - bool _isMobile = false; + bool _isMobileView = false; bool _isSearchStarted = false; bool _isKeyPadRaised = false; bool _isTextSelectionCleared = false; @@ -928,6 +928,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { final Map _extractedTextCollection = {}; Isolate? _textSearchIsolate; Isolate? _textExtractionIsolate; + bool _isTablet = false; /// PdfViewer theme data. SfPdfViewerThemeData? _pdfViewerThemeData; @@ -1203,7 +1204,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { } } if (widget.canShowPasswordDialog && !_isPasswordUsed) { - if (_isMobile) { + if (_isMobileView) { _checkMount(); _showPasswordDialog(); } else { @@ -1879,21 +1880,22 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { } } - /// Find whether device is mobile or Laptop. + /// Find whether device is mobile or tablet. void _findDevice(BuildContext context) { /// Standard diagonal offset of tablet. const double kPdfStandardDiagonalOffset = 1100.0; final Size size = MediaQuery.of(context).size; final double diagonal = sqrt((size.width * size.width) + (size.height * size.height)); - _isMobile = diagonal < kPdfStandardDiagonalOffset; + _isMobileView = diagonal < kPdfStandardDiagonalOffset; + _isTablet = diagonal > kPdfStandardDiagonalOffset; } /// Get the global rect of viewport region. Rect? _getViewportGlobalRect() { Rect? viewportGlobalRect; if (kIsDesktop && - !_isMobile && + !_isMobileView && ((widget.pageLayoutMode == PdfPageLayoutMode.single && _singlePageViewKey.currentContext != null) || (_pdfScrollableStateKey.currentContext != null && @@ -2058,7 +2060,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { _isOverflowed = _originalWidth![index] > // ignore: avoid_as _viewportConstraints.maxWidth as bool; - if (kIsDesktop && !_isMobile) { + if (kIsDesktop && !_isMobileView) { if (_originalWidth![index] > _maxPdfPageWidth != null) { _maxPdfPageWidth = @@ -2084,14 +2086,14 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { viewportDimension, widget.interactionMode, (kIsDesktop && - !_isMobile && + !_isMobileView && !_isOverflowed && widget.pageLayoutMode == PdfPageLayoutMode.continuous) ? _originalWidth![index] : calculatedSize.width, (kIsDesktop && - !_isMobile && + !_isMobileView && !_isOverflowed && widget.pageLayoutMode == PdfPageLayoutMode.continuous) @@ -2111,7 +2113,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { widget.currentSearchTextHighlightColor, widget.otherSearchTextHighlightColor, _textCollection, - _isMobile, + _isMobileView, _pdfViewerController._pdfTextSearchResult, _pdfScrollableStateKey, _singlePageViewKey, @@ -2129,7 +2131,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { index == _pdfViewerController.pageCount - 1 ? 0.0 : widget.pageSpacing; - if (kIsDesktop && !_isMobile && !_isOverflowed) { + if (kIsDesktop && !_isMobileView && !_isOverflowed) { _pdfPages[pageIndex] = PdfPageInfo( totalHeight, Size(_originalWidth![index], @@ -2224,7 +2226,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { widget.canShowScrollHead, widget.canShowScrollStatus, _pdfPages, - _isMobile, + _isMobileView, widget.enableDoubleTapZooming, widget.interactionMode, _isScaleEnabled, @@ -2233,6 +2235,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { _handlePdfOffsetChanged, isBookmarkViewOpen, _textDirection, + _isTablet, children), ); if (_isSinglePageViewPageChanged && @@ -2295,7 +2298,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { widget.canShowScrollStatus, widget.canShowScrollHead, _pdfViewerController, - _isMobile, + _isMobileView, _pdfDimension, _totalImageSize, viewportDimension, @@ -2422,14 +2425,14 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { : totalImageHeight / heightFactor.clamp(1, 3); _totalImageSize = Size(totalImageWidth / zoomLevel, totalImageHeight / zoomLevel); - if (_isMobile && + if (_isMobileView && !_isKeyPadRaised && childHeight > _viewportConstraints.maxHeight && (totalImageHeight / zoomLevel).floor() <= _viewportConstraints.maxHeight.floor()) { childHeight = _viewportConstraints.maxHeight; } - if (_isMobile && + if (_isMobileView && childWidth > _viewportConstraints.maxWidth && totalImageWidth / zoomLevel <= _viewportConstraints.maxWidth) { childWidth = _viewportConstraints.maxWidth; @@ -2443,7 +2446,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { } void _handlePdfPagePointerMove(PointerMoveEvent details) { - if (details.kind == PointerDeviceKind.touch && kIsDesktop && !_isMobile) { + if (details.kind == PointerDeviceKind.touch && kIsDesktop) { setState(() { _isScaleEnabled = true; }); @@ -2451,7 +2454,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { } void _handlePdfPagePointerUp(PointerUpEvent details) { - if (details.kind == PointerDeviceKind.touch && kIsDesktop && !_isMobile) { + if (details.kind == PointerDeviceKind.touch && kIsDesktop) { setState(() { _isScaleEnabled = false; }); @@ -2483,7 +2486,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { } if (!_isScaleEnabled && event.kind == PointerDeviceKind.touch && - (!kIsDesktop || _isMobile)) { + (!kIsDesktop)) { setState(() { _isScaleEnabled = true; }); @@ -2507,7 +2510,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { void _handleDoubleTap() { _checkMount(); - if (!kIsDesktop || _isMobile) { + if (!kIsDesktop || _isMobileView) { _pdfPagesKey[_pdfViewerController.pageNumber] ?.currentState ?.canvasRenderBox @@ -2516,7 +2519,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { } void _handleBookmarkViewChanged(bool hasBookmark) { - if (!kIsWeb || (kIsWeb && _isMobile)) { + if (!kIsWeb || (kIsWeb && _isMobileView)) { _checkMount(); } } @@ -2871,7 +2874,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { final double greyArea = (_singlePageViewKey.currentState?.greyAreaSize ?? 0) / 2; double heightPercentage = 1.0; - if (kIsDesktop && !_isMobile) { + if (kIsDesktop && !_isMobileView) { heightPercentage = _document!.pages[_pdfViewerController.pageNumber - 1].size.height / _pdfPages[_pdfViewerController.pageNumber]!.pageSize.height; @@ -2900,7 +2903,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { } _pdfViewerController.zoomLevel = zoomLevel; double heightPercentage = 1.0; - if (kIsDesktop && !_isMobile) { + if (kIsDesktop && !_isMobileView) { heightPercentage = _document! .pages[_pdfViewerController.pageNumber - 1].size.height / _pdfPages[_pdfViewerController.pageNumber]!.pageSize.height; @@ -3032,7 +3035,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { ).enforce(constraints); } else { if (widget.pageLayoutMode == PdfPageLayoutMode.single && - (!_isMobile || _viewportConstraints.maxWidth > newHeight)) { + (!_isMobileView || _viewportConstraints.maxWidth > newHeight)) { constraints = BoxConstraints.tightFor( height: newHeight, ).enforce(constraints); @@ -3151,7 +3154,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { .getRotatedOffset(bookmarkOffset, index - 1, pdfPage.rotation); } if (kIsDesktop && - !_isMobile && + !_isMobileView && widget.pageLayoutMode == PdfPageLayoutMode.continuous) { heightPercentage = 1.0; } @@ -3494,7 +3497,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { .topLeft; } final double heightPercentage = (kIsDesktop && - !_isMobile && + !_isMobileView && !_isOverflowed && widget.pageLayoutMode == PdfPageLayoutMode.continuous) ? 1 @@ -3502,7 +3505,7 @@ class SfPdfViewerState extends State with WidgetsBindingObserver { _pdfPages[currentInstancePageIndex]!.pageSize.height; final double widthPercentage = (kIsDesktop && - !_isMobile && + !_isMobileView && !_isOverflowed && widget.pageLayoutMode == PdfPageLayoutMode.continuous) ? 1 @@ -4350,16 +4353,16 @@ class PdfViewerController extends ChangeNotifier with _ValueChangeNotifier { /// Searches the given text in the document. /// + /// This method returns the [PdfTextSearchResult] object using which the search navigation can be performed on the instances found. + /// /// On mobile and desktop platforms, the search will be performed asynchronously /// and so the results will be returned periodically on a page-by-page basis, - /// which can be retrieved using the [addListener] method in the application. + /// which can be retrieved using the [PdfTextSearchResult.addListener] method in the application. /// /// Whereas in the web platform, the search will be performed synchronously /// and so the result will be returned only after completing the search on all the pages. /// This is since [isolate] is not supported for the web platform yet. /// - /// This method returns the [PdfTextSearchResult] object using which the search navigation can be performed on the instances found. - /// /// * searchText - required - The text to be searched in the document. /// * searchOption - optional - Defines the constants that specify the option for text search. /// diff --git a/packages/syncfusion_flutter_pdfviewer/pubspec.yaml b/packages/syncfusion_flutter_pdfviewer/pubspec.yaml index 7f7eec4c5..ef12daa8a 100644 --- a/packages/syncfusion_flutter_pdfviewer/pubspec.yaml +++ b/packages/syncfusion_flutter_pdfviewer/pubspec.yaml @@ -1,10 +1,10 @@ name: syncfusion_flutter_pdfviewer description: Flutter PDF Viewer library is used to display a PDF document seamlessly and efficiently. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_pdfviewer environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' flutter: ">=1.20.0" flutter: @@ -36,17 +36,17 @@ dependencies: uuid: ^3.0.5 intl: ^0.17.0 - syncfusion_pdfviewer_platform_interface: ^20.3.47 + syncfusion_pdfviewer_platform_interface: ^20.4.38 - syncfusion_pdfviewer_web: ^20.3.47 + syncfusion_pdfviewer_web: ^20.4.38 - syncfusion_pdfviewer_macos: ^20.3.47 + syncfusion_pdfviewer_macos: ^20.4.38 - syncfusion_pdfviewer_windows: ^20.3.47 + syncfusion_pdfviewer_windows: ^20.4.38 - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 - syncfusion_flutter_pdf: ^20.3.47 + syncfusion_flutter_pdf: ^20.4.38 url_launcher: ^6.1.0 diff --git a/packages/syncfusion_flutter_signaturepad/README.md b/packages/syncfusion_flutter_signaturepad/README.md index d8d07239c..c8407f9bf 100644 --- a/packages/syncfusion_flutter_signaturepad/README.md +++ b/packages/syncfusion_flutter_signaturepad/README.md @@ -34,15 +34,12 @@ Explore the full capability of our Flutter widgets on your device by installing

- - + +

- -

-

@@ -254,11 +251,11 @@ You can clear the signature drawn in the SignaturePad using the clear() method a ## Support and feedback -* If you have any questions, you can reach out to our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post question on our [community forums](https://www.syncfusion.com/forums) . Submit a feature request or a bug through our [feedback portal](https://www.syncfusion.com/feedback/flutter). +* If you have any questions, you can reach out to our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post question on our [community forums](https://www.syncfusion.com/forums) . Submit a feature request or a bug through our [feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew your subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at salessupport@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_signaturepad/example/pubspec.yaml b/packages/syncfusion_flutter_signaturepad/example/pubspec.yaml index c97e4126e..733431412 100644 --- a/packages/syncfusion_flutter_signaturepad/example/pubspec.yaml +++ b/packages/syncfusion_flutter_signaturepad/example/pubspec.yaml @@ -4,7 +4,7 @@ description: This project demonstrates how to use Syncfusion Flutter SignaturePa version: 1.0.0+1 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: diff --git a/packages/syncfusion_flutter_signaturepad/pubspec.yaml b/packages/syncfusion_flutter_signaturepad/pubspec.yaml index a1aa6d33b..51ad6bcbc 100644 --- a/packages/syncfusion_flutter_signaturepad/pubspec.yaml +++ b/packages/syncfusion_flutter_signaturepad/pubspec.yaml @@ -1,15 +1,15 @@ name: syncfusion_flutter_signaturepad description: The Flutter Signature Pad widget allows you to capture smooth and more realistic signatures through drawn gestures and save it as an image. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-examples environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 dev_dependencies: flutter_test: diff --git a/packages/syncfusion_flutter_sliders/CHANGELOG.md b/packages/syncfusion_flutter_sliders/CHANGELOG.md index 665fc06ee..ca8b9e725 100644 --- a/packages/syncfusion_flutter_sliders/CHANGELOG.md +++ b/packages/syncfusion_flutter_sliders/CHANGELOG.md @@ -2,6 +2,40 @@ ## Range Slider +**Bugs** + +* #FB39325 - Now, the "AnimationController methods should not be used after calling dispose" exception will no longer be thrown when dragging the range slider. + +## Slider + +**Bugs** + +* #FB39325 - Now, the "AnimationController methods should not be used after calling dispose" exception will no longer be thrown when dragging the slider. + +## [20.3.59] - 11/29/2022 + +## Range Selector + +**Bugs** + +* Now, the range selector thumb vertical and horizontal dragging works properly when you wrap it inside the scrollable widget. + +## Range Slider + +**Bugs** + +* Now, the range slider thumb vertical and horizontal dragging works properly when you wrap it inside the scrollable widget. + +## Slider + +**Bugs** + +* Now, the slider thumb vertical and horizontal dragging works properly when you wrap it inside the scrollable widget. + +## [20.3.47] - 09/29/2022 + +## Range Slider + **Bug** * #FB37062 - Now, the discrete RangeSlider thumbs get overlapped when placed inside a Row widget. diff --git a/packages/syncfusion_flutter_sliders/README.md b/packages/syncfusion_flutter_sliders/README.md index fb06f6eeb..730a16f71 100644 --- a/packages/syncfusion_flutter_sliders/README.md +++ b/packages/syncfusion_flutter_sliders/README.md @@ -83,15 +83,12 @@ Explore the full capability of our Flutter widgets on your device by installing

- - + +

- -

-

@@ -389,11 +386,11 @@ The following screenshot illustrates the result of the above code sample. ## Support and Feedback -* For any other queries, reach our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For any other queries, reach our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew the subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at salessupport@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_sliders/example/ios/Flutter/Debug.xcconfig b/packages/syncfusion_flutter_sliders/example/ios/Flutter/Debug.xcconfig index e8efba114..592ceee85 100644 --- a/packages/syncfusion_flutter_sliders/example/ios/Flutter/Debug.xcconfig +++ b/packages/syncfusion_flutter_sliders/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/syncfusion_flutter_sliders/example/lib/main.dart b/packages/syncfusion_flutter_sliders/example/lib/main.dart index ed6ed2164..b5803fbb8 100644 --- a/packages/syncfusion_flutter_sliders/example/lib/main.dart +++ b/packages/syncfusion_flutter_sliders/example/lib/main.dart @@ -31,20 +31,20 @@ class _MyHomePageState extends State { _MyHomePageState(); final List _chartData = [ - Data(x: DateTime(2003), y: 3.4), - Data(x: DateTime(2004), y: 2.8), - Data(x: DateTime(2005), y: 1.6), - Data(x: DateTime(2006), y: 2.3), - Data(x: DateTime(2007), y: 2.5), - Data(x: DateTime(2008), y: 2.9), - Data(x: DateTime(2009), y: 3.8), - Data(x: DateTime(2010), y: 2.0), + Data(x: DateTime(2003, 01, 01), y: 3.4), + Data(x: DateTime(2004, 01, 01), y: 2.8), + Data(x: DateTime(2005, 01, 01), y: 1.6), + Data(x: DateTime(2006, 01, 01), y: 2.3), + Data(x: DateTime(2007, 01, 01), y: 2.5), + Data(x: DateTime(2008, 01, 01), y: 2.9), + Data(x: DateTime(2009, 01, 01), y: 3.8), + Data(x: DateTime(2010, 01, 01), y: 2.0), ]; - final DateTime _dateMin = DateTime(2003); - final DateTime _dateMax = DateTime(2010); + final DateTime _dateMin = DateTime(2003, 01, 01); + final DateTime _dateMax = DateTime(2010, 01, 01); final SfRangeValues _dateValues = - SfRangeValues(DateTime(2005), DateTime(2008)); + SfRangeValues(DateTime(2005, 01, 01), DateTime(2008, 01, 01)); @override Widget build(BuildContext context) { @@ -72,7 +72,6 @@ class _MyHomePageState extends State { showTicks: true, showLabels: true, child: SizedBox( - height: 200, child: SfCartesianChart( margin: EdgeInsets.zero, primaryXAxis: DateTimeAxis( @@ -88,6 +87,7 @@ class _MyHomePageState extends State { yValueMapper: (Data sales, int index) => sales.y) ], ), + height: 200, ), ), ), diff --git a/packages/syncfusion_flutter_sliders/example/pubspec.yaml b/packages/syncfusion_flutter_sliders/example/pubspec.yaml index 7c20ca4bc..74d6d0a61 100644 --- a/packages/syncfusion_flutter_sliders/example/pubspec.yaml +++ b/packages/syncfusion_flutter_sliders/example/pubspec.yaml @@ -14,15 +14,15 @@ description: A new Flutter project. version: 1.0.0+1 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter intl: ^0.17.0 - syncfusion_flutter_sliders: ^20.3.47 - syncfusion_flutter_charts: ^20.3.47 + syncfusion_flutter_sliders: ^19.1.54-beta + syncfusion_flutter_charts: ^19.1.54 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. diff --git a/packages/syncfusion_flutter_sliders/lib/src/range_selector.dart b/packages/syncfusion_flutter_sliders/lib/src/range_selector.dart index da81a7d4a..88740c629 100644 --- a/packages/syncfusion_flutter_sliders/lib/src/range_selector.dart +++ b/packages/syncfusion_flutter_sliders/lib/src/range_selector.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'dart:math' as math; import 'package:flutter/foundation.dart'; +import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:intl/intl.dart' show DateFormat, NumberFormat; @@ -1899,6 +1900,7 @@ class _RangeSelectorRenderObjectWidget extends RenderObjectWidget { textDirection: Directionality.of(context), mediaQueryData: MediaQuery.of(context), state: state, + gestureSettings: MediaQuery.of(context).gestureSettings, ); } @@ -2083,6 +2085,7 @@ class _RenderRangeSelector extends RenderBaseRangeSlider { required TextDirection textDirection, required MediaQueryData mediaQueryData, required _SfRangeSelectorState state, + required DeviceGestureSettings gestureSettings, }) : _state = state, _isEnabled = enabled, _deferUpdateDelay = deferUpdateDelay, @@ -2124,7 +2127,8 @@ class _RenderRangeSelector extends RenderBaseRangeSlider { sliderType: SliderType.horizontal, tooltipPosition: null, textDirection: textDirection, - mediaQueryData: mediaQueryData) { + mediaQueryData: mediaQueryData, + gestureSettings: gestureSettings) { _inactiveRegionColor = rangeSelectorThemeData.inactiveRegionColor!; _activeRegionColor = rangeSelectorThemeData.activeRegionColor!; } diff --git a/packages/syncfusion_flutter_sliders/lib/src/range_slider.dart b/packages/syncfusion_flutter_sliders/lib/src/range_slider.dart index ea6292e5a..3d5a03cb0 100644 --- a/packages/syncfusion_flutter_sliders/lib/src/range_slider.dart +++ b/packages/syncfusion_flutter_sliders/lib/src/range_slider.dart @@ -1,5 +1,6 @@ import 'dart:math' as math; import 'package:flutter/foundation.dart'; +import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:intl/intl.dart' show DateFormat, NumberFormat; @@ -1777,6 +1778,7 @@ class _RangeSliderRenderObjectWidget extends RenderObjectWidget { textDirection: Directionality.of(context), mediaQueryData: MediaQuery.of(context), state: state, + gestureSettings: MediaQuery.of(context).gestureSettings, ); } @@ -1956,46 +1958,49 @@ class _RenderRangeSlider extends RenderBaseRangeSlider { required TextDirection textDirection, required MediaQueryData mediaQueryData, required _SfRangeSliderState state, + required DeviceGestureSettings gestureSettings, }) : _state = state, _onChanged = onChanged, _semanticFormatterCallback = semanticFormatterCallback, super( - min: min, - max: max, - values: values, - onChangeStart: onChangeStart, - onChangeEnd: onChangeEnd, - interval: interval, - stepSize: stepSize, - stepDuration: stepDuration, - minorTicksPerInterval: minorTicksPerInterval, - showTicks: showTicks, - showLabels: showLabels, - showDividers: showDividers, - enableTooltip: enableTooltip, - shouldAlwaysShowTooltip: shouldAlwaysShowTooltip, - enableIntervalSelection: enableIntervalSelection, - dragMode: dragMode, - isInversed: isInversed, - labelPlacement: labelPlacement, - edgeLabelPlacement: edgeLabelPlacement, - numberFormat: numberFormat, - dateFormat: dateFormat, - dateIntervalType: dateIntervalType, - labelFormatterCallback: labelFormatterCallback, - tooltipTextFormatterCallback: tooltipTextFormatterCallback, - trackShape: trackShape, - dividerShape: dividerShape, - overlayShape: overlayShape, - thumbShape: thumbShape, - tickShape: tickShape, - minorTickShape: minorTickShape, - tooltipShape: tooltipShape, - sliderThemeData: sliderThemeData, - sliderType: sliderType, - tooltipPosition: tooltipPosition, - textDirection: textDirection, - mediaQueryData: mediaQueryData); + min: min, + max: max, + values: values, + onChangeStart: onChangeStart, + onChangeEnd: onChangeEnd, + interval: interval, + stepSize: stepSize, + stepDuration: stepDuration, + minorTicksPerInterval: minorTicksPerInterval, + showTicks: showTicks, + showLabels: showLabels, + showDividers: showDividers, + enableTooltip: enableTooltip, + shouldAlwaysShowTooltip: shouldAlwaysShowTooltip, + enableIntervalSelection: enableIntervalSelection, + dragMode: dragMode, + isInversed: isInversed, + labelPlacement: labelPlacement, + edgeLabelPlacement: edgeLabelPlacement, + numberFormat: numberFormat, + dateFormat: dateFormat, + dateIntervalType: dateIntervalType, + labelFormatterCallback: labelFormatterCallback, + tooltipTextFormatterCallback: tooltipTextFormatterCallback, + trackShape: trackShape, + dividerShape: dividerShape, + overlayShape: overlayShape, + thumbShape: thumbShape, + tickShape: tickShape, + minorTickShape: minorTickShape, + tooltipShape: tooltipShape, + sliderThemeData: sliderThemeData, + sliderType: sliderType, + tooltipPosition: tooltipPosition, + textDirection: textDirection, + mediaQueryData: mediaQueryData, + gestureSettings: gestureSettings, + ); final _SfRangeSliderState _state; diff --git a/packages/syncfusion_flutter_sliders/lib/src/range_slider_base.dart b/packages/syncfusion_flutter_sliders/lib/src/range_slider_base.dart index 751213838..8c70e9795 100644 --- a/packages/syncfusion_flutter_sliders/lib/src/range_slider_base.dart +++ b/packages/syncfusion_flutter_sliders/lib/src/range_slider_base.dart @@ -57,6 +57,7 @@ abstract class RenderBaseRangeSlider extends RenderBaseSlider required TextDirection textDirection, required MediaQueryData mediaQueryData, required bool isInversed, + required DeviceGestureSettings gestureSettings, }) : _values = values!, _dragMode = dragMode, _enableIntervalSelection = enableIntervalSelection, @@ -99,7 +100,8 @@ abstract class RenderBaseRangeSlider extends RenderBaseSlider ..onStart = _onDragStart ..onUpdate = _onDragUpdate ..onEnd = _onDragEnd - ..onCancel = _onDragCancel; + ..onCancel = _onDragCancel + ..gestureSettings = gestureSettings; } if (sliderType == SliderType.vertical) { verticalDragGestureRecognizer = VerticalDragGestureRecognizer() @@ -107,7 +109,8 @@ abstract class RenderBaseRangeSlider extends RenderBaseSlider ..onStart = _onVerticalDragStart ..onUpdate = _onVerticalDragUpdate ..onEnd = _onVerticalDragEnd - ..onCancel = _onVerticalDragCancel; + ..onCancel = _onVerticalDragCancel + ..gestureSettings = gestureSettings; } tapGestureRecognizer = TapGestureRecognizer() ..team = team @@ -1088,6 +1091,14 @@ abstract class RenderBaseRangeSlider extends RenderBaseSlider super.detach(); } + @override + void dispose() { + horizontalDragGestureRecognizer?.dispose(); + verticalDragGestureRecognizer?.dispose(); + tapGestureRecognizer.dispose(); + super.dispose(); + } + @override MouseCursor get cursor => MouseCursor.defer; diff --git a/packages/syncfusion_flutter_sliders/lib/src/slider.dart b/packages/syncfusion_flutter_sliders/lib/src/slider.dart index ad7d2557d..01db3d25f 100644 --- a/packages/syncfusion_flutter_sliders/lib/src/slider.dart +++ b/packages/syncfusion_flutter_sliders/lib/src/slider.dart @@ -1585,7 +1585,8 @@ class _SliderRenderObjectWidget extends RenderObjectWidget { tooltipPosition: tooltipPosition, textDirection: Directionality.of(context), mediaQueryData: MediaQuery.of(context), - state: state); + state: state, + gestureSettings: MediaQuery.of(context).gestureSettings); } @override @@ -1753,6 +1754,7 @@ class _RenderSlider extends RenderBaseSlider implements MouseTrackerAnnotation { required TextDirection textDirection, required MediaQueryData mediaQueryData, required _SfSliderState state, + required DeviceGestureSettings gestureSettings, }) : _state = state, _value = value, _semanticFormatterCallback = semanticFormatterCallback, @@ -1797,7 +1799,8 @@ class _RenderSlider extends RenderBaseSlider implements MouseTrackerAnnotation { ..onStart = _onDragStart ..onUpdate = _onDragUpdate ..onEnd = _onDragEnd - ..onCancel = _onDragCancel; + ..onCancel = _onDragCancel + ..gestureSettings = gestureSettings; } if (sliderType == SliderType.vertical) { @@ -1806,7 +1809,8 @@ class _RenderSlider extends RenderBaseSlider implements MouseTrackerAnnotation { ..onStart = _onVerticalDragStart ..onUpdate = _onVerticalDragUpdate ..onEnd = _onVerticalDragEnd - ..onCancel = _onVerticalDragCancel; + ..onCancel = _onVerticalDragCancel + ..gestureSettings = gestureSettings; } tapGestureRecognizer = TapGestureRecognizer() @@ -2160,6 +2164,14 @@ class _RenderSlider extends RenderBaseSlider implements MouseTrackerAnnotation { } } + @override + void dispose() { + horizontalDragGestureRecognizer?.dispose(); + verticalDragGestureRecognizer?.dispose(); + tapGestureRecognizer.dispose(); + super.dispose(); + } + @override MouseCursor get cursor => MouseCursor.defer; diff --git a/packages/syncfusion_flutter_sliders/pubspec.yaml b/packages/syncfusion_flutter_sliders/pubspec.yaml index 7ae0a47cd..d2ccd9179 100644 --- a/packages/syncfusion_flutter_sliders/pubspec.yaml +++ b/packages/syncfusion_flutter_sliders/pubspec.yaml @@ -1,10 +1,10 @@ name: syncfusion_flutter_sliders description: A Flutter Sliders library for creating highly customizable and UI-rich slider, range slider, and range selector widgets for filtering purposes. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_sliders environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: @@ -12,7 +12,7 @@ dependencies: intl: ">=0.15.0 <0.20.0" - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 dev_dependencies: flutter_test: diff --git a/packages/syncfusion_flutter_treemap/README.md b/packages/syncfusion_flutter_treemap/README.md index 8969937eb..884167c4d 100644 --- a/packages/syncfusion_flutter_treemap/README.md +++ b/packages/syncfusion_flutter_treemap/README.md @@ -78,15 +78,12 @@ Explore the full capability of our Flutter widgets on your device by installing

- - + +

- -

-

@@ -252,11 +249,11 @@ The following screenshot illustrates the result of the above code sample. ## Support and feedback -* For questions, reach out to our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post them through the [Community forums](https://www.syncfusion.com/forums). Submit a feature request or a bug in our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For questions, reach out to our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post them through the [Community forums](https://www.syncfusion.com/forums). Submit a feature request or a bug in our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew your subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at sales@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to-deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to-deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_treemap/example/pubspec.yaml b/packages/syncfusion_flutter_treemap/example/pubspec.yaml index cf800724f..5fa443f5d 100644 --- a/packages/syncfusion_flutter_treemap/example/pubspec.yaml +++ b/packages/syncfusion_flutter_treemap/example/pubspec.yaml @@ -14,7 +14,7 @@ description: A new Flutter project. version: 1.0.0+1 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: diff --git a/packages/syncfusion_flutter_treemap/pubspec.yaml b/packages/syncfusion_flutter_treemap/pubspec.yaml index 928ba4a4d..2e1f23380 100644 --- a/packages/syncfusion_flutter_treemap/pubspec.yaml +++ b/packages/syncfusion_flutter_treemap/pubspec.yaml @@ -1,16 +1,16 @@ name: syncfusion_flutter_treemap description: A Flutter Treemap library for creating interactive treemap to visualize flat and hierarchical data based on squarified, slice, and dice algorithms. -version: 20.3.47-beta +version: 20.4.38-beta homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_treemap environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 dev_dependencies: flutter_test: diff --git a/packages/syncfusion_flutter_xlsio/CHANGELOG.md b/packages/syncfusion_flutter_xlsio/CHANGELOG.md index 6fc0ce36f..47d3c2065 100644 --- a/packages/syncfusion_flutter_xlsio/CHANGELOG.md +++ b/packages/syncfusion_flutter_xlsio/CHANGELOG.md @@ -1,10 +1,3 @@ -## Unreleased - -**Features** - -* Provided support to export the Excel data as a CSV document. -* Provided support to show/hide worksheets, move worksheets, and set tab color for the worksheets. - ## [19.2.44-beta] - 06/30/2021 **Features** diff --git a/packages/syncfusion_flutter_xlsio/README.md b/packages/syncfusion_flutter_xlsio/README.md index e770604fa..50910e978 100644 --- a/packages/syncfusion_flutter_xlsio/README.md +++ b/packages/syncfusion_flutter_xlsio/README.md @@ -53,15 +53,12 @@ Explore the full capability of our Flutter widgets on your device by installing

- - + +

- -

-

@@ -637,11 +634,11 @@ workbook.dispose(); ## Support and feedback -* For any other queries, contact our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post the queries through the [Community forums](https://www.syncfusion.com/forums). You can also submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For any other queries, contact our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post the queries through the [Community forums](https://www.syncfusion.com/forums). You can also submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew the subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at sales@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to-deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to-deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_flutter_xlsio/example/pubspec.yaml b/packages/syncfusion_flutter_xlsio/example/pubspec.yaml index 494339b5c..dc641cdac 100644 --- a/packages/syncfusion_flutter_xlsio/example/pubspec.yaml +++ b/packages/syncfusion_flutter_xlsio/example/pubspec.yaml @@ -2,7 +2,7 @@ name: xlsio_example description: Demo for creating a Excel file using syncfusion_flutter_xlsio package. environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: diff --git a/packages/syncfusion_flutter_xlsio/lib/src/xlsio/general/enums.dart b/packages/syncfusion_flutter_xlsio/lib/src/xlsio/general/enums.dart index ccc915d73..037e21a93 100644 --- a/packages/syncfusion_flutter_xlsio/lib/src/xlsio/general/enums.dart +++ b/packages/syncfusion_flutter_xlsio/lib/src/xlsio/general/enums.dart @@ -50,20 +50,47 @@ enum CellType { /// Specifies the line style for the cell border. enum LineStyle { - /// Thin line. + /// Specifies the thin line style for the cell border. thin, - /// Thick line. + /// Specifies the thick line style for the cell border. thick, - /// Medium line. + /// Specifies the medium line style for the cell border. medium, - /// No line. + /// Specifies the none line style for the cell border. none, - /// double line. - double + /// Specifies the double line style for the cell border. + double, + + /// Specifies the dotted line style for the cell border. + dotted, + + /// Specifies the dashed line style for the cell border. + dashed, + + ///Specifies the hair line style for the cell border + hair, + + ///Specifies the mediumDashed line style for the cell border. + mediumDashed, + + ///Specifies the dashDot line style for the cell border. + dashDot, + + ///Specifies the mediumDashDot line style for the cell border. + mediumDashDot, + + ///Specifies the dashDotDot line style for the cell border. + dashDotDot, + + ///Specifies the mediumDashDotDot line style for the cell border. + mediumDashDotDot, + + ///Specifies the slantedDashDot line style for the cell border. + slantDashDot } /// Possible format types. @@ -1154,3 +1181,266 @@ enum WorksheetVisibility { ///Worksheet is hidden to the user. hidden } + +///Enumeration of page order for sheet in Excel. +enum ExcelPageOrder { + ///Represents Down, then over setting. + downThenOver, + + ///Represents Over, then down setting. + overThenDown +} + +///Enumeration of page orientation types in Excel. +enum ExcelPageOrientation { + ///Represents landscape orientation. + landscape, + + ///Represents portrait orientation. + portrait +} + +///Enumeration of paper size types in Excel. +enum ExcelPaperSize { + /// Represents paper size of 10 inches X 14 inches + paper10x14, + + ///Represents paper size of 11 inches X 17 inches + paper11x17, + + ///Represents A3 (297 mm x 420 mm) paper size. + paperA3, + + ///Represents A4 (210 mm x 297 mm) paper size. + paperA4, + + ///Represents A4 Small (210 mm x 297 mm) paper size. + paperA4Small, + + ///Represents A5 (148 mm x 210 mm) paper size. + paperA5, + + ///Represents B4 (250 mm x 353 mm) paper size. + paperB4, + + ///Represents B5 (176 mm x 250 mm) paper size. + paperB5, + + ///Represents C paper size. + paperCsheet, + + ///Represents D paper size. + paperDsheet, + + ///Represents Envelope# 10 paper size(4-1/8 X 9-1/2 inches). + paperEnvelope10, + + ///Represents Envelope# 11 paper size( (4-1/2 X 10-3/8 inches). + paperEnvelope11, + + ///Represents Envelope# 12 paper size(4-3/4 X 11 inches). + paperEnvelope12, + + ///Represents Envelope# 14 paper size(5 X 11-1/2 inches). + paperEnvelope14, + + ///Represents Envelope# 9 paper size(3-7/8 X 8-7/8 inches). + paperEnvelope9, + + ///Represents B4 Envelope paper size (250 mm x 353 mm). + paperEnvelopeB4, + + ///Represents B5 Envelope paper size (176 mm x 250 mm). + paperEnvelopeB5, + + ///Represents B6 Envelope paper size (176 mm x 125 mm). + paperEnvelopeB6, + + ///Represents C3 Envelope paper size (324 mm x 458 mm). + paperEnvelopeC3, + + ///Represents C4 Envelope paper size (229 mm x 324 mm). + paperEnvelopeC4, + + ///Represents C5 Envelope paper size (162 mm x 229 mm). + paperEnvelopeC5, + + ///Represents C6 Envelope paper size (114 mm x 162 mm). + paperEnvelopeC6, + + ///Represents C65 Envelope paper size (114 mm x 229 mm). + paperEnvelopeC65, + + ///Represents DL Envelope paper size (110 mm x 220 mm). + paperEnvelopeDL, + + ///Represents Italy Envelope paper size (110 mm x 230 mm). + paperEnvelopeItaly, + + ///Represents Monarch Envelope paper size (3-7/8 X 7-1/2 inches). + paperEnvelopeMonarch, + + ///Represents Personal Envelope paper size (3-5/8 X 6-1/2 inches). + paperEnvelopePersonal, + + ///Represents E paper size. + paperEsheet, + + ///Represents Executive paper size (7-1/2 X 10-1/2 inches). + paperExecutive, + + ///Represents German Fanfold paper size (8-1/2 X 13 inches). + paperFanfoldLegalGerman, + + ///Represents German Standard Fanfold paper size (8-1/2 X 12 inches). + paperFanfoldStdGerman, + + ///Represents U.S. Standard Fanfold paper size (14-7/8 X 11 inches). + paperFanfoldUS, + + ///Represents Folio paper size (8-1/2 X 13 inches). + paperFolio, + + ///Represents Ledger paper size (17 X 11 inches). + paperLedger, + + ///Represents Legal paper size (8-1/2 X 14 inches). + paperLegal, + + ///Represents Letter paper size (8-1/2 X 11 inches). + paperLetter, + + ///Represents Letter Small paper size. + paperLetterSmall, + + ///Represents Note paper size. + paperNote, + + ///Represents Quarto paper size(215 mm x 275 mm). + paperQuarto, + + ///Represents Statement paper size(5-1/2 X 8-1/2 inches). + paperStatement, + + ///Represents Tabloid paper size(11 X 17 inches). + paperTabloid, + + ///Represents User paper size. + paperUser, + + /// Represents ISO B4 paper size(250 mm by 353 mm). + iSOB4, + + /// Represents Japanese double postcard(200 mm by 148 mm). + japaneseDoublePostcard, + + /// Represents Standard paper(9 in. by 11 in.). + standardPaper9By11, + + /// Represents Standard paper(10 in. by 11 in.). + standardPaper10By11, + + /// Represents Standard paper(15 in. by 11 in.). + standardPaper15By11, + + /// Represents Invite envelope (220 mm by 220 mm). + inviteEnvelope, + + /// Represents Letter extra paper (9.275 in. by 12 in.). + letterExtraPaper9275By12, + + /// Represents Legal extra paper (9.275 in. by 15 in.). + legalExtraPaper9275By15, + + /// Represents Tabloid extra paper (11.69 in. by 18 in.). + tabloidExtraPaper, + + /// Represents A4 extra paper (236 mm by 322 mm). + a4ExtraPaper, + + /// Represents Letter transverse paper (8.275 in. by 11 in.). + letterTransversePaper, + + /// Represents A4 transverse paper (210 mm by 297 mm). + a4TransversePaper, + + /// Represents Letter extra transverse paper (9.275 in. by 12 in.). + letterExtraTransversePaper, + + /// Represents SuperA/SuperA/A4 paper (227 mm by 356 mm). + superASuperAA4Paper, + + /// Represents SuperB/SuperB/A3 paper (305 mm by 487 mm). + superBSuperBA3Paper, + + /// Represents Letter plus paper (8.5 in. by 12.69 in.). + letterPlusPaper, + + /// Represents A4 plus paper (210 mm by 330 mm). + a4PlusPaper, + + /// Represents A5 transverse paper (148 mm by 210 mm). + a5TransversePaper, + + /// Represents JIS B5 transverse paper (182 mm by 257 mm). + jISB5TransversePaper, + + /// Represents A3 extra paper (322 mm by 445 mm). + a3ExtraPaper, + + /// Represents A5 extra paper (174 mm by 235 mm). + a5ExtraPpaper, + + /// Represents ISO B5 extra paper (201 mm by 276 mm). + iSOB5ExtraPaper, + + /// Represents A2 paper (420 mm by 594 mm). + a2Paper, + + /// Represents A3 transverse paper (297 mm by 420 mm). + a3TransversePaper, + + /// Represents A3 extra transverse paper (322 mm by 445 mm). + a3ExtraTransversePaper +} + +///Enumeration of Replace Error Values when printing in Excel. +enum CellErrorPrintOptions { + ///Prints cell errors as blank. + blank, + + ///Prints cell errors as dash(--). + dash, + + ///Prints the displayed cell text for errors. + displayed, + + ///Prints cell errors as #N/A + notAvailable +} + +/// Possible values for active pane. +enum _ActivePane { + /// Bottom left pane, when both vertical and horizontal splits are applied. + /// This value is also used when only a horizontal split has been applied, + /// dividing the pane into upper and lower regions. In that case, this value + /// specifies the bottom pane. + bottomLeft, + + /// Bottom right pane, when both vertical and horizontal splits are applied. + bottomRight, + + /// Top left pane, when both vertical and horizontal splits are applied. + /// This value is also used when only a horizontal split has been applied, + /// dividing the pane into upper and lower regions. In that case, this value + /// specifies the top pane. This value is also used when only a vertical split + /// has been applied, dividing the pane into right and left regions.In that + /// case, this value specifies the left pane. + topLeft, + + /// Top right pane, when both vertical and horizontal splits are applied. + /// This value is also used when only a vertical split has been applied, + /// dividing the pane into right and left regions. In that case, this + /// value specifies the right pane. + topRight +} diff --git a/packages/syncfusion_flutter_xlsio/lib/src/xlsio/general/serialize_workbook.dart b/packages/syncfusion_flutter_xlsio/lib/src/xlsio/general/serialize_workbook.dart index 316d21af3..0254d586e 100644 --- a/packages/syncfusion_flutter_xlsio/lib/src/xlsio/general/serialize_workbook.dart +++ b/packages/syncfusion_flutter_xlsio/lib/src/xlsio/general/serialize_workbook.dart @@ -112,12 +112,44 @@ class SerializeWorkbook { }); } }); + final List list = _workbook.innerNamesCollection; + if (list.isNotEmpty) { + builder.element('definedNames', nest: () { + for (int i = 0; i < list.length; i++) { + builder.element('definedName', nest: () { + builder.attribute('name', list[i].name); + builder.attribute('comment', list[i].description); + if (list[i].isLocal) { + builder.attribute( + 'localSheetId', + _getLocalSheetIndex(_workbook, list[i]).toString(), + ); + } + if (!list[i].isVisible) { + builder.attribute('hidden', '1'); + } + builder.text(list[i].value); + }); + } + }); + } }); final String stringXml = builder.buildDocument().toString(); final List bytes = utf8.encode(stringXml); _addToArchive(bytes, 'xl/workbook.xml'); } + /// Get local sSheet id. + int _getLocalSheetIndex(Workbook workbook, Name list) { + int result = -1; + for (int i = 0; i < workbook.worksheets.count; i++) { + if (workbook.worksheets[i].name == list.scope) { + result = i; + } + } + return result; + } + /// Serializes workbook protection options. void _serializeWorkbookProtection(XmlBuilder builder) { if (_workbook._bWindowProtect || _workbook._bCellProtect) { @@ -205,19 +237,21 @@ class SerializeWorkbook { builder.attribute('xmlns:mc', 'http://schemas.openxmlformats.org/markup-compatibility/2006'); - if (!sheet._isSummaryRowBelow) { - builder.element('sheetPr', nest: () { + builder.element('sheetPr', nest: () { + if (!sheet._isSummaryRowBelow) { builder.element('OutlinePr', nest: () { builder.attribute('summaryBelow', '0'); }); - }); - } else { - builder.element('sheetPr', nest: () { - if (sheet._isTapColorApplied) { - _serializeTabColor(sheet, builder); - } - }); - } + } + if (sheet.pageSetup.isFitToPage) { + builder.element('pageSetUpPr', nest: () { + builder.attribute('fitToPage', '1'); + }); + } + if (sheet._isTapColorApplied) { + _serializeTabColor(sheet, builder); + } + }); _saveSheetView(sheet, builder); builder.element('sheetFormatPr', nest: () { builder.attribute('defaultRowHeight', sheet._standardHeight.toString()); @@ -397,20 +431,36 @@ class SerializeWorkbook { _serializeConditionalFormatting(builder, sheet); _serializeDataValidations(builder, sheet); _serializeHyperlinks(builder, sheet); - builder.element('pageMargins', nest: () { - builder.attribute('left', '0.75'); - builder.attribute('right', '0.75'); - builder.attribute('top', '1'); - builder.attribute('bottom', '1'); - builder.attribute('header', '0.5'); - builder.attribute('footer', '0.5'); - }); + if (sheet.pageSetup.showGridlines || + sheet.pageSetup.showHeadings || + sheet.pageSetup.isCenterHorizontally || + sheet.pageSetup.isCenterVertically) { + _serializePrintOptions(builder, sheet); + } + _validatePageMargins(sheet); + _serializePageMargins(builder, sheet); + + if (sheet.pageSetup.order == ExcelPageOrder.overThenDown || + sheet.pageSetup.orientation == ExcelPageOrientation.landscape || + sheet.pageSetup.printErrors != CellErrorPrintOptions.displayed || + sheet.pageSetup.isBlackAndWhite || + sheet.pageSetup.isDraft || + (sheet.pageSetup.printQuality != 0 && + sheet.pageSetup.printQuality != 600) || + !sheet.pageSetup.autoFirstPageNumber || + sheet.pageSetup.fitToPagesWide > 1 || + sheet.pageSetup.fitToPagesTall > 1 || + sheet.pageSetup.firstPageNumber != 1 || + sheet.pageSetup.paperSize != ExcelPaperSize.paperA4) { + _serializePageSetup(builder, sheet); + } builder.element('headerFooter', nest: () { builder.attribute('scaleWithDoc', '1'); builder.attribute('alignWithMargins', '0'); builder.attribute('differentFirst', '0'); builder.attribute('differentOddEven', '0'); }); + if ((sheet.pictures.count > 0) || (sheet.charts != null && sheet.chartCount > 0)) { _workbook._drawingCount++; @@ -454,6 +504,342 @@ class SerializeWorkbook { _addToArchive(bytes, 'xl/worksheets/sheet${index + 1}.xml'); } + /// Serializes worksheet printOptions + void _serializePrintOptions(XmlBuilder builder, Worksheet sheet) { + builder.element('printOptions', nest: () { + if (sheet.pageSetup.isCenterHorizontally) { + builder.attribute('horizontalCentered', '1'); + } + if (sheet.pageSetup.isCenterVertically) { + builder.attribute('verticalCentered', '1'); + } + if (sheet.pageSetup.showHeadings) { + builder.attribute('headings', '1'); + } + if (sheet.pageSetup.showGridlines) { + builder.attribute('gridLines', '1'); + } + }); + } + + /// Validate whether Page margins are fit into the Page + void _validatePageMargins(Worksheet sheet) { + if ((sheet.pageSetup as _PageSetupImpl) + ._paperHight + .containsKey(sheet.pageSetup.paperSize) && + (sheet.pageSetup as _PageSetupImpl) + ._paperWidth + .containsKey(sheet.pageSetup.paperSize)) { + final double maxHight = + sheet.pageSetup.topMargin + sheet.pageSetup.bottomMargin; + final double maxWidth = + sheet.pageSetup.leftMargin + sheet.pageSetup.rightMargin; + (sheet.pageSetup as _PageSetupImpl) + ._paperHight + .forEach((ExcelPaperSize key, double value) { + if (sheet.pageSetup.paperSize == key) { + if (maxHight > value) { + throw Exception( + 'Top Margin and Bottom Margin size exceeds the allowed size'); + } + } + }); + (sheet.pageSetup as _PageSetupImpl) + ._paperWidth + .forEach((ExcelPaperSize key, double value) { + if (sheet.pageSetup.paperSize == key) { + if (maxWidth > value) { + throw Exception( + 'Left Margin and Right Margin size exceeds the allowed size'); + } + } + }); + } + } + + /// Serializes pageMargins + void _serializePageMargins(XmlBuilder builder, Worksheet sheet) { + builder.element('pageMargins', nest: () { + builder.attribute('left', sheet.pageSetup.leftMargin.toString()); + builder.attribute('right', sheet.pageSetup.rightMargin.toString()); + builder.attribute('top', sheet.pageSetup.topMargin.toString()); + builder.attribute('bottom', sheet.pageSetup.bottomMargin.toString()); + builder.attribute('header', sheet.pageSetup.headerMargin.toString()); + builder.attribute('footer', sheet.pageSetup.footerMargin.toString()); + }); + } + + /// Serialize pageSetup + void _serializePageSetup(XmlBuilder builder, Worksheet sheet) { + builder.element('pageSetup', nest: () { + _serializePaperSize(builder, sheet); + + if (sheet.pageSetup.firstPageNumber != 1) { + builder.attribute( + 'firstPageNumber', sheet.pageSetup.firstPageNumber.toString()); + } + if (sheet.pageSetup.fitToPagesWide > 1) { + builder.attribute( + 'fitToWidth', sheet.pageSetup.fitToPagesWide.toString()); + } + if (sheet.pageSetup.fitToPagesTall > 1) { + builder.attribute( + 'fitToHeight', sheet.pageSetup.fitToPagesTall.toString()); + } + if (sheet.pageSetup.order == ExcelPageOrder.overThenDown) { + builder.attribute('pageOrder', 'overThenDown'); + } + if (sheet.pageSetup.orientation == ExcelPageOrientation.landscape) { + builder.attribute('orientation', 'landscape'); + } else { + builder.attribute('orientation', 'portrait'); + } + if (sheet.pageSetup.isBlackAndWhite) { + builder.attribute('blackAndWhite', '1'); + } + if (sheet.pageSetup.isDraft) { + builder.attribute('draft', '1'); + } + if (!sheet.pageSetup.autoFirstPageNumber) { + builder.attribute('useFirstPageNumber', '1'); + } + if (sheet.pageSetup.printErrors != CellErrorPrintOptions.displayed) { + switch (sheet.pageSetup.printErrors) { + case CellErrorPrintOptions.blank: + builder.attribute('errors', 'blank'); + break; + case CellErrorPrintOptions.dash: + builder.attribute('errors', 'dash'); + break; + case CellErrorPrintOptions.notAvailable: + builder.attribute('errors', 'NA'); + break; + case CellErrorPrintOptions.displayed: + break; + } + } + if (sheet.pageSetup.printQuality != 0 && + sheet.pageSetup.printQuality != 600) { + if (sheet.pageSetup.printQuality <= 38528) { + builder.attribute( + 'horizontalDpi', sheet.pageSetup.printQuality.toString()); + builder.attribute( + 'verticalDpi', sheet.pageSetup.printQuality.toString()); + } else { + builder.attribute('horizontalDpi', '38528'); + builder.attribute('verticalDpi', '38528'); + } + } + }); + } + + /// Serialize paperSize + void _serializePaperSize(XmlBuilder builder, Worksheet sheet) { + switch (sheet.pageSetup.paperSize) { + case ExcelPaperSize.a2Paper: + builder.attribute('paperSize', '66'); + break; + case ExcelPaperSize.paperDsheet: + builder.attribute('paperSize', '25'); + break; + case ExcelPaperSize.paperEnvelope10: + builder.attribute('paperSize', '20'); + break; + case ExcelPaperSize.paperEnvelope11: + builder.attribute('paperSize', '21'); + break; + case ExcelPaperSize.paperEnvelope12: + builder.attribute('paperSize', '22'); + break; + case ExcelPaperSize.paperEnvelope14: + builder.attribute('paperSize', '23'); + break; + case ExcelPaperSize.paperEnvelope9: + builder.attribute('paperSize', '19'); + break; + case ExcelPaperSize.paperEnvelopeB4: + builder.attribute('paperSize', '33'); + break; + case ExcelPaperSize.paperEnvelopeB5: + builder.attribute('paperSize', '34'); + break; + case ExcelPaperSize.paperEnvelopeB6: + builder.attribute('paperSize', '35'); + break; + case ExcelPaperSize.paperEnvelopeC3: + builder.attribute('paperSize', '29'); + break; + case ExcelPaperSize.paperEnvelopeC4: + builder.attribute('paperSize', '30'); + break; + case ExcelPaperSize.paperEnvelopeC5: + builder.attribute('paperSize', '28'); + break; + case ExcelPaperSize.paperEnvelopeC6: + builder.attribute('paperSize', '31'); + break; + case ExcelPaperSize.paperEnvelopeC65: + builder.attribute('paperSize', '32'); + break; + case ExcelPaperSize.paperEnvelopeDL: + builder.attribute('paperSize', '27'); + break; + case ExcelPaperSize.paperEnvelopeItaly: + builder.attribute('paperSize', '36'); + break; + case ExcelPaperSize.paperEnvelopeMonarch: + builder.attribute('paperSize', '37'); + break; + case ExcelPaperSize.paperEnvelopePersonal: + builder.attribute('paperSize', '38'); + break; + case ExcelPaperSize.paperEsheet: + builder.attribute('paperSize', '26'); + break; + case ExcelPaperSize.paperExecutive: + builder.attribute('paperSize', '7'); + break; + case ExcelPaperSize.paperFanfoldLegalGerman: + builder.attribute('paperSize', '41'); + break; + case ExcelPaperSize.paperFanfoldStdGerman: + builder.attribute('paperSize', '40'); + break; + case ExcelPaperSize.paperFanfoldUS: + builder.attribute('paperSize', '39'); + break; + case ExcelPaperSize.paperFolio: + builder.attribute('paperSize', '14'); + break; + case ExcelPaperSize.paperLedger: + builder.attribute('paperSize', '4'); + break; + case ExcelPaperSize.paperLegal: + builder.attribute('paperSize', '5'); + break; + case ExcelPaperSize.paperLetter: + builder.attribute('paperSize', '1'); + break; + case ExcelPaperSize.paperLetterSmall: + builder.attribute('paperSize', '2'); + break; + case ExcelPaperSize.paperNote: + builder.attribute('paperSize', '18'); + break; + case ExcelPaperSize.paperQuarto: + builder.attribute('paperSize', '15'); + break; + case ExcelPaperSize.paperStatement: + builder.attribute('paperSize', '6'); + break; + case ExcelPaperSize.paperTabloid: + builder.attribute('paperSize', '3'); + break; + case ExcelPaperSize.paperUser: + builder.attribute('paperSize', '256'); + break; + case ExcelPaperSize.standardPaper9By11: + builder.attribute('paperSize', '44'); + break; + case ExcelPaperSize.standardPaper10By11: + builder.attribute('paperSize', '45'); + break; + case ExcelPaperSize.standardPaper15By11: + builder.attribute('paperSize', '46'); + break; + case ExcelPaperSize.tabloidExtraPaper: + builder.attribute('paperSize', '52'); + break; + case ExcelPaperSize.superASuperAA4Paper: + builder.attribute('paperSize', '57'); + break; + case ExcelPaperSize.superBSuperBA3Paper: + builder.attribute('paperSize', '58'); + break; + case ExcelPaperSize.paper10x14: + builder.attribute('paperSize', '16'); + break; + case ExcelPaperSize.paper11x17: + builder.attribute('paperSize', '17'); + break; + case ExcelPaperSize.paperA3: + builder.attribute('paperSize', '8'); + break; + case ExcelPaperSize.paperA4: + builder.attribute('paperSize', '9'); + break; + case ExcelPaperSize.paperA4Small: + builder.attribute('paperSize', '10'); + break; + case ExcelPaperSize.paperA5: + builder.attribute('paperSize', '11'); + break; + case ExcelPaperSize.paperB4: + builder.attribute('paperSize', '12'); + break; + case ExcelPaperSize.paperB5: + builder.attribute('paperSize', '13'); + break; + case ExcelPaperSize.paperCsheet: + builder.attribute('paperSize', '24'); + break; + case ExcelPaperSize.iSOB4: + builder.attribute('paperSize', '42'); + break; + case ExcelPaperSize.japaneseDoublePostcard: + builder.attribute('paperSize', '43'); + break; + case ExcelPaperSize.inviteEnvelope: + builder.attribute('paperSize', '47'); + break; + case ExcelPaperSize.letterExtraPaper9275By12: + builder.attribute('paperSize', '50'); + break; + case ExcelPaperSize.legalExtraPaper9275By15: + builder.attribute('paperSize', '51'); + break; + case ExcelPaperSize.a4ExtraPaper: + builder.attribute('paperSize', '53'); + break; + case ExcelPaperSize.letterTransversePaper: + builder.attribute('paperSize', '54'); + break; + case ExcelPaperSize.a4TransversePaper: + builder.attribute('paperSize', '55'); + break; + case ExcelPaperSize.letterExtraTransversePaper: + builder.attribute('paperSize', '56'); + break; + case ExcelPaperSize.letterPlusPaper: + builder.attribute('paperSize', '59'); + break; + case ExcelPaperSize.a4PlusPaper: + builder.attribute('paperSize', '60'); + break; + case ExcelPaperSize.a5TransversePaper: + builder.attribute('paperSize', '61'); + break; + case ExcelPaperSize.jISB5TransversePaper: + builder.attribute('paperSize', '62'); + break; + case ExcelPaperSize.a3ExtraPaper: + builder.attribute('paperSize', '63'); + break; + case ExcelPaperSize.a5ExtraPpaper: + builder.attribute('paperSize', '64'); + break; + case ExcelPaperSize.iSOB5ExtraPaper: + builder.attribute('paperSize', '65'); + break; + case ExcelPaperSize.a3TransversePaper: + builder.attribute('paperSize', '67'); + break; + case ExcelPaperSize.a3ExtraTransversePaper: + builder.attribute('paperSize', '68'); + break; + } + } + /// Serializes single protection option. void _serializeProtectionAttribute( XmlBuilder builder, String attributeName, bool flag, bool defaultValue) { @@ -1007,10 +1393,45 @@ class SerializeWorkbook { if (!sheet.showGridlines) { builder.attribute('showGridLines', '0'); } + if (sheet._isfreezePane || + sheet._verticalSplit != 0 || + sheet._horizontalSplit != 0) { + _savePane(sheet, builder); + } }); }); } + /// Serialize worksheet Pane. + static void _savePane(Worksheet sheet, XmlBuilder builder) { + builder.element('pane', nest: () { + if (sheet._verticalSplit != 0) { + builder.attribute('xSplit', sheet._verticalSplit.toString()); + } + if (sheet._horizontalSplit != 0) { + builder.attribute('ySplit', sheet._horizontalSplit.toString()); + } + if (sheet._topLeftCell != '') { + builder.attribute('topLeftCell', sheet._topLeftCell); + } + switch (sheet._activePane) { + case _ActivePane.bottomRight: + builder.attribute('activePane', 'bottomRight'); + break; + case _ActivePane.bottomLeft: + builder.attribute('activePane', 'bottomLeft'); + break; + case _ActivePane.topRight: + builder.attribute('activePane', 'topRight'); + break; + case _ActivePane.topLeft: + builder.attribute('activePane', 'topLeft'); + break; + } + builder.attribute('state', 'frozen'); + }); + } + /// Serialize workbook shared string. void _saveSharedString() { final XmlBuilder builder = XmlBuilder(); @@ -1620,13 +2041,7 @@ class SerializeWorkbook { void _serializeBorder(Border border, XmlBuilder builder, String borderType) { builder.element(borderType, nest: () { builder.attribute( - 'style', - border.lineStyle - .toString() - .split('.') - .toList() - .removeAt(1) - .toLowerCase()); + 'style', border.lineStyle.toString().split('.').toList().removeAt(1)); builder.element('color', nest: () { if (border.color.length == 7) { builder.attribute('rgb', 'FF${border.color.replaceAll('#', '')}'); @@ -3106,14 +3521,6 @@ class SerializeWorkbook { /// Serialize the dynmaic filter. void _serializeDateFilter(XmlBuilder builder, _DynamicFilter filter) { - if (builder == null) { - throw Exception('writer'); - } - - if (filter == null) { - throw Exception('filter'); - } - if (filter._dateFilterType != DynamicFilterType.none) { builder.element('dynamicFilter', nest: () { final String? dateTime = diff --git a/packages/syncfusion_flutter_xlsio/lib/src/xlsio/general/workbook.dart b/packages/syncfusion_flutter_xlsio/lib/src/xlsio/general/workbook.dart index 8b5baf46f..9f83eee71 100644 --- a/packages/syncfusion_flutter_xlsio/lib/src/xlsio/general/workbook.dart +++ b/packages/syncfusion_flutter_xlsio/lib/src/xlsio/general/workbook.dart @@ -49,6 +49,18 @@ class Workbook { /// Represents the build in properties. BuiltInProperties? _builtInProperties; + ///Represents workbook named range collection. + Names? _namesColl; + + ///Represents workbook named range collection. + Names get names { + _namesColl ??= _WorkbookNamesCollection(this); + return _namesColl!; + } + + /// Represents the name collection in the workbook. + late List innerNamesCollection; + /// Represents the font collection in the workbook. late List fonts; @@ -6151,6 +6163,7 @@ class Workbook { void _initialize() { _sharedString = {}; fonts = []; + innerNamesCollection = []; borders = []; _styles = StylesCollection(this); _rawFormats = FormatsCollection(this); @@ -6761,6 +6774,8 @@ class Workbook { fonts.clear(); + innerNamesCollection.clear(); + borders.clear(); fills.clear(); diff --git a/packages/syncfusion_flutter_xlsio/lib/src/xlsio/range/range.dart b/packages/syncfusion_flutter_xlsio/lib/src/xlsio/range/range.dart index 14d4f72c0..158af746d 100644 --- a/packages/syncfusion_flutter_xlsio/lib/src/xlsio/range/range.dart +++ b/packages/syncfusion_flutter_xlsio/lib/src/xlsio/range/range.dart @@ -798,6 +798,33 @@ class Range { return strValue; } + /// Creates freeze panes that keep the selected rows and columns visible in the range while scrolling the worksheet. + /// ```dart + /// final Workbook workbook = Workbook(); + /// final Worksheet worksheet = workbook.worksheets[0]; + /// worksheet.getRangeByName('A1:H10').text = "Freeze panes"; + /// worksheet.getRangeByName('B2').freezePanes(); + /// final List bytes = workbook.saveAsStream(); + /// saveAsExcel(bytes, 'FreezePanes.xlsx'); + /// workbook.dispose(); + /// ``` + void freezePanes() { + worksheet._isfreezePane = true; + worksheet._horizontalSplit = row - 1; + worksheet._verticalSplit = column - 1; + worksheet._topLeftCell = + worksheet.getRangeByIndex(row, column).addressLocal; + if (row > 1 && column > 1) { + worksheet._activePane = _ActivePane.bottomRight; + } else if (row > 1 && column <= 1) { + worksheet._activePane = _ActivePane.bottomLeft; + } else if (row <= 1 && column > 1) { + worksheet._activePane = _ActivePane.topRight; + } else { + worksheet._activePane = _ActivePane.topLeft; + } + } + /// Get count of the present Range int get count { int tempCount = 0; diff --git a/packages/syncfusion_flutter_xlsio/lib/src/xlsio/worksheet/worksheet.dart b/packages/syncfusion_flutter_xlsio/lib/src/xlsio/worksheet/worksheet.dart index ca5d86b46..bf5cd75bf 100644 --- a/packages/syncfusion_flutter_xlsio/lib/src/xlsio/worksheet/worksheet.dart +++ b/packages/syncfusion_flutter_xlsio/lib/src/xlsio/worksheet/worksheet.dart @@ -44,15 +44,42 @@ class Worksheet { ///Represents the datavalidation table _DataValidationTable? _mdataValidation; + // Represents the number of columns visible in the top pane + int _verticalSplit = 0; + + // Represents the number of rows visible in the left pane + int _horizontalSplit = 0; + + // Represents topLeftCell + String _topLeftCell = ''; + + // Represents is panes are frozen + bool _isfreezePane = false; + + // Represents active pane + late _ActivePane _activePane; + ///Represents autoFilter class AutoFilterCollection? _autoFilters; + ///Represents worksheet named range collection. + Names? _namesColl; + + ///Represents worksheet named range collection. + Names get names { + _namesColl ??= _WorksheetNamesCollection(this); + return _namesColl!; + } + /// Represents auto fit manager. _AutoFitManager get _autoFitManager { final _AutoFitManager autoFit = _AutoFitManager._withSheet(this); return autoFit; } + ///Get the page setup settings for the worksheet. Read-only. + PageSetup? _pageSetup; + ///Get a collection of tables in the worksheet. Read-only. ExcelTableCollection? _tableCollection; @@ -246,6 +273,12 @@ class Worksheet { return _tableCollection!; } + /// Represents the page setup settings for the worksheet. + PageSetup get pageSetup { + _pageSetup ??= _PageSetupImpl(this); + return _pageSetup!; + } + /// Gets/Sets a Conditional Format collections in the worksheet. // ignore: library_private_types_in_public_api List<_ConditionalFormatsImpl> conditionalFormats = @@ -2202,6 +2235,24 @@ class Worksheet { return i; } + /// Removes the existing freeze panes from the worksheet. + /// ```dart + /// final Workbook workbook = Workbook(); + /// final Worksheet worksheet = workbook.worksheets[0]; + /// worksheet.getRangeByName('A1:H10').text = "Freeze panes"; + /// worksheet.getRangeByName('B2').freezePanes(); + /// worksheet.unfreezePanes(); + /// final List bytes = workbook.saveAsStream(); + /// saveAsExcel(bytes, 'UnfreezePanes.xlsx'); + /// workbook.dispose(); + /// ``` + void unfreezePanes() { + _horizontalSplit = 0; + _verticalSplit = 0; + _topLeftCell = ''; + _isfreezePane = false; + } + /// Imports collection of ExcelDataRows into a worksheet. /// ```dart /// //Create a new Excel Document. diff --git a/packages/syncfusion_flutter_xlsio/lib/xlsio.dart b/packages/syncfusion_flutter_xlsio/lib/xlsio.dart index e08ad9b12..647917904 100644 --- a/packages/syncfusion_flutter_xlsio/lib/xlsio.dart +++ b/packages/syncfusion_flutter_xlsio/lib/xlsio.dart @@ -11,7 +11,6 @@ import 'dart:ui'; import 'package:archive/archive.dart'; import 'package:crypto/crypto.dart'; // ignore: depend_on_referenced_packages -import 'package:flutter_test/flutter_test.dart'; import 'package:image/image.dart' as img; import 'package:intl/date_symbol_data_local.dart'; import 'package:intl/date_symbols.dart'; @@ -22,7 +21,7 @@ import 'package:jiffy/jiffy.dart'; import 'package:syncfusion_officecore/officecore.dart'; import 'package:xml/xml.dart'; - +part 'src/test/images.dart'; part 'src/xlsio/autoFilters/auto_filter.dart'; part 'src/xlsio/autoFilters/autofilter_impl.dart'; part 'src/xlsio/autoFilters/autofiltercollection.dart'; @@ -109,9 +108,16 @@ part 'src/xlsio/hyperlinks/hyperlink.dart'; part 'src/xlsio/hyperlinks/hyperlink_collection.dart'; part 'src/xlsio/images/picture.dart'; part 'src/xlsio/images/pictures_collection.dart'; +part 'src/xlsio/named_range/names_coll.dart'; +part 'src/xlsio/named_range/worksheet_names_collections.dart'; +part 'src/xlsio/named_range/workbook_names_collections.dart'; +part 'src/xlsio/named_range/name.dart'; +part 'src/xlsio/named_range/name_impl.dart'; part 'src/xlsio/merged_cells/extend_style.dart'; part 'src/xlsio/merged_cells/merge_cells.dart'; part 'src/xlsio/merged_cells/merged_cell_collection.dart'; +part 'src/xlsio/page_setup/page_setup.dart'; +part 'src/xlsio/page_setup/page_setup_impl.dart'; part 'src/xlsio/range/column.dart'; part 'src/xlsio/range/column_collection.dart'; part 'src/xlsio/range/range.dart'; diff --git a/packages/syncfusion_flutter_xlsio/pubspec.yaml b/packages/syncfusion_flutter_xlsio/pubspec.yaml index fe3571f1b..4df141894 100644 --- a/packages/syncfusion_flutter_xlsio/pubspec.yaml +++ b/packages/syncfusion_flutter_xlsio/pubspec.yaml @@ -1,10 +1,10 @@ name: syncfusion_flutter_xlsio description: Flutter XlsIO is a Dart library for creating Excel documents with formulas, charts, images, hyperlinks, autofit rows and columns, and more. -version: 20.3.47-beta +version: 20.4.38-beta homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_xlsio environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: @@ -15,7 +15,7 @@ dependencies: intl: ">=0.17.0 <0.20.0" crypto: ">=3.0.0 <4.0.0" jiffy: ^5.0.0 - syncfusion_officecore: ^20.3.47-beta + syncfusion_officecore: ^20.4.38-beta dev_dependencies: flutter_test: diff --git a/packages/syncfusion_localizations/README.md b/packages/syncfusion_localizations/README.md index 8be4eb866..5e533b583 100644 --- a/packages/syncfusion_localizations/README.md +++ b/packages/syncfusion_localizations/README.md @@ -91,15 +91,12 @@ Explore the full capabilities of our Flutter widgets on your device by installin

- - + +

- -

-

@@ -113,11 +110,11 @@ Take a look at the following to learn more about Syncfusion Flutter widgets: ## Support and Feedback -* For any other queries, reach our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For any other queries, reach our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew the subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at salessupport@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls) , [.NET MAUI](https://www.syncfusion.com/maui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [.NET MAUI](https://www.syncfusion.com/maui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls) , [.NET MAUI](https://www.syncfusion.com/maui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_localizations/example/pubspec.yaml b/packages/syncfusion_localizations/example/pubspec.yaml index 800880c8a..4cfc22954 100644 --- a/packages/syncfusion_localizations/example/pubspec.yaml +++ b/packages/syncfusion_localizations/example/pubspec.yaml @@ -3,15 +3,15 @@ description: This project holds information about the usage of the syncfusion_lo version: 1.0.0 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter - syncfusion_localizations: ^20.3.47 - syncfusion_flutter_calendar: ^20.3.47 + syncfusion_localizations: ^19.1.57 + syncfusion_flutter_calendar: ^19.1.57 cupertino_icons: ^0.1.3 flutter: diff --git a/packages/syncfusion_localizations/lib/src/l10n/generated_syncfusion_localizations.dart b/packages/syncfusion_localizations/lib/src/l10n/generated_syncfusion_localizations.dart index c27f53913..638b9533e 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/generated_syncfusion_localizations.dart +++ b/packages/syncfusion_localizations/lib/src/l10n/generated_syncfusion_localizations.dart @@ -74,7 +74,7 @@ class SfLocalizationsAf extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Kanselleer'; @override - String get clearFilterFromDataGridFilteringLabel => r'Vee filter uit'; + String get clearFilterDataGridFilteringLabel => r'Vee filter uit'; @override String get containsDataGridFilteringLabel => r'Bevat'; @@ -112,6 +112,9 @@ class SfLocalizationsAf extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Gelyk'; + @override + String get fromDataGridFilteringLabel => r'Van'; + @override String get greaterThanDataGridFilteringLabel => r'Groter as'; @@ -390,7 +393,7 @@ class SfLocalizationsAm extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'ሰርዝ'; @override - String get clearFilterFromDataGridFilteringLabel => r'ማጣሪያን ከ ያጽዱ'; + String get clearFilterDataGridFilteringLabel => r'ማጣሪያን አጽዳ'; @override String get containsDataGridFilteringLabel => r'ይዟል'; @@ -428,6 +431,9 @@ class SfLocalizationsAm extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'እኩል ነው።'; + @override + String get fromDataGridFilteringLabel => r'ከ'; + @override String get greaterThanDataGridFilteringLabel => r'ከዚያ ይበልጣል'; @@ -516,7 +522,7 @@ class SfLocalizationsAm extends SfGlobalLocalizations { String get pdfHyperlinkLabel => r'ድህረ ገጽ ክፈት'; @override - String get pdfInvalidPageNumberLabel => r'እባክህ የሚሰራ ቁጥር አስገባ'; + String get pdfInvalidPageNumberLabel => r'እባክዎ ትክክለኛ ቁጥር ያስገቡ'; @override String get pdfNoBookmarksLabel => r'ምንም ዕልባቶች አልተገኙም።'; @@ -567,7 +573,7 @@ class SfLocalizationsAm extends SfGlobalLocalizations { String get shaabanLabel => r'ሻዕባን'; @override - String get shawwalLabel => r'ሻውል'; + String get shawwalLabel => r'ሻዋል'; @override String get shortDhualhiLabel => r'ዙል-ሀ'; @@ -582,7 +588,7 @@ class SfLocalizationsAm extends SfGlobalLocalizations { String get shortJumada2Label => r'ጁም. II'; @override - String get shortMuharramLabel => r'ሙህ.'; + String get shortMuharramLabel => r'ሙህ'; @override String get shortRabi1Label => r'ራቢ. አይ'; @@ -700,7 +706,7 @@ class SfLocalizationsAr extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'يلغي'; @override - String get clearFilterFromDataGridFilteringLabel => r'مسح عامل التصفية من'; + String get clearFilterDataGridFilteringLabel => r'مرشح واضح'; @override String get containsDataGridFilteringLabel => r'يتضمن'; @@ -738,6 +744,9 @@ class SfLocalizationsAr extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'يساوي'; + @override + String get fromDataGridFilteringLabel => r'من'; + @override String get greaterThanDataGridFilteringLabel => r'أكثر من'; @@ -871,7 +880,7 @@ class SfLocalizationsAr extends SfGlobalLocalizations { String get selectAllDataGridFilteringLabel => r'اختر الكل'; @override - String get series => r'مسلسل'; + String get series => r'سلسلة'; @override String get shaabanLabel => r'شعبان'; @@ -886,10 +895,10 @@ class SfLocalizationsAr extends SfGlobalLocalizations { String get shortDhualqiLabel => r'ذو القعدة'; @override - String get shortJumada1Label => r'جام. أنا'; + String get shortJumada1Label => r'جم. أنا'; @override - String get shortJumada2Label => r'جام. ثانيًا'; + String get shortJumada2Label => r'جم. ثانيًا'; @override String get shortMuharramLabel => r'موه.'; @@ -1015,7 +1024,7 @@ class SfLocalizationsAz extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Ləğv et'; @override - String get clearFilterFromDataGridFilteringLabel => r'Filtri Sil'; + String get clearFilterDataGridFilteringLabel => r'Filtri təmizləyin'; @override String get containsDataGridFilteringLabel => r'ehtiva edir'; @@ -1053,6 +1062,9 @@ class SfLocalizationsAz extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Bərabərdir'; + @override + String get fromDataGridFilteringLabel => r'From'; + @override String get greaterThanDataGridFilteringLabel => r'Böyük'; @@ -1063,7 +1075,7 @@ class SfLocalizationsAz extends SfGlobalLocalizations { String get jumada1Label => r'Cümə əl-əvvəl'; @override - String get jumada2Label => r'Cümədə əl-sani'; + String get jumada2Label => r'Cüməda əl-sani'; @override String get lessThanDataGridFilteringLabel => r'Daha az'; @@ -1299,19 +1311,19 @@ class SfLocalizationsBe extends SfGlobalLocalizations { String get allowedViewScheduleLabel => r'Расклад'; @override - String get allowedViewTimelineDayLabel => r'Дзень шкалы часу'; + String get allowedViewTimelineDayLabel => r'Дзень часовай шкалы'; @override - String get allowedViewTimelineMonthLabel => r'Месяц часавай шкалы'; + String get allowedViewTimelineMonthLabel => r'Храналогія Месяц'; @override - String get allowedViewTimelineWeekLabel => r'Тыдзень хронікі'; + String get allowedViewTimelineWeekLabel => r'Храналогія тыдня'; @override - String get allowedViewTimelineWorkWeekLabel => r'Тэрмін працоўнага тыдня'; + String get allowedViewTimelineWorkWeekLabel => r'Графік працоўнага тыдня'; @override - String get allowedViewWeekLabel => r'Тыдзень'; + String get allowedViewWeekLabel => r'тыдзень'; @override String get allowedViewWorkWeekLabel => r'Працоўны тыдзень'; @@ -1332,7 +1344,7 @@ class SfLocalizationsBe extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Адмяніць'; @override - String get clearFilterFromDataGridFilteringLabel => r'Ачысціць фільтр ад'; + String get clearFilterDataGridFilteringLabel => r'Ачысціць фільтр'; @override String get containsDataGridFilteringLabel => r'Змяшчае'; @@ -1370,6 +1382,9 @@ class SfLocalizationsBe extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Роўнае'; + @override + String get fromDataGridFilteringLabel => r'Ад'; + @override String get greaterThanDataGridFilteringLabel => r'Больш чым'; @@ -1377,10 +1392,10 @@ class SfLocalizationsBe extends SfGlobalLocalizations { String get greaterThanOrEqualDataGridFilteringLabel => r'Больш або роўна'; @override - String get jumada1Label => r'Джумада аль-авваль'; + String get jumada1Label => r'Джумада аль-аўваль'; @override - String get jumada2Label => r'Джумада аль-Тані'; + String get jumada2Label => r'Джумада аль-тані'; @override String get lessThanDataGridFilteringLabel => r'Менш чым'; @@ -1398,7 +1413,7 @@ class SfLocalizationsBe extends SfGlobalLocalizations { String get noMatchesDataGridFilteringLabel => r'Супадзенняў няма'; @override - String get noSelectedDateCalendarLabel => r'Няма выбранай даты'; + String get noSelectedDateCalendarLabel => r'Дата не выбрана'; @override String get notEmptyDataGridFilteringLabel => r'Не пусты'; @@ -1422,14 +1437,14 @@ class SfLocalizationsBe extends SfGlobalLocalizations { String get orDataGridFilteringLabel => r'Або'; @override - String get pagesDataPagerLabel => r'старонак'; + String get pagesDataPagerLabel => r'старонкі'; @override String get passwordDialogContentLabel => r'Увядзіце пароль, каб адкрыць гэты файл PDF'; @override - String get passwordDialogHeaderTextLabel => r'Абаронены паролем'; + String get passwordDialogHeaderTextLabel => r'Абарона паролем'; @override String get passwordDialogHintTextLabel => r'Увядзіце пароль'; @@ -1451,41 +1466,40 @@ class SfLocalizationsBe extends SfGlobalLocalizations { r'Вы хочаце адкрыць старонку па адрасе'; @override - String get pdfHyperlinkDialogCancelLabel => r'АДМЕНАЦЬ'; + String get pdfHyperlinkDialogCancelLabel => r'СКАСАВАЦЬ'; @override - String get pdfHyperlinkDialogOpenLabel => r'АДКРЫЦЬ'; + String get pdfHyperlinkDialogOpenLabel => r'АДКРЫТАЯ'; @override - String get pdfHyperlinkLabel => r'Адкрыйце вэб-старонку'; + String get pdfHyperlinkLabel => r'Адкрыць вэб-старонку'; @override - String get pdfInvalidPageNumberLabel => - r'Калі ласка, увядзіце сапраўдны нумар'; + String get pdfInvalidPageNumberLabel => r'Увядзіце правільны нумар'; @override - String get pdfNoBookmarksLabel => r'Закладак не знойдзена'; + String get pdfNoBookmarksLabel => r'Закладкі не знойдзены'; @override - String get pdfPaginationDialogCancelLabel => r'АДМЕНАЦЬ'; + String get pdfPaginationDialogCancelLabel => r'СКАСАВАЦЬ'; @override String get pdfPaginationDialogOkLabel => r'добра'; @override - String get pdfPasswordDialogCancelLabel => r'АДМЕНАЦЬ'; + String get pdfPasswordDialogCancelLabel => r'СКАСАВАЦЬ'; @override - String get pdfPasswordDialogOpenLabel => r'АДКРЫЦЬ'; + String get pdfPasswordDialogOpenLabel => r'АДКРЫТАЯ'; @override String get pdfScrollStatusOfLabel => r'з'; @override - String get rabi1Label => r'Рабі аль-авваль'; + String get rabi1Label => r'Рабі аль-аўваль'; @override - String get rabi2Label => r'Рабі аль-Тані'; + String get rabi2Label => r'Рабі аль-тані'; @override String get rajabLabel => r'Раджаб'; @@ -1494,7 +1508,7 @@ class SfLocalizationsBe extends SfGlobalLocalizations { String get ramadanLabel => r'Рамадан'; @override - String get rowsPerPageDataPagerLabel => r'Радкі на старонцы'; + String get rowsPerPageDataPagerLabel => r'Радкоў на старонцы'; @override String get safarLabel => r'Сафар'; @@ -1506,7 +1520,7 @@ class SfLocalizationsBe extends SfGlobalLocalizations { String get selectAllDataGridFilteringLabel => r'Абраць усё'; @override - String get series => r'Серыял'; + String get series => r'серыял'; @override String get shaabanLabel => r'Шаабан'; @@ -1515,31 +1529,31 @@ class SfLocalizationsBe extends SfGlobalLocalizations { String get shawwalLabel => r'Шаўваль'; @override - String get shortDhualhiLabel => r'Зуль-Х'; + String get shortDhualhiLabel => r'Зу' "'" r'л-Х'; @override - String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; + String get shortDhualqiLabel => r'Зу' "'" r'л-К' "'" r'ю'; @override - String get shortJumada1Label => r'Jum. я'; + String get shortJumada1Label => r'Джам. я'; @override - String get shortJumada2Label => r'Jum. II'; + String get shortJumada2Label => r'Джам. II'; @override - String get shortMuharramLabel => r'Мух.'; + String get shortMuharramLabel => r'мух'; @override - String get shortRabi1Label => r'Рабі. я'; + String get shortRabi1Label => r'Рабіна. я'; @override - String get shortRabi2Label => r'Рабі. II'; + String get shortRabi2Label => r'Рабіна. II'; @override String get shortRajabLabel => r'Радж.'; @override - String get shortRamadanLabel => r'Баран.'; + String get shortRamadanLabel => r'Таран.'; @override String get shortSafarLabel => r'Саф.'; @@ -1548,7 +1562,7 @@ class SfLocalizationsBe extends SfGlobalLocalizations { String get shortShaabanLabel => r'Ша.'; @override - String get shortShawwalLabel => r'Шо.'; + String get shortShawwalLabel => r'Шоу.'; @override String get showRowsWhereDataGridFilteringLabel => r'Паказаць радкі, дзе'; @@ -1582,10 +1596,10 @@ class SfLocalizationsBe extends SfGlobalLocalizations { String get textFiltersDataGridFilteringLabel => r'Тэкставыя фільтры'; @override - String get todayLabel => r'Сёння'; + String get todayLabel => r'сёння'; @override - String get weeknumberLabel => r'Тыдзень'; + String get weeknumberLabel => r'тыдзень'; } /// The translations for Bulgarian (`bg`). @@ -1619,13 +1633,14 @@ class SfLocalizationsBg extends SfGlobalLocalizations { String get allowedViewTimelineDayLabel => r'Ден на хронологията'; @override - String get allowedViewTimelineMonthLabel => r'Месец на хронологията'; + String get allowedViewTimelineMonthLabel => r'Времева линия Месец'; @override String get allowedViewTimelineWeekLabel => r'Седмица на хронологията'; @override - String get allowedViewTimelineWorkWeekLabel => r'График на работната седмица'; + String get allowedViewTimelineWorkWeekLabel => + r'Времева линия Работна седмица'; @override String get allowedViewWeekLabel => r'седмица'; @@ -1649,8 +1664,7 @@ class SfLocalizationsBg extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Отказ'; @override - String get clearFilterFromDataGridFilteringLabel => - r'Изчистване на филтъра от'; + String get clearFilterDataGridFilteringLabel => r'Изчистване на филтъра'; @override String get containsDataGridFilteringLabel => r'Съдържа'; @@ -1665,7 +1679,7 @@ class SfLocalizationsBg extends SfGlobalLocalizations { String get dhualhiLabel => r'Зу ал-Хиджа'; @override - String get dhualqiLabel => r'Dhu al-Qi' "'" r'dah'; + String get dhualqiLabel => r'Зу ал-Кида'; @override String get doesNotBeginWithDataGridFilteringLabel => r'Не започва с'; @@ -1688,6 +1702,9 @@ class SfLocalizationsBg extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Се равнява'; + @override + String get fromDataGridFilteringLabel => r'от'; + @override String get greaterThanDataGridFilteringLabel => r'По-голяма от'; @@ -1699,7 +1716,7 @@ class SfLocalizationsBg extends SfGlobalLocalizations { String get jumada1Label => r'Джумада ал-аввал'; @override - String get jumada2Label => r'Джумада ал-Тани'; + String get jumada2Label => r'Джумада ал-тани'; @override String get lessThanDataGridFilteringLabel => r'По-малко от'; @@ -1708,7 +1725,7 @@ class SfLocalizationsBg extends SfGlobalLocalizations { String get lessThanOrEqualDataGridFilteringLabel => r'По-малко или равно'; @override - String get muharramLabel => r'Мухарам'; + String get muharramLabel => r'Мухаррам'; @override String get noEventsCalendarLabel => r'Няма събития'; @@ -1769,13 +1786,13 @@ class SfLocalizationsBg extends SfGlobalLocalizations { String get pdfHyperlinkContentLabel => r'Искате ли да отворите страницата на'; @override - String get pdfHyperlinkDialogCancelLabel => r'ОТМЕНИ'; + String get pdfHyperlinkDialogCancelLabel => r'ОТМЕНЯНЕ'; @override String get pdfHyperlinkDialogOpenLabel => r'ОТВОРЕНО'; @override - String get pdfHyperlinkLabel => r'Отворете уеб страница'; + String get pdfHyperlinkLabel => r'Отворете уеб страницата'; @override String get pdfInvalidPageNumberLabel => r'Моля въведете валиден номер'; @@ -1784,13 +1801,13 @@ class SfLocalizationsBg extends SfGlobalLocalizations { String get pdfNoBookmarksLabel => r'Няма намерени отметки'; @override - String get pdfPaginationDialogCancelLabel => r'ОТМЕНИ'; + String get pdfPaginationDialogCancelLabel => r'ОТМЕНЯНЕ'; @override String get pdfPaginationDialogOkLabel => r'Добре'; @override - String get pdfPasswordDialogCancelLabel => r'ОТМЕНИ'; + String get pdfPasswordDialogCancelLabel => r'ОТМЕНЯНЕ'; @override String get pdfPasswordDialogOpenLabel => r'ОТВОРЕНО'; @@ -1802,7 +1819,7 @@ class SfLocalizationsBg extends SfGlobalLocalizations { String get rabi1Label => r'Раби ал-аввал'; @override - String get rabi2Label => r'Раби ал-Тани'; + String get rabi2Label => r'Раби ал-тани'; @override String get rajabLabel => r'Раджаб'; @@ -1829,22 +1846,22 @@ class SfLocalizationsBg extends SfGlobalLocalizations { String get shaabanLabel => r'Шаабан'; @override - String get shawwalLabel => r'Shawwal'; + String get shawwalLabel => r'Шавал'; @override - String get shortDhualhiLabel => r'Dhu' "'" r'l-H'; + String get shortDhualhiLabel => r'Зул-Х'; @override - String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; + String get shortDhualqiLabel => r'Зул-Кю'; @override - String get shortJumada1Label => r'Jum. аз'; + String get shortJumada1Label => r'Джъм. аз'; @override - String get shortJumada2Label => r'Jum. II'; + String get shortJumada2Label => r'Джъм. II'; @override - String get shortMuharramLabel => r'Мъх'; + String get shortMuharramLabel => r'Мъх.'; @override String get shortRabi1Label => r'Раби. аз'; @@ -1856,13 +1873,13 @@ class SfLocalizationsBg extends SfGlobalLocalizations { String get shortRajabLabel => r'Радж.'; @override - String get shortRamadanLabel => r'Рам.'; + String get shortRamadanLabel => r'Рам'; @override - String get shortSafarLabel => r'Saf.'; + String get shortSafarLabel => r'Саф.'; @override - String get shortShaabanLabel => r'Ша'; + String get shortShaabanLabel => r'Ша.'; @override String get shortShawwalLabel => r'Шоу.'; @@ -1899,7 +1916,7 @@ class SfLocalizationsBg extends SfGlobalLocalizations { String get textFiltersDataGridFilteringLabel => r'Текстови филтри'; @override - String get todayLabel => r'днес'; + String get todayLabel => r'Днес'; @override String get weeknumberLabel => r'седмица'; @@ -1966,7 +1983,7 @@ class SfLocalizationsBn extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'বাতিল করুন'; @override - String get clearFilterFromDataGridFilteringLabel => r'থেকে ফিল্টার সাফ করুন'; + String get clearFilterDataGridFilteringLabel => r'স্বচ্ছ ছাকুনী'; @override String get containsDataGridFilteringLabel => r'ধারণ করে'; @@ -2004,6 +2021,9 @@ class SfLocalizationsBn extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'সমান'; + @override + String get fromDataGridFilteringLabel => r'থেকে'; + @override String get greaterThanDataGridFilteringLabel => r'অপেক্ষা বৃহত্তর'; @@ -2023,7 +2043,7 @@ class SfLocalizationsBn extends SfGlobalLocalizations { String get lessThanOrEqualDataGridFilteringLabel => r'কম বা সমান'; @override - String get muharramLabel => r'মহররম'; + String get muharramLabel => r'মহরম'; @override String get noEventsCalendarLabel => r'কোনো ঘটনা নেই'; @@ -2060,7 +2080,7 @@ class SfLocalizationsBn extends SfGlobalLocalizations { @override String get passwordDialogContentLabel => - r'এই PDF ফাইল খুলতে পাসওয়ার্ড লিখুন'; + r'এই পিডিএফ ফাইল খুলতে পাসওয়ার্ড লিখুন'; @override String get passwordDialogHeaderTextLabel => r'পাসওয়ার্ড সুরক্ষিত'; @@ -2248,7 +2268,7 @@ class SfLocalizationsBs extends SfGlobalLocalizations { String get allowedViewScheduleLabel => r'Raspored'; @override - String get allowedViewTimelineDayLabel => r'Timeline Day'; + String get allowedViewTimelineDayLabel => r'Dan vremenske linije'; @override String get allowedViewTimelineMonthLabel => r'Timeline Month'; @@ -2282,7 +2302,7 @@ class SfLocalizationsBs extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Otkaži'; @override - String get clearFilterFromDataGridFilteringLabel => r'Obriši filter iz'; + String get clearFilterDataGridFilteringLabel => r'Obriši filter'; @override String get containsDataGridFilteringLabel => r'Sadrži'; @@ -2320,6 +2340,9 @@ class SfLocalizationsBs extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Jednako'; + @override + String get fromDataGridFilteringLabel => r'Od'; + @override String get greaterThanDataGridFilteringLabel => r'Veci nego'; @@ -2599,7 +2622,7 @@ class SfLocalizationsCa extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Cancel · lar'; @override - String get clearFilterFromDataGridFilteringLabel => r'Esborra el filtre de'; + String get clearFilterDataGridFilteringLabel => r'Esborra el filtre'; @override String get containsDataGridFilteringLabel => r'Conté'; @@ -2637,6 +2660,9 @@ class SfLocalizationsCa extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'És igual'; + @override + String get fromDataGridFilteringLabel => r'Des de'; + @override String get greaterThanDataGridFilteringLabel => r'Més gran que'; @@ -2915,7 +2941,7 @@ class SfLocalizationsCs extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'zrušení'; @override - String get clearFilterFromDataGridFilteringLabel => r'Vymazat filtr od'; + String get clearFilterDataGridFilteringLabel => r'Vymazat filtr'; @override String get containsDataGridFilteringLabel => r'Obsahuje'; @@ -2953,6 +2979,9 @@ class SfLocalizationsCs extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Rovná se'; + @override + String get fromDataGridFilteringLabel => r'Z'; + @override String get greaterThanDataGridFilteringLabel => r'Větší než'; @@ -3207,7 +3236,7 @@ class SfLocalizationsDa extends SfGlobalLocalizations { String get allowedViewTimelineWeekLabel => r'Tidslinje uge'; @override - String get allowedViewTimelineWorkWeekLabel => r'Tidslinje Arbejdsuge'; + String get allowedViewTimelineWorkWeekLabel => r'Tidslinje arbejdsuge'; @override String get allowedViewWeekLabel => r'Uge'; @@ -3231,7 +3260,7 @@ class SfLocalizationsDa extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Afbestille'; @override - String get clearFilterFromDataGridFilteringLabel => r'Ryd filter fra'; + String get clearFilterDataGridFilteringLabel => r'Ryd filter'; @override String get containsDataGridFilteringLabel => r'Indeholder'; @@ -3269,6 +3298,9 @@ class SfLocalizationsDa extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Lige med'; + @override + String get fromDataGridFilteringLabel => r'Fra'; + @override String get greaterThanDataGridFilteringLabel => r'Bedre end'; @@ -3511,19 +3543,19 @@ class SfLocalizationsDe extends SfGlobalLocalizations { String get allowedViewMonthLabel => r'Monat'; @override - String get allowedViewScheduleLabel => r'Zeitplan'; + String get allowedViewScheduleLabel => r'Zeitlicher Ablauf'; @override - String get allowedViewTimelineDayLabel => r'Zeitleiste Tag'; + String get allowedViewTimelineDayLabel => r'Timeline-Tag'; @override - String get allowedViewTimelineMonthLabel => r'Zeitachse Monat'; + String get allowedViewTimelineMonthLabel => r'Timeline-Monat'; @override - String get allowedViewTimelineWeekLabel => r'Zeitleiste Woche'; + String get allowedViewTimelineWeekLabel => r'Timeline-Woche'; @override - String get allowedViewTimelineWorkWeekLabel => r'Zeitleiste Arbeitswoche'; + String get allowedViewTimelineWorkWeekLabel => r'Zeitplan Arbeitswoche'; @override String get allowedViewWeekLabel => r'Woche'; @@ -3547,7 +3579,7 @@ class SfLocalizationsDe extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Absagen'; @override - String get clearFilterFromDataGridFilteringLabel => r'Filter löschen von'; + String get clearFilterDataGridFilteringLabel => r'Filter löschen'; @override String get containsDataGridFilteringLabel => r'Enthält'; @@ -3585,6 +3617,9 @@ class SfLocalizationsDe extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Gleich'; + @override + String get fromDataGridFilteringLabel => r'Aus'; + @override String get greaterThanDataGridFilteringLabel => r'Größer als'; @@ -3725,7 +3760,7 @@ class SfLocalizationsDe extends SfGlobalLocalizations { String get series => r'Serie'; @override - String get shaabanLabel => r'Schaaban'; + String get shaabanLabel => r'Shaaban'; @override String get shawwalLabel => r'Shawwal'; @@ -3838,7 +3873,7 @@ class SfLocalizationsEl extends SfGlobalLocalizations { String get allowedViewTimelineMonthLabel => r'Χρονολόγιο Μήνας'; @override - String get allowedViewTimelineWeekLabel => r'Εβδομάδα Χρονολογίου'; + String get allowedViewTimelineWeekLabel => r'Χρονολόγιο Εβδομάδα'; @override String get allowedViewTimelineWorkWeekLabel => @@ -3866,7 +3901,7 @@ class SfLocalizationsEl extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Ματαίωση'; @override - String get clearFilterFromDataGridFilteringLabel => r'Διαγραφή φίλτρου από'; + String get clearFilterDataGridFilteringLabel => r'Διαγραφή φίλτρου'; @override String get containsDataGridFilteringLabel => r'Περιέχει'; @@ -3904,6 +3939,9 @@ class SfLocalizationsEl extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Ίσο'; + @override + String get fromDataGridFilteringLabel => r'Από'; + @override String get greaterThanDataGridFilteringLabel => r'Μεγαλύτερος από'; @@ -3933,7 +3971,8 @@ class SfLocalizationsEl extends SfGlobalLocalizations { String get noMatchesDataGridFilteringLabel => r'Χωρίς αγώνες'; @override - String get noSelectedDateCalendarLabel => r'Καμία επιλεγμένη ημερομηνία'; + String get noSelectedDateCalendarLabel => + r'Δεν υπάρχει επιλεγμένη ημερομηνία'; @override String get notEmptyDataGridFilteringLabel => r'Οχι άδειο'; @@ -4185,7 +4224,7 @@ class SfLocalizationsEn extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Cancel'; @override - String get clearFilterFromDataGridFilteringLabel => r'Clear Filter From'; + String get clearFilterDataGridFilteringLabel => r'Clear Filter'; @override String get containsDataGridFilteringLabel => r'Contains'; @@ -4223,6 +4262,9 @@ class SfLocalizationsEn extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Equals'; + @override + String get fromDataGridFilteringLabel => r'From'; + @override String get greaterThanDataGridFilteringLabel => r'Greater Than'; @@ -4502,7 +4544,7 @@ class SfLocalizationsEs extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Cancelar'; @override - String get clearFilterFromDataGridFilteringLabel => r'Borrar filtro de'; + String get clearFilterDataGridFilteringLabel => r'Filtro claro'; @override String get containsDataGridFilteringLabel => r'Contiene'; @@ -4540,6 +4582,9 @@ class SfLocalizationsEs extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'igual'; + @override + String get fromDataGridFilteringLabel => r'De'; + @override String get greaterThanDataGridFilteringLabel => r'Mas grande que'; @@ -4689,7 +4734,7 @@ class SfLocalizationsEs extends SfGlobalLocalizations { String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; @override - String get shortJumada1Label => r'Jum. I'; + String get shortJumada1Label => r'Jum. yo'; @override String get shortJumada2Label => r'Jum. II'; @@ -4698,10 +4743,10 @@ class SfLocalizationsEs extends SfGlobalLocalizations { String get shortMuharramLabel => r'Muh.'; @override - String get shortRabi1Label => r'Rabí. I'; + String get shortRabi1Label => r'Rabí. yo'; @override - String get shortRabi2Label => r'Rabi. II'; + String get shortRabi2Label => r'Rabí. Yo'; @override String get shortRajabLabel => r'Raj.'; @@ -4750,7 +4795,7 @@ class SfLocalizationsEs extends SfGlobalLocalizations { String get textFiltersDataGridFilteringLabel => r'Filtros de texto'; @override - String get todayLabel => r'Hoy dia'; + String get todayLabel => r'Este Dia'; @override String get weeknumberLabel => r'Semana'; @@ -4817,7 +4862,7 @@ class SfLocalizationsEt extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Tühista'; @override - String get clearFilterFromDataGridFilteringLabel => r'Kustuta filter'; + String get clearFilterDataGridFilteringLabel => r'Tühjenda filter'; @override String get containsDataGridFilteringLabel => r'Sisaldab'; @@ -4855,6 +4900,9 @@ class SfLocalizationsEt extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Võrdub'; + @override + String get fromDataGridFilteringLabel => r'Alates'; + @override String get greaterThanDataGridFilteringLabel => r'Suurem kui'; @@ -5005,7 +5053,7 @@ class SfLocalizationsEt extends SfGlobalLocalizations { String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; @override - String get shortJumada1Label => r'Jum. ma'; + String get shortJumada1Label => r'Jum. I'; @override String get shortJumada2Label => r'Jum. II'; @@ -5014,7 +5062,7 @@ class SfLocalizationsEt extends SfGlobalLocalizations { String get shortMuharramLabel => r'Muh.'; @override - String get shortRabi1Label => r'Rabi. ma'; + String get shortRabi1Label => r'Rabi. I'; @override String get shortRabi2Label => r'Rabi. II'; @@ -5133,7 +5181,7 @@ class SfLocalizationsEu extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Utzi'; @override - String get clearFilterFromDataGridFilteringLabel => r'Garbitu iragazkia'; + String get clearFilterDataGridFilteringLabel => r'Garbitu iragazkia'; @override String get containsDataGridFilteringLabel => r'Dauka'; @@ -5171,6 +5219,9 @@ class SfLocalizationsEu extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Berdin'; + @override + String get fromDataGridFilteringLabel => r'Bertatik'; + @override String get greaterThanDataGridFilteringLabel => r'Baino handiagoa'; @@ -5450,7 +5501,7 @@ class SfLocalizationsFa extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'لغو کنید'; @override - String get clearFilterFromDataGridFilteringLabel => r'پاک کردن فیلتر از'; + String get clearFilterDataGridFilteringLabel => r'فیلتر را پاک کنید'; @override String get containsDataGridFilteringLabel => r'حاوی'; @@ -5488,6 +5539,9 @@ class SfLocalizationsFa extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'برابر است'; + @override + String get fromDataGridFilteringLabel => r'از جانب'; + @override String get greaterThanDataGridFilteringLabel => r'بزرگتر از'; @@ -5643,7 +5697,7 @@ class SfLocalizationsFa extends SfGlobalLocalizations { String get shortJumada2Label => r'جام. II'; @override - String get shortMuharramLabel => r'ماه'; + String get shortMuharramLabel => r'مه'; @override String get shortRabi1Label => r'ربیع من'; @@ -5689,7 +5743,7 @@ class SfLocalizationsFa extends SfGlobalLocalizations { @override String get sortSmallestToLargestDataGridFilteringLabel => - r'مرتب سازی کوچکترین به بزرگ ترین'; + r'مرتب سازی کوچک ترین به بزرگ ترین'; @override String get sortZToADataGridFilteringLabel => r'Z به A مرتب کنید'; @@ -5765,7 +5819,7 @@ class SfLocalizationsFi extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Peruuttaa'; @override - String get clearFilterFromDataGridFilteringLabel => r'Tyhjennä suodatin'; + String get clearFilterDataGridFilteringLabel => r'Tyhjennä suodatin'; @override String get containsDataGridFilteringLabel => r'Sisältää'; @@ -5789,7 +5843,7 @@ class SfLocalizationsFi extends SfGlobalLocalizations { String get doesNotContainDataGridFilteringLabel => r'Ei sisällä'; @override - String get doesNotEndWithDataGridFilteringLabel => r'Ei pääty'; + String get doesNotEndWithDataGridFilteringLabel => r'Ei lopu'; @override String get doesNotEqualDataGridFilteringLabel => r'Ei ole sama'; @@ -5803,6 +5857,9 @@ class SfLocalizationsFi extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Yhtä'; + @override + String get fromDataGridFilteringLabel => r'From'; + @override String get greaterThanDataGridFilteringLabel => r'Suurempi kuin'; @@ -5861,7 +5918,7 @@ class SfLocalizationsFi extends SfGlobalLocalizations { @override String get passwordDialogContentLabel => - r'Kirjoita salasana avataksesi tämän PDF-tiedoston'; + r'Syötä salasana avataksesi tämän PDF-tiedoston'; @override String get passwordDialogHeaderTextLabel => r'Salasana suojattu'; @@ -6083,8 +6140,7 @@ class SfLocalizationsFil extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Kanselahin'; @override - String get clearFilterFromDataGridFilteringLabel => - r'I-clear ang Filter Mula sa'; + String get clearFilterDataGridFilteringLabel => r'I-clear ang Filter'; @override String get containsDataGridFilteringLabel => r'Naglalaman'; @@ -6122,6 +6178,9 @@ class SfLocalizationsFil extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'katumbas'; + @override + String get fromDataGridFilteringLabel => r'Mula sa'; + @override String get greaterThanDataGridFilteringLabel => r'Mahigit sa'; @@ -6384,7 +6443,7 @@ class SfLocalizationsFr extends SfGlobalLocalizations { r'Chronologie de la semaine de travail'; @override - String get allowedViewWeekLabel => r'Semaine'; + String get allowedViewWeekLabel => r'La semaine'; @override String get allowedViewWorkWeekLabel => r'Semaine de travail'; @@ -6405,7 +6464,7 @@ class SfLocalizationsFr extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Annuler'; @override - String get clearFilterFromDataGridFilteringLabel => r'Effacer le filtre de'; + String get clearFilterDataGridFilteringLabel => r'Effacer le filtre'; @override String get containsDataGridFilteringLabel => r'Contient'; @@ -6417,7 +6476,7 @@ class SfLocalizationsFr extends SfGlobalLocalizations { String get daySpanCountLabel => r'Jour'; @override - String get dhualhiLabel => r'Safar'; + String get dhualhiLabel => r'Dhu al-Hijjah'; @override String get dhualqiLabel => r'Dhou al-Qi' "'" r'dah'; @@ -6443,6 +6502,9 @@ class SfLocalizationsFr extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Équivaut à'; + @override + String get fromDataGridFilteringLabel => r'De'; + @override String get greaterThanDataGridFilteringLabel => r'Plus grand que'; @@ -6527,7 +6589,7 @@ class SfLocalizationsFr extends SfGlobalLocalizations { String get pdfHyperlinkDialogCancelLabel => r'ANNULER'; @override - String get pdfHyperlinkDialogOpenLabel => r'OUVRIR'; + String get pdfHyperlinkDialogOpenLabel => r'OUVERT'; @override String get pdfHyperlinkLabel => r'Ouvrir la page Web'; @@ -6543,13 +6605,13 @@ class SfLocalizationsFr extends SfGlobalLocalizations { String get pdfPaginationDialogCancelLabel => r'ANNULER'; @override - String get pdfPaginationDialogOkLabel => r'd' "'" r'accord'; + String get pdfPaginationDialogOkLabel => r'D' "'" r'ACCORD'; @override String get pdfPasswordDialogCancelLabel => r'ANNULER'; @override - String get pdfPasswordDialogOpenLabel => r'OUVRIR'; + String get pdfPasswordDialogOpenLabel => r'OUVERT'; @override String get pdfScrollStatusOfLabel => r'de'; @@ -6579,7 +6641,7 @@ class SfLocalizationsFr extends SfGlobalLocalizations { String get selectAllDataGridFilteringLabel => r'Tout sélectionner'; @override - String get series => r'Séries'; + String get series => r'Série'; @override String get shaabanLabel => r'Sha' "'" r'aban'; @@ -6658,7 +6720,7 @@ class SfLocalizationsFr extends SfGlobalLocalizations { String get todayLabel => r'Aujourd' "'" r'hui'; @override - String get weeknumberLabel => r'Semaine'; + String get weeknumberLabel => r'La semaine'; } /// The translations for Galician (`gl`). @@ -6695,7 +6757,7 @@ class SfLocalizationsGl extends SfGlobalLocalizations { String get allowedViewTimelineMonthLabel => r'Mes do cronograma'; @override - String get allowedViewTimelineWeekLabel => r'Semana do cronograma'; + String get allowedViewTimelineWeekLabel => r'Timeline Week'; @override String get allowedViewTimelineWorkWeekLabel => r'Timeline Work Week'; @@ -6722,7 +6784,7 @@ class SfLocalizationsGl extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Cancelar'; @override - String get clearFilterFromDataGridFilteringLabel => r'Borrar o filtro de'; + String get clearFilterDataGridFilteringLabel => r'Borrar filtro'; @override String get containsDataGridFilteringLabel => r'Contén'; @@ -6760,6 +6822,9 @@ class SfLocalizationsGl extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Iguais'; + @override + String get fromDataGridFilteringLabel => r'Desde'; + @override String get greaterThanDataGridFilteringLabel => r'Máis grande cá'; @@ -7016,7 +7081,7 @@ class SfLocalizationsGu extends SfGlobalLocalizations { String get allowedViewTimelineWorkWeekLabel => r'સમયરેખા કાર્ય સપ્તાહ'; @override - String get allowedViewWeekLabel => r'સપ્તાહ'; + String get allowedViewWeekLabel => r'અઠવાડિયું'; @override String get allowedViewWorkWeekLabel => r'કાર્ય સપ્તાહ'; @@ -7037,7 +7102,7 @@ class SfLocalizationsGu extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'રદ કરો'; @override - String get clearFilterFromDataGridFilteringLabel => r'આમાંથી ફિલ્ટર સાફ કરો'; + String get clearFilterDataGridFilteringLabel => r'ફિલ્ટર સાફ કરો'; @override String get containsDataGridFilteringLabel => r'સમાવે છે'; @@ -7075,6 +7140,9 @@ class SfLocalizationsGu extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'સમકક્ષ'; + @override + String get fromDataGridFilteringLabel => r'થી'; + @override String get greaterThanDataGridFilteringLabel => r'કરતા વધારે'; @@ -7289,7 +7357,7 @@ class SfLocalizationsGu extends SfGlobalLocalizations { String get todayLabel => r'આજે'; @override - String get weeknumberLabel => r'સપ્તાહ'; + String get weeknumberLabel => r'અઠવાડિયું'; } /// The translations for Hebrew (`he`). @@ -7329,7 +7397,7 @@ class SfLocalizationsHe extends SfGlobalLocalizations { String get allowedViewTimelineWeekLabel => r'שבוע ציר הזמן'; @override - String get allowedViewTimelineWorkWeekLabel => r'שבוע העבודה של ציר הזמן'; + String get allowedViewTimelineWorkWeekLabel => r'שבוע העבודה של ציר זמן'; @override String get allowedViewWeekLabel => r'שָׁבוּעַ'; @@ -7353,7 +7421,7 @@ class SfLocalizationsHe extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'לְבַטֵל'; @override - String get clearFilterFromDataGridFilteringLabel => r'נקה מסנן מ'; + String get clearFilterDataGridFilteringLabel => r'נקה מסנן'; @override String get containsDataGridFilteringLabel => r'מכיל'; @@ -7391,6 +7459,9 @@ class SfLocalizationsHe extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'שווים'; + @override + String get fromDataGridFilteringLabel => r'מ'; + @override String get greaterThanDataGridFilteringLabel => r'גדול מ'; @@ -7398,7 +7469,7 @@ class SfLocalizationsHe extends SfGlobalLocalizations { String get greaterThanOrEqualDataGridFilteringLabel => r'גדול או שווה'; @override - String get jumada1Label => r'ג' "'" r'ומדה אל-אוואל'; + String get jumada1Label => r'ג' "'" r'ומדה אל-אוול'; @override String get jumada2Label => r'ג' "'" r'ומדה אל-ת' "'" r'אני'; @@ -7468,7 +7539,7 @@ class SfLocalizationsHe extends SfGlobalLocalizations { String get pdfGoToPageLabel => r'לך לעמוד'; @override - String get pdfHyperlinkContentLabel => r'האם אתה רוצה לפתוח את הדף ב'; + String get pdfHyperlinkContentLabel => r'האם אתה רוצה לפתוח את העמוד ב'; @override String get pdfHyperlinkDialogCancelLabel => r'לְבַטֵל'; @@ -7513,7 +7584,7 @@ class SfLocalizationsHe extends SfGlobalLocalizations { String get ramadanLabel => r'רמדאן'; @override - String get rowsPerPageDataPagerLabel => r'שורות בעמוד'; + String get rowsPerPageDataPagerLabel => r'שורות לכל עמוד'; @override String get safarLabel => r'ספאר'; @@ -7531,7 +7602,7 @@ class SfLocalizationsHe extends SfGlobalLocalizations { String get shaabanLabel => r'שעבן'; @override - String get shawwalLabel => r'שוואל'; + String get shawwalLabel => r'שווואל'; @override String get shortDhualhiLabel => r'דהו' "'" "'" r'ל-ה'; @@ -7620,7 +7691,7 @@ class SfLocalizationsHi extends SfGlobalLocalizations { String get afterDataGridFilteringLabel => r'बाद में'; @override - String get afterOrEqualDataGridFilteringLabel => r'बाद या बराबर'; + String get afterOrEqualDataGridFilteringLabel => r'के बाद या बराबर'; @override String get allDayLabel => r'पूरे दिन'; @@ -7668,7 +7739,7 @@ class SfLocalizationsHi extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'रद्द करना'; @override - String get clearFilterFromDataGridFilteringLabel => r'से फ़िल्टर साफ़ करें'; + String get clearFilterDataGridFilteringLabel => r'स्पष्ट निस्यंदक'; @override String get containsDataGridFilteringLabel => r'रोकना'; @@ -7680,20 +7751,20 @@ class SfLocalizationsHi extends SfGlobalLocalizations { String get daySpanCountLabel => r'दिन'; @override - String get dhualhiLabel => r'धू अल-हिज्जाही'; + String get dhualhiLabel => r'धू अल-हिज्जाह'; @override - String get dhualqiLabel => r'धू अल क़िदाही'; + String get dhualqiLabel => r'धू अल-क़ीदाह'; @override - String get doesNotBeginWithDataGridFilteringLabel => r'से शुरू नहीं होता है'; + String get doesNotBeginWithDataGridFilteringLabel => + r'से प्रारंभ नहीं होता है'; @override String get doesNotContainDataGridFilteringLabel => r'शामिल नहीं है'; @override - String get doesNotEndWithDataGridFilteringLabel => - r'के साथ समाप्त नहीं होता है'; + String get doesNotEndWithDataGridFilteringLabel => r'से समाप्त नहीं होता है'; @override String get doesNotEqualDataGridFilteringLabel => r'बराबर नही हैं'; @@ -7707,6 +7778,9 @@ class SfLocalizationsHi extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'बराबर'; + @override + String get fromDataGridFilteringLabel => r'से'; + @override String get greaterThanDataGridFilteringLabel => r'से अधिक'; @@ -7747,7 +7821,7 @@ class SfLocalizationsHi extends SfGlobalLocalizations { String get nullDataGridFilteringLabel => r'शून्य'; @override - String get numberFiltersDataGridFilteringLabel => r'संख्या फ़िल्टर'; + String get numberFiltersDataGridFilteringLabel => r'नंबर फिल्टर'; @override String get ofDataPagerLabel => r'का'; @@ -7763,7 +7837,7 @@ class SfLocalizationsHi extends SfGlobalLocalizations { @override String get passwordDialogContentLabel => - r'इस पीडीएफ फाइल को खोलने के लिए पासवर्ड दर्ज करें'; + r'इस पीडीएफ फाइल को खोलने के लिए पासवर्ड डालें'; @override String get passwordDialogHeaderTextLabel => r'पासवर्ड से सुरक्षित'; @@ -7778,25 +7852,25 @@ class SfLocalizationsHi extends SfGlobalLocalizations { String get pdfBookmarksLabel => r'बुकमार्क'; @override - String get pdfEnterPageNumberLabel => r'पेज नंबर दर्ज करें'; + String get pdfEnterPageNumberLabel => r'पृष्ठ संख्या दर्ज करें'; @override String get pdfGoToPageLabel => r'पृष्ठ पर जाओ'; @override - String get pdfHyperlinkContentLabel => r'क्या आप यहां पेज खोलना चाहते हैं'; + String get pdfHyperlinkContentLabel => r'क्या आप पर पृष्ठ खोलना चाहते हैं'; @override - String get pdfHyperlinkDialogCancelLabel => r'रद्द करें'; + String get pdfHyperlinkDialogCancelLabel => r'रद्द करना'; @override - String get pdfHyperlinkDialogOpenLabel => r'खुला'; + String get pdfHyperlinkDialogOpenLabel => r'खोलना'; @override String get pdfHyperlinkLabel => r'वेब पेज खोलें'; @override - String get pdfInvalidPageNumberLabel => r'कृपया एक सही संख्या डालिये'; + String get pdfInvalidPageNumberLabel => r'कृपया सही अंक दर्ज करें'; @override String get pdfNoBookmarksLabel => r'कोई बुकमार्क नहीं मिला'; @@ -7805,13 +7879,13 @@ class SfLocalizationsHi extends SfGlobalLocalizations { String get pdfPaginationDialogCancelLabel => r'रद्द करना'; @override - String get pdfPaginationDialogOkLabel => r'ठीक'; + String get pdfPaginationDialogOkLabel => r'ठीक है'; @override String get pdfPasswordDialogCancelLabel => r'रद्द करना'; @override - String get pdfPasswordDialogOpenLabel => r'खुला हुआ'; + String get pdfPasswordDialogOpenLabel => r'खोलना'; @override String get pdfScrollStatusOfLabel => r'का'; @@ -7820,10 +7894,10 @@ class SfLocalizationsHi extends SfGlobalLocalizations { String get rabi1Label => r'रबी अल-अव्वल'; @override - String get rabi2Label => r'रबी अल-थानी'; + String get rabi2Label => r'रबी ' "'" r'अल-थानी'; @override - String get rajabLabel => r'राजाबी'; + String get rajabLabel => r'रज्जब'; @override String get ramadanLabel => r'रमजान'; @@ -7844,25 +7918,25 @@ class SfLocalizationsHi extends SfGlobalLocalizations { String get series => r'श्रृंखला'; @override - String get shaabanLabel => r'शाबानो'; + String get shaabanLabel => r'शाबान'; @override String get shawwalLabel => r'शावाल'; @override - String get shortDhualhiLabel => r'धुल-हो'; + String get shortDhualhiLabel => r'धुल-एच'; @override String get shortDhualqiLabel => r'धुल-क्यू'; @override - String get shortJumada1Label => r'जम. मैं'; + String get shortJumada1Label => r'जम। मैं'; @override - String get shortJumada2Label => r'जम. द्वितीय'; + String get shortJumada2Label => r'जम। द्वितीय'; @override - String get shortMuharramLabel => r'मुह.'; + String get shortMuharramLabel => r'मुह।'; @override String get shortRabi1Label => r'रबी। मैं'; @@ -7871,13 +7945,13 @@ class SfLocalizationsHi extends SfGlobalLocalizations { String get shortRabi2Label => r'रबी। द्वितीय'; @override - String get shortRajabLabel => r'राज.'; + String get shortRajabLabel => r'राज।'; @override String get shortRamadanLabel => r'टक्कर मारना।'; @override - String get shortSafarLabel => r'साफ.'; + String get shortSafarLabel => r'सफ।'; @override String get shortShaabanLabel => r'शा.'; @@ -7886,10 +7960,10 @@ class SfLocalizationsHi extends SfGlobalLocalizations { String get shortShawwalLabel => r'शॉ।'; @override - String get showRowsWhereDataGridFilteringLabel => r'पंक्तियाँ दिखाएँ जहाँ'; + String get showRowsWhereDataGridFilteringLabel => r'पंक्तियाँ कहाँ दिखाएँ'; @override - String get sortAToZDataGridFilteringLabel => r'A से Z तक क्रमित करें'; + String get sortAToZDataGridFilteringLabel => r'A से Z तक क्रमबद्ध करें'; @override String get sortAndFilterDataGridFilteringLabel => @@ -7897,25 +7971,25 @@ class SfLocalizationsHi extends SfGlobalLocalizations { @override String get sortLargestToSmallestDataGridFilteringLabel => - r'सबसे बड़े से सबसे छोटे को छाँटें'; + r'सबसे बड़े को सबसे छोटे के क्रम में लगाएं'; @override String get sortNewestToOldestDataGridFilteringLabel => - r'नवीनतम से सबसे पुराने को क्रमित करें'; + r'सबसे नए से सबसे पुराने के क्रम में लगाएं'; @override String get sortOldestToNewestDataGridFilteringLabel => - r'सबसे पुराने से नवीनतम के क्रम में लगाएं'; + r'सबसे पुराने से नए के क्रम में लगाएं'; @override String get sortSmallestToLargestDataGridFilteringLabel => - r'सबसे छोटे से सबसे बड़े को छाँटें'; + r'सबसे छोटे से बड़े के क्रम में लगाएं'; @override - String get sortZToADataGridFilteringLabel => r'Z से A में क्रमित करें'; + String get sortZToADataGridFilteringLabel => r'Z से A तक क्रमबद्ध करें'; @override - String get textFiltersDataGridFilteringLabel => r'टेक्स्ट फिल्टर'; + String get textFiltersDataGridFilteringLabel => r'पाठ फ़िल्टर'; @override String get todayLabel => r'आज'; @@ -7986,7 +8060,7 @@ class SfLocalizationsHr extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Otkazati'; @override - String get clearFilterFromDataGridFilteringLabel => r'Obriši filtar iz'; + String get clearFilterDataGridFilteringLabel => r'Obriši filtar'; @override String get containsDataGridFilteringLabel => r'Sadrži'; @@ -7998,13 +8072,13 @@ class SfLocalizationsHr extends SfGlobalLocalizations { String get daySpanCountLabel => r'Dan'; @override - String get dhualhiLabel => r'Dhu al-Hijjah'; + String get dhualhiLabel => r'zul-hidždže'; @override String get dhualqiLabel => r'Dhu al-Qi' "'" r'dah'; @override - String get doesNotBeginWithDataGridFilteringLabel => r'Ne počinje sa'; + String get doesNotBeginWithDataGridFilteringLabel => r'Ne počinje s'; @override String get doesNotContainDataGridFilteringLabel => r'Ne sadrži'; @@ -8024,6 +8098,9 @@ class SfLocalizationsHr extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Jednako'; + @override + String get fromDataGridFilteringLabel => r'Iz'; + @override String get greaterThanDataGridFilteringLabel => r'Veći od'; @@ -8031,7 +8108,7 @@ class SfLocalizationsHr extends SfGlobalLocalizations { String get greaterThanOrEqualDataGridFilteringLabel => r'Veće ili jednako'; @override - String get jumada1Label => r'Jumada al-awwal'; + String get jumada1Label => r'džumade el-evval'; @override String get jumada2Label => r'Jumada al-thani'; @@ -8043,7 +8120,7 @@ class SfLocalizationsHr extends SfGlobalLocalizations { String get lessThanOrEqualDataGridFilteringLabel => r'Manje ili jednako'; @override - String get muharramLabel => r'Muharem'; + String get muharramLabel => r'Muharrema'; @override String get noEventsCalendarLabel => r'Nema događaja'; @@ -8076,7 +8153,7 @@ class SfLocalizationsHr extends SfGlobalLocalizations { String get orDataGridFilteringLabel => r'Ili'; @override - String get pagesDataPagerLabel => r'stranicama'; + String get pagesDataPagerLabel => r'stranice'; @override String get passwordDialogContentLabel => @@ -8107,16 +8184,16 @@ class SfLocalizationsHr extends SfGlobalLocalizations { String get pdfHyperlinkDialogCancelLabel => r'OTKAZATI'; @override - String get pdfHyperlinkDialogOpenLabel => r'OTVOREN'; + String get pdfHyperlinkDialogOpenLabel => r'OTVORENA'; @override - String get pdfHyperlinkLabel => r'Otvorite web stranicu'; + String get pdfHyperlinkLabel => r'Otvori web stranicu'; @override - String get pdfInvalidPageNumberLabel => r'Unesite valjani broj'; + String get pdfInvalidPageNumberLabel => r'Unesite važeći broj'; @override - String get pdfNoBookmarksLabel => r'Nije pronađena nijedna oznaka'; + String get pdfNoBookmarksLabel => r'Nema pronađenih oznaka'; @override String get pdfPaginationDialogCancelLabel => r'OTKAZATI'; @@ -8134,16 +8211,16 @@ class SfLocalizationsHr extends SfGlobalLocalizations { String get pdfScrollStatusOfLabel => r'od'; @override - String get rabi1Label => r'Rabi' "'" r' el-evval'; + String get rabi1Label => r'Rabi' "'" r' al-awwal'; @override String get rabi2Label => r'Rabi' "'" r' al-thani'; @override - String get rajabLabel => r'Radžab'; + String get rajabLabel => r'Radžeb'; @override - String get ramadanLabel => r'ramazana'; + String get ramadanLabel => r'Ramazan'; @override String get rowsPerPageDataPagerLabel => r'Redovi po stranici'; @@ -8161,16 +8238,16 @@ class SfLocalizationsHr extends SfGlobalLocalizations { String get series => r'Niz'; @override - String get shaabanLabel => r'Sha' "'" r'aban'; + String get shaabanLabel => r'ša' "'" r'aban'; @override - String get shawwalLabel => r'Shawwal'; + String get shawwalLabel => r'ševval'; @override - String get shortDhualhiLabel => r'Dhu' "'" r'l-H'; + String get shortDhualhiLabel => r'Zul-H'; @override - String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; + String get shortDhualqiLabel => r'Zul-Q'; @override String get shortJumada1Label => r'Jum. ja'; @@ -8301,7 +8378,7 @@ class SfLocalizationsHu extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Megszünteti'; @override - String get clearFilterFromDataGridFilteringLabel => r'Szűrő törlése'; + String get clearFilterDataGridFilteringLabel => r'Szűrő törlése'; @override String get containsDataGridFilteringLabel => r'Tartalmaz'; @@ -8339,6 +8416,9 @@ class SfLocalizationsHu extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Egyenlő'; + @override + String get fromDataGridFilteringLabel => r'Tól től'; + @override String get greaterThanDataGridFilteringLabel => r'Nagyobb, mint'; @@ -8430,7 +8510,8 @@ class SfLocalizationsHu extends SfGlobalLocalizations { String get pdfHyperlinkLabel => r'Weboldal megnyitása'; @override - String get pdfInvalidPageNumberLabel => r'Adjon meg egy érvényes számot'; + String get pdfInvalidPageNumberLabel => + r'Kérjük, adjon meg egy érvényes számot'; @override String get pdfNoBookmarksLabel => r'Nem találhatók könyvjelzők'; @@ -8460,7 +8541,7 @@ class SfLocalizationsHu extends SfGlobalLocalizations { String get rajabLabel => r'Rajab'; @override - String get ramadanLabel => r'Ramadan'; + String get ramadanLabel => r'Ramadán'; @override String get rowsPerPageDataPagerLabel => r'Sorok oldalanként'; @@ -8619,7 +8700,7 @@ class SfLocalizationsHy extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Չեղարկել'; @override - String get clearFilterFromDataGridFilteringLabel => r'Մաքրել զտիչը'; + String get clearFilterDataGridFilteringLabel => r'Մաքրել զտիչը'; @override String get containsDataGridFilteringLabel => r'Պարունակում է'; @@ -8657,6 +8738,9 @@ class SfLocalizationsHy extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Հավասար է'; + @override + String get fromDataGridFilteringLabel => r'Սկսած'; + @override String get greaterThanDataGridFilteringLabel => r'Ավելի մեծ քան'; @@ -8665,7 +8749,7 @@ class SfLocalizationsHy extends SfGlobalLocalizations { r'Ավելի մեծ, քան հավասար'; @override - String get jumada1Label => r'Ջումադա ալ-ավալ'; + String get jumada1Label => r'Ջումադա ալ-ավվալ'; @override String get jumada2Label => r'Ջումադա ալ-Թանի'; @@ -8677,7 +8761,7 @@ class SfLocalizationsHy extends SfGlobalLocalizations { String get lessThanOrEqualDataGridFilteringLabel => r'Ավելի քիչ, քան հավասար'; @override - String get muharramLabel => r'Մուհարամ'; + String get muharramLabel => r'Մուհարրամ'; @override String get noEventsCalendarLabel => r'Միջոցառումներ չկան'; @@ -8735,7 +8819,7 @@ class SfLocalizationsHy extends SfGlobalLocalizations { String get pdfGoToPageLabel => r'Գնալ դեպի էջ'; @override - String get pdfHyperlinkContentLabel => r'Ցանկանու՞մ եք բացել էջը ժամը'; + String get pdfHyperlinkContentLabel => r'Ցանկանու՞մ եք բացել էջը'; @override String get pdfHyperlinkDialogCancelLabel => r'ՉԵՂԱՐԿԵԼ'; @@ -8905,19 +8989,19 @@ class SfLocalizationsId extends SfGlobalLocalizations { String get allowedViewTimelineDayLabel => r'Hari Garis Waktu'; @override - String get allowedViewTimelineMonthLabel => r'Garis Waktu Bulan'; + String get allowedViewTimelineMonthLabel => r'Bulan Garis Waktu'; @override - String get allowedViewTimelineWeekLabel => r'Garis Waktu Minggu'; + String get allowedViewTimelineWeekLabel => r'Minggu Garis Waktu'; @override - String get allowedViewTimelineWorkWeekLabel => r'Garis Waktu Minggu Kerja'; + String get allowedViewTimelineWorkWeekLabel => r'Minggu Kerja Timeline'; @override String get allowedViewWeekLabel => r'Pekan'; @override - String get allowedViewWorkWeekLabel => r'minggu kerja'; + String get allowedViewWorkWeekLabel => r'Minggu Kerja'; @override String get andDataGridFilteringLabel => r'Dan'; @@ -8935,7 +9019,7 @@ class SfLocalizationsId extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Membatalkan'; @override - String get clearFilterFromDataGridFilteringLabel => r'Hapus Filter Dari'; + String get clearFilterDataGridFilteringLabel => r'Hapus Filter'; @override String get containsDataGridFilteringLabel => r'Mengandung'; @@ -8950,7 +9034,7 @@ class SfLocalizationsId extends SfGlobalLocalizations { String get dhualhiLabel => r'Dzulhijjah'; @override - String get dhualqiLabel => r'Dzulqidah'; + String get dhualqiLabel => r'Dhu al-Qidah'; @override String get doesNotBeginWithDataGridFilteringLabel => r'Tidak Dimulai Dengan'; @@ -8971,14 +9055,17 @@ class SfLocalizationsId extends SfGlobalLocalizations { String get endsWithDataGridFilteringLabel => r'Berakhir dengan'; @override - String get equalsDataGridFilteringLabel => r'Setara'; + String get equalsDataGridFilteringLabel => r'Sama dengan'; + + @override + String get fromDataGridFilteringLabel => r'Dari'; @override String get greaterThanDataGridFilteringLabel => r'Lebih besar dari'; @override String get greaterThanOrEqualDataGridFilteringLabel => - r'Lebih Besar dari Atau Sama'; + r'Lebih Besar Dari Atau Sama Dengan'; @override String get jumada1Label => r'Jumada al-awwal'; @@ -9008,7 +9095,7 @@ class SfLocalizationsId extends SfGlobalLocalizations { String get notEmptyDataGridFilteringLabel => r'Tidak kosong'; @override - String get notNullDataGridFilteringLabel => r'Bukan Null'; + String get notNullDataGridFilteringLabel => r'Bukan Nol'; @override String get nullDataGridFilteringLabel => r'Batal'; @@ -9064,7 +9151,7 @@ class SfLocalizationsId extends SfGlobalLocalizations { String get pdfHyperlinkLabel => r'Buka Halaman Web'; @override - String get pdfInvalidPageNumberLabel => r'Harap masukkan nomor yang valid'; + String get pdfInvalidPageNumberLabel => r'Masukkan nomor yang valid'; @override String get pdfNoBookmarksLabel => r'Tidak ada bookmark yang ditemukan'; @@ -9073,7 +9160,7 @@ class SfLocalizationsId extends SfGlobalLocalizations { String get pdfPaginationDialogCancelLabel => r'MEMBATALKAN'; @override - String get pdfPaginationDialogOkLabel => r'oke'; + String get pdfPaginationDialogOkLabel => r'Oke'; @override String get pdfPasswordDialogCancelLabel => r'MEMBATALKAN'; @@ -9085,7 +9172,7 @@ class SfLocalizationsId extends SfGlobalLocalizations { String get pdfScrollStatusOfLabel => r'dari'; @override - String get rabi1Label => r'Rabi' "'" r' al-awwal'; + String get rabi1Label => r'Rabi' "'" r' al-awal'; @override String get rabi2Label => r'Rabi' "'" r' al-thani'; @@ -9100,7 +9187,7 @@ class SfLocalizationsId extends SfGlobalLocalizations { String get rowsPerPageDataPagerLabel => r'Baris per halaman'; @override - String get safarLabel => r'Safari'; + String get safarLabel => r'Safar'; @override String get searchDataGridFilteringLabel => r'Mencari'; @@ -9118,13 +9205,13 @@ class SfLocalizationsId extends SfGlobalLocalizations { String get shawwalLabel => r'Syawal'; @override - String get shortDhualhiLabel => r'Dhu' "'" r'l-H'; + String get shortDhualhiLabel => r'Dzul-H'; @override - String get shortDhualqiLabel => r'Dzul Q'; + String get shortDhualqiLabel => r'Dzul-Q'; @override - String get shortJumada1Label => r'Jum. saya'; + String get shortJumada1Label => r'Jum. Saya'; @override String get shortJumada2Label => r'Jum. II'; @@ -9133,7 +9220,7 @@ class SfLocalizationsId extends SfGlobalLocalizations { String get shortMuharramLabel => r'Muh.'; @override - String get shortRabi1Label => r'Rabi. saya'; + String get shortRabi1Label => r'Rabi. Saya'; @override String get shortRabi2Label => r'Rabi. II'; @@ -9142,16 +9229,16 @@ class SfLocalizationsId extends SfGlobalLocalizations { String get shortRajabLabel => r'Raj.'; @override - String get shortRamadanLabel => r'Rama.'; + String get shortRamadanLabel => r'Ram.'; @override - String get shortSafarLabel => r'saf.'; + String get shortSafarLabel => r'Aman'; @override String get shortShaabanLabel => r'Sha.'; @override - String get shortShawwalLabel => r'Shaw'; + String get shortShawwalLabel => r'Shaw.'; @override String get showRowsWhereDataGridFilteringLabel => r'Tampilkan baris di mana'; @@ -9164,19 +9251,19 @@ class SfLocalizationsId extends SfGlobalLocalizations { @override String get sortLargestToSmallestDataGridFilteringLabel => - r'Urutkan Terbesar ke Terkecil'; + r'Urutkan Terbesar Hingga Terkecil'; @override String get sortNewestToOldestDataGridFilteringLabel => - r'Urutkan Terbaru ke Terlama'; + r'Urutkan Terbaru Ke Terlama'; @override String get sortOldestToNewestDataGridFilteringLabel => - r'Urutkan Terlama ke Terbaru'; + r'Urutkan Terlama Ke Terbaru'; @override String get sortSmallestToLargestDataGridFilteringLabel => - r'Urutkan dari yang terkecil ke yang terbesar'; + r'Urutkan Terkecil Hingga Terbesar'; @override String get sortZToADataGridFilteringLabel => r'Urutkan Z Ke A'; @@ -9252,7 +9339,7 @@ class SfLocalizationsIs extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Hætta við'; @override - String get clearFilterFromDataGridFilteringLabel => r'Hreinsa síu frá'; + String get clearFilterDataGridFilteringLabel => r'Hreinsaðu síu'; @override String get containsDataGridFilteringLabel => r'Inniheldur'; @@ -9290,6 +9377,9 @@ class SfLocalizationsIs extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Jafnt'; + @override + String get fromDataGridFilteringLabel => r'Frá'; + @override String get greaterThanDataGridFilteringLabel => r'Meiri en'; @@ -9379,7 +9469,7 @@ class SfLocalizationsIs extends SfGlobalLocalizations { String get pdfHyperlinkLabel => r'Opnaðu vefsíðu'; @override - String get pdfInvalidPageNumberLabel => r'Vinsamlega sláðu inn gilt númer'; + String get pdfInvalidPageNumberLabel => r'Vinsamlegast sláðu inn gilt númer'; @override String get pdfNoBookmarksLabel => r'Engin bókamerki fundust'; @@ -9534,19 +9624,17 @@ class SfLocalizationsIt extends SfGlobalLocalizations { String get allowedViewScheduleLabel => r'Programma'; @override - String get allowedViewTimelineDayLabel => - r'Giornata della sequenza temporale'; + String get allowedViewTimelineDayLabel => r'Giorno della cronologia'; @override - String get allowedViewTimelineMonthLabel => r'Mese della sequenza temporale'; + String get allowedViewTimelineMonthLabel => r'Mese cronologico'; @override - String get allowedViewTimelineWeekLabel => - r'Settimana della sequenza temporale'; + String get allowedViewTimelineWeekLabel => r'Settimana della cronologia'; @override String get allowedViewTimelineWorkWeekLabel => - r'Settimana del lavoro cronologico'; + r'Cronologia della settimana lavorativa'; @override String get allowedViewWeekLabel => r'Settimana'; @@ -9570,7 +9658,7 @@ class SfLocalizationsIt extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Annulla'; @override - String get clearFilterFromDataGridFilteringLabel => r'Cancella filtro da'; + String get clearFilterDataGridFilteringLabel => r'Filtro pulito'; @override String get containsDataGridFilteringLabel => r'Contiene'; @@ -9585,7 +9673,7 @@ class SfLocalizationsIt extends SfGlobalLocalizations { String get dhualhiLabel => r'Dhu al-Hijjah'; @override - String get dhualqiLabel => r'Dhu al-Qi' "'" r'dah'; + String get dhualqiLabel => r'Dhu al-Qidah'; @override String get doesNotBeginWithDataGridFilteringLabel => r'Non inizia con'; @@ -9608,6 +9696,9 @@ class SfLocalizationsIt extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'È uguale a'; + @override + String get fromDataGridFilteringLabel => r'Da'; + @override String get greaterThanDataGridFilteringLabel => r'Più grande di'; @@ -9685,7 +9776,7 @@ class SfLocalizationsIt extends SfGlobalLocalizations { String get pdfGoToPageLabel => r'Vai alla pagina'; @override - String get pdfHyperlinkContentLabel => r'Vuoi aprire la pagina a'; + String get pdfHyperlinkContentLabel => r'Vuoi aprire la pagina in'; @override String get pdfHyperlinkDialogCancelLabel => r'ANNULLA'; @@ -9707,7 +9798,7 @@ class SfLocalizationsIt extends SfGlobalLocalizations { String get pdfPaginationDialogCancelLabel => r'ANNULLA'; @override - String get pdfPaginationDialogOkLabel => r'ok'; + String get pdfPaginationDialogOkLabel => r'OK'; @override String get pdfPasswordDialogCancelLabel => r'ANNULLA'; @@ -9758,19 +9849,19 @@ class SfLocalizationsIt extends SfGlobalLocalizations { String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; @override - String get shortJumada1Label => r'Salto. io'; + String get shortJumada1Label => r'Jum. io'; @override - String get shortJumada2Label => r'Salto. II'; + String get shortJumada2Label => r'Jum. II'; @override - String get shortMuharramLabel => r'Mah.'; + String get shortMuharramLabel => r'Muh.'; @override - String get shortRabi1Label => r'Rabi. io'; + String get shortRabi1Label => r'Rabbi. io'; @override - String get shortRabi2Label => r'Rabi. II'; + String get shortRabi2Label => r'Rabbi. II'; @override String get shortRajabLabel => r'Raj.'; @@ -9859,16 +9950,16 @@ class SfLocalizationsJa extends SfGlobalLocalizations { String get allowedViewTimelineMonthLabel => r'タイムライン月'; @override - String get allowedViewTimelineWeekLabel => r'タイムラインウィーク'; + String get allowedViewTimelineWeekLabel => r'タイムライン 週'; @override - String get allowedViewTimelineWorkWeekLabel => r'タイムラインワークウィーク'; + String get allowedViewTimelineWorkWeekLabel => r'タイムライン 作業週'; @override String get allowedViewWeekLabel => r'週'; @override - String get allowedViewWorkWeekLabel => r'労働週'; + String get allowedViewWorkWeekLabel => r'勤務週'; @override String get andDataGridFilteringLabel => r'と'; @@ -9886,7 +9977,7 @@ class SfLocalizationsJa extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'キャンセル'; @override - String get clearFilterFromDataGridFilteringLabel => r'フィルターをクリアする'; + String get clearFilterDataGridFilteringLabel => r'フィルターをクリア'; @override String get containsDataGridFilteringLabel => r'含む'; @@ -9898,10 +9989,10 @@ class SfLocalizationsJa extends SfGlobalLocalizations { String get daySpanCountLabel => r'日'; @override - String get dhualhiLabel => r'ズーアルヒジャ'; + String get dhualhiLabel => r'ドゥ アル ヒジャ'; @override - String get dhualqiLabel => r'ズーアルチーダー'; + String get dhualqiLabel => r'ドゥ アルキダ'; @override String get doesNotBeginWithDataGridFilteringLabel => r'次で始まらない'; @@ -9924,6 +10015,9 @@ class SfLocalizationsJa extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'等しい'; + @override + String get fromDataGridFilteringLabel => r'から'; + @override String get greaterThanDataGridFilteringLabel => r'より大きい'; @@ -9931,10 +10025,10 @@ class SfLocalizationsJa extends SfGlobalLocalizations { String get greaterThanOrEqualDataGridFilteringLabel => r'以上'; @override - String get jumada1Label => r'ジュマーダ・アル・アウワル'; + String get jumada1Label => r'ジュマーダ・アル・アワル'; @override - String get jumada2Label => r'ジュマーダ・アルタニ'; + String get jumada2Label => r'ジュマーダ アルタニ'; @override String get lessThanDataGridFilteringLabel => r'未満'; @@ -9943,7 +10037,7 @@ class SfLocalizationsJa extends SfGlobalLocalizations { String get lessThanOrEqualDataGridFilteringLabel => r'以下'; @override - String get muharramLabel => r'ムハッラム'; + String get muharramLabel => r'ムハラム'; @override String get noEventsCalendarLabel => r'イベントなし'; @@ -9979,7 +10073,7 @@ class SfLocalizationsJa extends SfGlobalLocalizations { String get pagesDataPagerLabel => r'ページ'; @override - String get passwordDialogContentLabel => r'このPDFファイルを開くためのパスワードを入力してください'; + String get passwordDialogContentLabel => r'このPDFファイルを開くにはパスワードを入力してください'; @override String get passwordDialogHeaderTextLabel => r'守られたパスワード'; @@ -10000,7 +10094,7 @@ class SfLocalizationsJa extends SfGlobalLocalizations { String get pdfGoToPageLabel => r'ページに移動'; @override - String get pdfHyperlinkContentLabel => r'次のページを開きますか'; + String get pdfHyperlinkContentLabel => r'でページを開きますか?'; @override String get pdfHyperlinkDialogCancelLabel => r'キャンセル'; @@ -10009,7 +10103,7 @@ class SfLocalizationsJa extends SfGlobalLocalizations { String get pdfHyperlinkDialogOpenLabel => r'開いた'; @override - String get pdfHyperlinkLabel => r'Webページを開く'; + String get pdfHyperlinkLabel => r'ウェブページを開く'; @override String get pdfInvalidPageNumberLabel => r'有効な数値を入力してください'; @@ -10033,10 +10127,10 @@ class SfLocalizationsJa extends SfGlobalLocalizations { String get pdfScrollStatusOfLabel => r'の'; @override - String get rabi1Label => r'ラビー・ウル・アウワル'; + String get rabi1Label => r'ラビアルアワル'; @override - String get rabi2Label => r'ラビー・アル・タニ'; + String get rabi2Label => r'ラビアルタニ'; @override String get rajabLabel => r'ラジャブ'; @@ -10045,10 +10139,10 @@ class SfLocalizationsJa extends SfGlobalLocalizations { String get ramadanLabel => r'ラマダン'; @override - String get rowsPerPageDataPagerLabel => r'1ページあたりの行数'; + String get rowsPerPageDataPagerLabel => r'ページあたりの行数'; @override - String get safarLabel => r'Safar'; + String get safarLabel => r'サファル'; @override String get searchDataGridFilteringLabel => r'探す'; @@ -10060,31 +10154,31 @@ class SfLocalizationsJa extends SfGlobalLocalizations { String get series => r'シリーズ'; @override - String get shaabanLabel => r'シャアバーン'; + String get shaabanLabel => r'シャアバン'; @override - String get shawwalLabel => r'シャウワール'; + String get shawwalLabel => r'シャワル'; @override - String get shortDhualhiLabel => r'Dhu' "'" r'l-H'; + String get shortDhualhiLabel => r'デュル-H'; @override - String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; + String get shortDhualqiLabel => r'デュルQ'; @override String get shortJumada1Label => r'ジャム。私'; @override - String get shortJumada2Label => r'ジャム。 II'; + String get shortJumada2Label => r'ジャム。 Ⅱ'; @override - String get shortMuharramLabel => r'ムー。'; + String get shortMuharramLabel => r'うーん。'; @override String get shortRabi1Label => r'ラビ。私'; @override - String get shortRabi2Label => r'ラビ。 II'; + String get shortRabi2Label => r'ラビ。 Ⅱ'; @override String get shortRajabLabel => r'ラージ。'; @@ -10093,10 +10187,10 @@ class SfLocalizationsJa extends SfGlobalLocalizations { String get shortRamadanLabel => r'RAM。'; @override - String get shortSafarLabel => r'Saf。'; + String get shortSafarLabel => r'サフ。'; @override - String get shortShaabanLabel => r'シャ。'; + String get shortShaabanLabel => r'しゃ。'; @override String get shortShawwalLabel => r'ショー。'; @@ -10155,7 +10249,7 @@ class SfLocalizationsKa extends SfGlobalLocalizations { String get allDayLabel => r'Მთელი დღე'; @override - String get allowedViewDayLabel => r'Დღეს'; + String get allowedViewDayLabel => r'Დღის'; @override String get allowedViewMonthLabel => r'თვე'; @@ -10197,7 +10291,7 @@ class SfLocalizationsKa extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'გაუქმება'; @override - String get clearFilterFromDataGridFilteringLabel => r'ფილტრის გასუფთავება'; + String get clearFilterDataGridFilteringLabel => r'ფილტრის გასუფთავება'; @override String get containsDataGridFilteringLabel => r'შეიცავს'; @@ -10206,7 +10300,7 @@ class SfLocalizationsKa extends SfGlobalLocalizations { String get dateFiltersDataGridFilteringLabel => r'თარიღის ფილტრები'; @override - String get daySpanCountLabel => r'Დღეს'; + String get daySpanCountLabel => r'Დღის'; @override String get dhualhiLabel => r'დჰულ-ჰიჯა'; @@ -10235,6 +10329,9 @@ class SfLocalizationsKa extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'უდრის'; + @override + String get fromDataGridFilteringLabel => r'დან'; + @override String get greaterThanDataGridFilteringLabel => r'Მეტია, ვიდრე'; @@ -10269,7 +10366,7 @@ class SfLocalizationsKa extends SfGlobalLocalizations { String get notEmptyDataGridFilteringLabel => r'Არ არის ცარიელი'; @override - String get notNullDataGridFilteringLabel => r'არა ნული'; + String get notNullDataGridFilteringLabel => r'არა ნულოვანი'; @override String get nullDataGridFilteringLabel => r'ნულოვანი'; @@ -10312,7 +10409,7 @@ class SfLocalizationsKa extends SfGlobalLocalizations { String get pdfGoToPageLabel => r'Გადადით გვერდზე'; @override - String get pdfHyperlinkContentLabel => r'გსურთ გახსნათ გვერდი:'; + String get pdfHyperlinkContentLabel => r'გსურთ გახსნათ გვერდი'; @override String get pdfHyperlinkDialogCancelLabel => r'გაუქმება'; @@ -10424,11 +10521,11 @@ class SfLocalizationsKa extends SfGlobalLocalizations { @override String get sortLargestToSmallestDataGridFilteringLabel => - r'დახარისხება დიდიდან პატარამდე'; + r'სორტირება დიდიდან პატარამდე'; @override String get sortNewestToOldestDataGridFilteringLabel => - r'სორტირება უახლესიდან ძველზე'; + r'დალაგება უახლესიდან ძველზე'; @override String get sortOldestToNewestDataGridFilteringLabel => @@ -10512,7 +10609,7 @@ class SfLocalizationsKk extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Болдырмау'; @override - String get clearFilterFromDataGridFilteringLabel => r'Сүзгіден тазалау'; + String get clearFilterDataGridFilteringLabel => r'Сүзгіні тазалау'; @override String get containsDataGridFilteringLabel => r'Құрамында'; @@ -10527,7 +10624,7 @@ class SfLocalizationsKk extends SfGlobalLocalizations { String get dhualhiLabel => r'Зул-Хиджа'; @override - String get dhualqiLabel => r'Зу әл-Қида'; + String get dhualqiLabel => r'Зул-Қида'; @override String get doesNotBeginWithDataGridFilteringLabel => r'Бастамайды'; @@ -10550,6 +10647,9 @@ class SfLocalizationsKk extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Тең'; + @override + String get fromDataGridFilteringLabel => r'бастап'; + @override String get greaterThanDataGridFilteringLabel => r'Үлкенірек'; @@ -10593,7 +10693,7 @@ class SfLocalizationsKk extends SfGlobalLocalizations { String get numberFiltersDataGridFilteringLabel => r'Сандық сүзгілер'; @override - String get ofDataPagerLabel => r'бойынша'; + String get ofDataPagerLabel => r'ның'; @override String get okDataGridFilteringLabel => r'ЖАРАЙДЫ МА'; @@ -10615,7 +10715,7 @@ class SfLocalizationsKk extends SfGlobalLocalizations { String get passwordDialogHintTextLabel => r'Құпия сөзді енгізіңіз'; @override - String get passwordDialogInvalidPasswordLabel => r'Құпия сөз жарамсыз'; + String get passwordDialogInvalidPasswordLabel => r'Жарамсыз құпия сөз'; @override String get pdfBookmarksLabel => r'Бетбелгілер'; @@ -10627,7 +10727,7 @@ class SfLocalizationsKk extends SfGlobalLocalizations { String get pdfGoToPageLabel => r'Бетке өту'; @override - String get pdfHyperlinkContentLabel => r'бетті ашқыңыз келе ме?'; + String get pdfHyperlinkContentLabel => r'бетті ашқыңыз келе ме'; @override String get pdfHyperlinkDialogCancelLabel => r'БАС ТАРТУ'; @@ -10657,7 +10757,7 @@ class SfLocalizationsKk extends SfGlobalLocalizations { String get pdfPasswordDialogOpenLabel => r'АШЫҚ'; @override - String get pdfScrollStatusOfLabel => r'бойынша'; + String get pdfScrollStatusOfLabel => r'ның'; @override String get rabi1Label => r'Раби' "'" r' әл-әууәл'; @@ -10696,7 +10796,7 @@ class SfLocalizationsKk extends SfGlobalLocalizations { String get shortDhualhiLabel => r'Зул-Х'; @override - String get shortDhualqiLabel => r'Зул-Қ'; + String get shortDhualqiLabel => r'Зуль-Қ'; @override String get shortJumada1Label => r'Jum. I'; @@ -10798,7 +10898,7 @@ class SfLocalizationsKm extends SfGlobalLocalizations { String get allowedViewTimelineDayLabel => r'ថ្ងៃកំណត់ពេលវេលា'; @override - String get allowedViewTimelineMonthLabel => r'តារាងពេលវេលាខែ'; + String get allowedViewTimelineMonthLabel => r'ខែពេលវេលា'; @override String get allowedViewTimelineWeekLabel => r'Timeline សប្តាហ៍'; @@ -10828,7 +10928,7 @@ class SfLocalizationsKm extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'បោះបង់'; @override - String get clearFilterFromDataGridFilteringLabel => r'ជម្រះតម្រងពី'; + String get clearFilterDataGridFilteringLabel => r'ជម្រះតម្រង'; @override String get containsDataGridFilteringLabel => r'មាន'; @@ -10866,6 +10966,9 @@ class SfLocalizationsKm extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'ស្មើ'; + @override + String get fromDataGridFilteringLabel => r'ពី'; + @override String get greaterThanDataGridFilteringLabel => r'ធំជាង'; @@ -11004,10 +11107,10 @@ class SfLocalizationsKm extends SfGlobalLocalizations { String get series => r'ស៊េរី'; @override - String get shaabanLabel => r'សារ៉ាបាន'; + String get shaabanLabel => r'សាបាន'; @override - String get shawwalLabel => r'Shawwal'; + String get shawwalLabel => r'សាវ៉ាវ'; @override String get shortDhualhiLabel => r'Dhu' "'" r'l-H'; @@ -11157,8 +11260,8 @@ class SfLocalizationsKn extends SfGlobalLocalizations { '\u{cb0}\u{ca6}\u{ccd}\u{ca6}\u{cc1}\u{cae}\u{cbe}\u{ca1}\u{cbf}'; @override - String get clearFilterFromDataGridFilteringLabel => - '\u{ca8}\u{cbf}\u{c82}\u{ca6}\u{20}\u{cab}\u{cbf}\u{cb2}\u{ccd}\u{c9f}\u{cb0}\u{ccd}\u{20}\u{c85}\u{ca8}\u{ccd}\u{ca8}\u{cc1}\u{20}\u{ca4}\u{cc6}\u{cb0}\u{cb5}\u{cc1}\u{c97}\u{cca}\u{cb3}\u{cbf}\u{cb8}\u{cbf}'; + String get clearFilterDataGridFilteringLabel => + '\u{cab}\u{cbf}\u{cb2}\u{ccd}\u{c9f}\u{cb0}\u{ccd}\u{20}\u{c85}\u{ca8}\u{ccd}\u{ca8}\u{cc1}\u{20}\u{ca4}\u{cc6}\u{cb0}\u{cb5}\u{cc1}\u{c97}\u{cca}\u{cb3}\u{cbf}\u{cb8}\u{cbf}'; @override String get containsDataGridFilteringLabel => @@ -11206,6 +11309,9 @@ class SfLocalizationsKn extends SfGlobalLocalizations { String get equalsDataGridFilteringLabel => '\u{cb8}\u{cae}\u{ca8}\u{cbe}\u{c97}\u{cbf}\u{cb0}\u{cc1}\u{ca4}\u{ccd}\u{ca4}\u{ca6}\u{cc6}'; + @override + String get fromDataGridFilteringLabel => '\u{c87}\u{c82}\u{ca6}'; + @override String get greaterThanDataGridFilteringLabel => '\u{c85}\u{ca6}\u{c95}\u{ccd}\u{c95}\u{cbf}\u{c82}\u{ca4}\u{20}\u{cb9}\u{cc6}\u{c9a}\u{ccd}\u{c9a}\u{cc1}'; @@ -11276,7 +11382,7 @@ class SfLocalizationsKn extends SfGlobalLocalizations { @override String get passwordDialogContentLabel => - '\u{c88}\u{20}\u{50}\u{44}\u{46}\u{20}\u{cab}\u{cc8}\u{cb2}\u{ccd}\u{20}\u{c85}\u{ca8}\u{ccd}\u{ca8}\u{cc1}\u{20}\u{ca4}\u{cc6}\u{cb0}\u{cc6}\u{caf}\u{cb2}\u{cc1}\u{20}\u{caa}\u{cbe}\u{cb8}\u{ccd}\u{cb5}\u{cb0}\u{ccd}\u{ca1}\u{ccd}\u{20}\u{c85}\u{ca8}\u{ccd}\u{ca8}\u{cc1}\u{20}\u{ca8}\u{cae}\u{cc2}\u{ca6}\u{cbf}\u{cb8}\u{cbf}'; + '\u{c88}\u{20}\u{50}\u{44}\u{46}\u{20}\u{cab}\u{cc8}\u{cb2}\u{ccd}\u{20}\u{ca4}\u{cc6}\u{cb0}\u{cc6}\u{caf}\u{cb2}\u{cc1}\u{20}\u{caa}\u{cbe}\u{cb8}\u{ccd}\u{200c}\u{cb5}\u{cb0}\u{ccd}\u{ca1}\u{ccd}\u{20}\u{ca8}\u{cae}\u{cc2}\u{ca6}\u{cbf}\u{cb8}\u{cbf}'; @override String get passwordDialogHeaderTextLabel => @@ -11401,10 +11507,10 @@ class SfLocalizationsKn extends SfGlobalLocalizations { String get shortMuharramLabel => '\u{cae}\u{cc1}\u{cb9}\u{ccd}'; @override - String get shortRabi1Label => '\u{cb0}\u{cac}\u{cbf}\u{2e}\u{20}\u{49}'; + String get shortRabi1Label => '\u{cb0}\u{cac}\u{cbf}\u{20}\u{49}'; @override - String get shortRabi2Label => '\u{cb0}\u{cac}\u{cbf}\u{2e}\u{20}\u{49}\u{49}'; + String get shortRabi2Label => '\u{cb0}\u{cac}\u{cbf}\u{20}\u{49}\u{49}'; @override String get shortRajabLabel => '\u{cb0}\u{cbe}\u{c9c}\u{ccd}\u{2e}'; @@ -11477,13 +11583,13 @@ class SfLocalizationsKo extends SfGlobalLocalizations { String get afterDataGridFilteringLabel => r'후에'; @override - String get afterOrEqualDataGridFilteringLabel => r'이후 또는 같음'; + String get afterOrEqualDataGridFilteringLabel => r'후 또는 같음'; @override String get allDayLabel => r'하루 종일'; @override - String get allowedViewDayLabel => r'일'; + String get allowedViewDayLabel => r'낮'; @override String get allowedViewMonthLabel => r'월'; @@ -11492,22 +11598,22 @@ class SfLocalizationsKo extends SfGlobalLocalizations { String get allowedViewScheduleLabel => r'일정'; @override - String get allowedViewTimelineDayLabel => r'타임라인의 날'; + String get allowedViewTimelineDayLabel => r'타임라인 데이'; @override String get allowedViewTimelineMonthLabel => r'타임라인 월'; @override - String get allowedViewTimelineWeekLabel => r'타임라인 주간'; + String get allowedViewTimelineWeekLabel => r'타임라인 위크'; @override - String get allowedViewTimelineWorkWeekLabel => r'타임라인 작업 주간'; + String get allowedViewTimelineWorkWeekLabel => r'타임라인 작업 주'; @override String get allowedViewWeekLabel => r'주'; @override - String get allowedViewWorkWeekLabel => r'작업 주간'; + String get allowedViewWorkWeekLabel => r'근무 주'; @override String get andDataGridFilteringLabel => r'그리고'; @@ -11519,13 +11625,13 @@ class SfLocalizationsKo extends SfGlobalLocalizations { String get beforeOrEqualDataGridFilteringLabel => r'전에'; @override - String get beginsWithDataGridFilteringLabel => r'시작'; + String get beginsWithDataGridFilteringLabel => r'다음으로 시작'; @override String get cancelDataGridFilteringLabel => r'취소'; @override - String get clearFilterFromDataGridFilteringLabel => r'필터 지우기'; + String get clearFilterDataGridFilteringLabel => r'필터 지우기'; @override String get containsDataGridFilteringLabel => r'포함'; @@ -11534,22 +11640,22 @@ class SfLocalizationsKo extends SfGlobalLocalizations { String get dateFiltersDataGridFilteringLabel => r'날짜 필터'; @override - String get daySpanCountLabel => r'일'; + String get daySpanCountLabel => r'낮'; @override String get dhualhiLabel => r'두 알 히자'; @override - String get dhualqiLabel => r'두 알 키다'; + String get dhualqiLabel => r'두 알 키이다'; @override - String get doesNotBeginWithDataGridFilteringLabel => r'로 시작하지 않음'; + String get doesNotBeginWithDataGridFilteringLabel => r'다음으로 시작하지 않음'; @override String get doesNotContainDataGridFilteringLabel => r'포함되어 있지 않다'; @override - String get doesNotEndWithDataGridFilteringLabel => r'로 끝나지 않음'; + String get doesNotEndWithDataGridFilteringLabel => r'다음으로 끝나지 않음'; @override String get doesNotEqualDataGridFilteringLabel => r'같지 않음'; @@ -11563,6 +11669,9 @@ class SfLocalizationsKo extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'같음'; + @override + String get fromDataGridFilteringLabel => r'에서'; + @override String get greaterThanDataGridFilteringLabel => r'보다 큰'; @@ -11573,7 +11682,7 @@ class SfLocalizationsKo extends SfGlobalLocalizations { String get jumada1Label => r'주마다 알-아왈'; @override - String get jumada2Label => r'주마다 알타니'; + String get jumada2Label => r'주마다 알 타니'; @override String get lessThanDataGridFilteringLabel => r'미만'; @@ -11585,13 +11694,13 @@ class SfLocalizationsKo extends SfGlobalLocalizations { String get muharramLabel => r'무하람'; @override - String get noEventsCalendarLabel => r'이벤트 없음'; + String get noEventsCalendarLabel => r'일정 없음'; @override String get noMatchesDataGridFilteringLabel => r'맞지 않는다'; @override - String get noSelectedDateCalendarLabel => r'선택한 날짜가 없습니다'; + String get noSelectedDateCalendarLabel => r'선택한 날짜 없음'; @override String get notEmptyDataGridFilteringLabel => r'비어 있지 않음'; @@ -11630,7 +11739,7 @@ class SfLocalizationsKo extends SfGlobalLocalizations { String get passwordDialogInvalidPasswordLabel => r'유효하지 않은 비밀번호'; @override - String get pdfBookmarksLabel => r'책갈피'; + String get pdfBookmarksLabel => r'북마크'; @override String get pdfEnterPageNumberLabel => r'페이지 번호 입력'; @@ -11639,7 +11748,7 @@ class SfLocalizationsKo extends SfGlobalLocalizations { String get pdfGoToPageLabel => r'페이지로 이동'; @override - String get pdfHyperlinkContentLabel => r'페이지를 열시겠습니까?'; + String get pdfHyperlinkContentLabel => r'에서 페이지를 열시겠습니까?'; @override String get pdfHyperlinkDialogCancelLabel => r'취소'; @@ -11651,22 +11760,22 @@ class SfLocalizationsKo extends SfGlobalLocalizations { String get pdfHyperlinkLabel => r'웹 페이지 열기'; @override - String get pdfInvalidPageNumberLabel => r'유효한 숫자를 입력하세요'; + String get pdfInvalidPageNumberLabel => r'유효한 숫자를 입력하세요.'; @override - String get pdfNoBookmarksLabel => r'북마크를 찾을 수 없습니다'; + String get pdfNoBookmarksLabel => r'북마크가 없습니다.'; @override String get pdfPaginationDialogCancelLabel => r'취소'; @override - String get pdfPaginationDialogOkLabel => r'좋아요'; + String get pdfPaginationDialogOkLabel => r'확인'; @override String get pdfPasswordDialogCancelLabel => r'취소'; @override - String get pdfPasswordDialogOpenLabel => r'열려있는'; + String get pdfPasswordDialogOpenLabel => r'열려 있는'; @override String get pdfScrollStatusOfLabel => r'의'; @@ -11675,10 +11784,10 @@ class SfLocalizationsKo extends SfGlobalLocalizations { String get rabi1Label => r'라비 알-아왈'; @override - String get rabi2Label => r'라비 알타니'; + String get rabi2Label => r'라비 알 타니'; @override - String get rajabLabel => r'라자브'; + String get rajabLabel => r'라잡'; @override String get ramadanLabel => r'라마단'; @@ -11717,7 +11826,7 @@ class SfLocalizationsKo extends SfGlobalLocalizations { String get shortJumada2Label => r'줌. II'; @override - String get shortMuharramLabel => r'음.'; + String get shortMuharramLabel => r'머.'; @override String get shortRabi1Label => r'라비. 나'; @@ -11741,30 +11850,28 @@ class SfLocalizationsKo extends SfGlobalLocalizations { String get shortShawwalLabel => r'쇼.'; @override - String get showRowsWhereDataGridFilteringLabel => r'행 표시'; + String get showRowsWhereDataGridFilteringLabel => r'어디에 행 표시'; @override - String get sortAToZDataGridFilteringLabel => r'A에서 Z로 정렬'; + String get sortAToZDataGridFilteringLabel => r'A부터 Z까지 정렬'; @override String get sortAndFilterDataGridFilteringLabel => r'정렬 및 필터링'; @override - String get sortLargestToSmallestDataGridFilteringLabel => - r'큰 것부터 작은 것 순으로 정렬'; + String get sortLargestToSmallestDataGridFilteringLabel => r'내림차순 정렬'; @override String get sortNewestToOldestDataGridFilteringLabel => r'최신순으로 정렬'; @override - String get sortOldestToNewestDataGridFilteringLabel => r'가장 오래된 것을 최신으로 정렬'; + String get sortOldestToNewestDataGridFilteringLabel => r'가장 오래된 것부터 최신순으로 정렬'; @override - String get sortSmallestToLargestDataGridFilteringLabel => - r'작은 것부터 큰 것 순으로 정렬'; + String get sortSmallestToLargestDataGridFilteringLabel => r'작은 것부터 큰 것까지 정렬'; @override - String get sortZToADataGridFilteringLabel => r'Z에서 A로 정렬'; + String get sortZToADataGridFilteringLabel => r'Z를 A로 정렬'; @override String get textFiltersDataGridFilteringLabel => r'텍스트 필터'; @@ -11795,7 +11902,7 @@ class SfLocalizationsKy extends SfGlobalLocalizations { String get allDayLabel => r'Күн бою'; @override - String get allowedViewDayLabel => r'Күн'; + String get allowedViewDayLabel => r'күн'; @override String get allowedViewMonthLabel => r'Ай'; @@ -11813,7 +11920,7 @@ class SfLocalizationsKy extends SfGlobalLocalizations { String get allowedViewTimelineWeekLabel => r'Timeline Week'; @override - String get allowedViewTimelineWorkWeekLabel => r'Иш жумалыгы'; + String get allowedViewTimelineWorkWeekLabel => r'Хронология иш жумасы'; @override String get allowedViewWeekLabel => r'Апта'; @@ -11837,7 +11944,7 @@ class SfLocalizationsKy extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Жокко чыгаруу'; @override - String get clearFilterFromDataGridFilteringLabel => r'Чыпканы тазалоо'; + String get clearFilterDataGridFilteringLabel => r'Чыпканы тазалоо'; @override String get containsDataGridFilteringLabel => r'камтыйт'; @@ -11846,7 +11953,7 @@ class SfLocalizationsKy extends SfGlobalLocalizations { String get dateFiltersDataGridFilteringLabel => r'Дата чыпкалары'; @override - String get daySpanCountLabel => r'Күн'; + String get daySpanCountLabel => r'күн'; @override String get dhualhiLabel => r'Зул Хижжа'; @@ -11875,6 +11982,9 @@ class SfLocalizationsKy extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'барабар'; + @override + String get fromDataGridFilteringLabel => r'From'; + @override String get greaterThanDataGridFilteringLabel => r'Чоңураак'; @@ -11994,7 +12104,7 @@ class SfLocalizationsKy extends SfGlobalLocalizations { String get rajabLabel => r'Ражаб'; @override - String get ramadanLabel => r'Рамазан'; + String get ramadanLabel => r'Орозо айт'; @override String get rowsPerPageDataPagerLabel => r'Ар бир беттеги саптар'; @@ -12154,7 +12264,7 @@ class SfLocalizationsLo extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'ຍົກເລີກ'; @override - String get clearFilterFromDataGridFilteringLabel => r'ລຶບການກັ່ນຕອງຈາກ'; + String get clearFilterDataGridFilteringLabel => r'ລ້າງການກັ່ນຕອງ'; @override String get containsDataGridFilteringLabel => r'ປະກອບດ້ວຍ'; @@ -12192,6 +12302,9 @@ class SfLocalizationsLo extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'ເທົ່າກັບ'; + @override + String get fromDataGridFilteringLabel => r'ຈາກ'; + @override String get greaterThanDataGridFilteringLabel => r'ໃຫຍ່​ກວ່າ'; @@ -12221,7 +12334,7 @@ class SfLocalizationsLo extends SfGlobalLocalizations { String get noMatchesDataGridFilteringLabel => r'ບໍ່ມີຂໍ້ມູນທີ່ກົງກັນ'; @override - String get noSelectedDateCalendarLabel => r'ບໍ່ມີວັນທີທີ່ເລືອກ'; + String get noSelectedDateCalendarLabel => r'ບໍ່ມີວັນທີເລືອກ'; @override String get notEmptyDataGridFilteringLabel => r'ບໍ່ຫວ່າງ'; @@ -12332,7 +12445,7 @@ class SfLocalizationsLo extends SfGlobalLocalizations { String get shaabanLabel => r'ຊາອາບານ'; @override - String get shawwalLabel => r'ຊວາວ'; + String get shawwalLabel => r'ຊະວາວ'; @override String get shortDhualhiLabel => r'Dhu' "'" r'l-H'; @@ -12469,7 +12582,7 @@ class SfLocalizationsLt extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Atšaukti'; @override - String get clearFilterFromDataGridFilteringLabel => r'Išvalyti filtrą iš'; + String get clearFilterDataGridFilteringLabel => r'Išvalyti filtrą'; @override String get containsDataGridFilteringLabel => r'Sudėtyje yra'; @@ -12507,6 +12620,9 @@ class SfLocalizationsLt extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Lygu'; + @override + String get fromDataGridFilteringLabel => r'Iš'; + @override String get greaterThanDataGridFilteringLabel => r'Geresnis negu'; @@ -12662,7 +12778,7 @@ class SfLocalizationsLt extends SfGlobalLocalizations { String get shortJumada2Label => r'Jum. II'; @override - String get shortMuharramLabel => r'aha.'; + String get shortMuharramLabel => r'Muh.'; @override String get shortRabi1Label => r'Rabi. aš'; @@ -12784,7 +12900,7 @@ class SfLocalizationsLv extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Atcelt'; @override - String get clearFilterFromDataGridFilteringLabel => r'Notīrīt filtru no'; + String get clearFilterDataGridFilteringLabel => r'Notīrīt filtru'; @override String get containsDataGridFilteringLabel => r'Satur'; @@ -12796,7 +12912,7 @@ class SfLocalizationsLv extends SfGlobalLocalizations { String get daySpanCountLabel => r'diena'; @override - String get dhualhiLabel => r'Dhu al-Hijjah'; + String get dhualhiLabel => r'Dhu al-Hidžja'; @override String get dhualqiLabel => r'Dhu al-Qi' "'" r'dah'; @@ -12822,6 +12938,9 @@ class SfLocalizationsLv extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Vienāds'; + @override + String get fromDataGridFilteringLabel => r'No'; + @override String get greaterThanDataGridFilteringLabel => r'Pārāks nekā'; @@ -13070,7 +13189,7 @@ class SfLocalizationsMk extends SfGlobalLocalizations { String get allowedViewTimelineDayLabel => r'Ден на времеплов'; @override - String get allowedViewTimelineMonthLabel => r'Времеплов месец'; + String get allowedViewTimelineMonthLabel => r'Месец на времеплов'; @override String get allowedViewTimelineWeekLabel => r'Недела на времеплов'; @@ -13101,7 +13220,7 @@ class SfLocalizationsMk extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Откажи'; @override - String get clearFilterFromDataGridFilteringLabel => r'Избриши го филтерот од'; + String get clearFilterDataGridFilteringLabel => r'Исчистете го филтерот'; @override String get containsDataGridFilteringLabel => r'Содржи'; @@ -13113,7 +13232,7 @@ class SfLocalizationsMk extends SfGlobalLocalizations { String get daySpanCountLabel => r'Ден'; @override - String get dhualhiLabel => r'Зу ал-Хиџа'; + String get dhualhiLabel => r'Зу ал Хиџа'; @override String get dhualqiLabel => r'Зу ал-Кида'; @@ -13139,6 +13258,9 @@ class SfLocalizationsMk extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Еднакви'; + @override + String get fromDataGridFilteringLabel => r'Од'; + @override String get greaterThanDataGridFilteringLabel => r'Поголема од'; @@ -13227,10 +13349,10 @@ class SfLocalizationsMk extends SfGlobalLocalizations { String get pdfHyperlinkDialogOpenLabel => r'ОТВОРЕНО'; @override - String get pdfHyperlinkLabel => r'Отворете веб-страница'; + String get pdfHyperlinkLabel => r'Отворете ја веб-страницата'; @override - String get pdfInvalidPageNumberLabel => r'Ве молиме внесете важечки број'; + String get pdfInvalidPageNumberLabel => r'Внесете важечки број'; @override String get pdfNoBookmarksLabel => r'Не се пронајдени обележувачи'; @@ -13287,7 +13409,7 @@ class SfLocalizationsMk extends SfGlobalLocalizations { String get shortDhualhiLabel => r'Дул-Х'; @override - String get shortDhualqiLabel => r'Дул-К'; + String get shortDhualqiLabel => r'Ду' "'" r'л-К'; @override String get shortJumada1Label => r'Џум. Јас'; @@ -13308,7 +13430,7 @@ class SfLocalizationsMk extends SfGlobalLocalizations { String get shortRajabLabel => r'Раџ.'; @override - String get shortRamadanLabel => r'Рам.'; + String get shortRamadanLabel => r'Овен.'; @override String get shortSafarLabel => r'Саф.'; @@ -13345,13 +13467,13 @@ class SfLocalizationsMk extends SfGlobalLocalizations { r'Подреди од најмал до најголем'; @override - String get sortZToADataGridFilteringLabel => r'Подреди од Ш во А'; + String get sortZToADataGridFilteringLabel => r'Подреди од Ш до А'; @override String get textFiltersDataGridFilteringLabel => r'Филтри за текст'; @override - String get todayLabel => r'Денеска'; + String get todayLabel => r'Денес'; @override String get weeknumberLabel => r'Недела'; @@ -13418,8 +13540,7 @@ class SfLocalizationsMl extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'റദ്ദാക്കുക'; @override - String get clearFilterFromDataGridFilteringLabel => - r'ഇതിൽ നിന്ന് ഫിൽട്ടർ മായ്‌ക്കുക'; + String get clearFilterDataGridFilteringLabel => r'ഫിൽട്ടർ മായ്‌ക്കുക'; @override String get containsDataGridFilteringLabel => r'അടങ്ങിയിരിക്കുന്നു'; @@ -13459,7 +13580,10 @@ class SfLocalizationsMl extends SfGlobalLocalizations { String get equalsDataGridFilteringLabel => r'തുല്യമാണ്'; @override - String get greaterThanDataGridFilteringLabel => r'ഇതിലും വലുത്'; + String get fromDataGridFilteringLabel => r'നിന്ന്'; + + @override + String get greaterThanDataGridFilteringLabel => r'അതിലും വലുത്'; @override String get greaterThanOrEqualDataGridFilteringLabel => @@ -13737,7 +13861,7 @@ class SfLocalizationsMn extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Цуцлах'; @override - String get clearFilterFromDataGridFilteringLabel => r'Шүүлтүүрийг арилгах'; + String get clearFilterDataGridFilteringLabel => r'Шүүлтүүрийг арилгах'; @override String get containsDataGridFilteringLabel => r'агуулсан'; @@ -13749,7 +13873,7 @@ class SfLocalizationsMn extends SfGlobalLocalizations { String get daySpanCountLabel => r'Өдөр'; @override - String get dhualhiLabel => r'Зу аль-Хижа'; + String get dhualhiLabel => r'Зул Хижжа'; @override String get dhualqiLabel => r'Зу аль-Кида'; @@ -13775,6 +13899,9 @@ class SfLocalizationsMn extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Тэнцүү'; + @override + String get fromDataGridFilteringLabel => r'-аас'; + @override String get greaterThanDataGridFilteringLabel => r'Илүү их'; @@ -14053,7 +14180,7 @@ class SfLocalizationsMr extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'रद्द करा'; @override - String get clearFilterFromDataGridFilteringLabel => r'पासून फिल्टर साफ करा'; + String get clearFilterDataGridFilteringLabel => r'फिल्टर साफ करा'; @override String get containsDataGridFilteringLabel => r'समाविष्ट आहे'; @@ -14091,6 +14218,9 @@ class SfLocalizationsMr extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'बरोबरी'; + @override + String get fromDataGridFilteringLabel => r'पासून'; + @override String get greaterThanDataGridFilteringLabel => r'या पेक्षा मोठे'; @@ -14099,7 +14229,7 @@ class SfLocalizationsMr extends SfGlobalLocalizations { r'पेक्षा मोठे किंवा समान'; @override - String get jumada1Label => r'जुमदा अल-अव्वल'; + String get jumada1Label => r'जुमदा अल-अव्वाल'; @override String get jumada2Label => r'जुमादा अल-थानी'; @@ -14205,7 +14335,7 @@ class SfLocalizationsMr extends SfGlobalLocalizations { String get rabi1Label => r'रबी अल अव्वल'; @override - String get rabi2Label => r'रबी अल-थानी'; + String get rabi2Label => r'रबी अल थानी'; @override String get rajabLabel => r'रजब'; @@ -14241,10 +14371,10 @@ class SfLocalizationsMr extends SfGlobalLocalizations { String get shortDhualqiLabel => r'धूल-प्र'; @override - String get shortJumada1Label => r'जम. आय'; + String get shortJumada1Label => r'जुम. आय'; @override - String get shortJumada2Label => r'जम. II'; + String get shortJumada2Label => r'जुम. II'; @override String get shortMuharramLabel => r'मुह.'; @@ -14290,7 +14420,7 @@ class SfLocalizationsMr extends SfGlobalLocalizations { @override String get sortOldestToNewestDataGridFilteringLabel => - r'सर्वात जुने ते नवीनतम क्रमवारी लावा'; + r'सर्वात जुनी ते नवीनतम क्रमवारी लावा'; @override String get sortSmallestToLargestDataGridFilteringLabel => @@ -14370,8 +14500,7 @@ class SfLocalizationsMs extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Batal'; @override - String get clearFilterFromDataGridFilteringLabel => - r'Kosongkan Penapis Daripada'; + String get clearFilterDataGridFilteringLabel => r'Kosongkan Penapis'; @override String get containsDataGridFilteringLabel => r'Mengandungi'; @@ -14409,6 +14538,9 @@ class SfLocalizationsMs extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'sama'; + @override + String get fromDataGridFilteringLabel => r'daripada'; + @override String get greaterThanDataGridFilteringLabel => r'Lebih besar daripada'; @@ -14660,7 +14792,7 @@ class SfLocalizationsMy extends SfGlobalLocalizations { String get allowedViewTimelineDayLabel => r'Timeline နေ့'; @override - String get allowedViewTimelineMonthLabel => r'အချိန်စာရင်းလ'; + String get allowedViewTimelineMonthLabel => r'Timeline လ'; @override String get allowedViewTimelineWeekLabel => r'Timeline Week'; @@ -14684,13 +14816,13 @@ class SfLocalizationsMy extends SfGlobalLocalizations { String get beforeOrEqualDataGridFilteringLabel => r'မီ'; @override - String get beginsWithDataGridFilteringLabel => r'ဖြင့် စတင်သည်။'; + String get beginsWithDataGridFilteringLabel => r'ဖြင့်စတင်သည်။'; @override String get cancelDataGridFilteringLabel => r'မလုပ်တော့'; @override - String get clearFilterFromDataGridFilteringLabel => r'Filter မှရှင်းလင်းပါ။'; + String get clearFilterDataGridFilteringLabel => r'Filter ကိုရှင်းလင်းပါ။'; @override String get containsDataGridFilteringLabel => r'ပါရှိသည်။'; @@ -14728,6 +14860,9 @@ class SfLocalizationsMy extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'ညီမျှသည်။'; + @override + String get fromDataGridFilteringLabel => r'ထံမှ'; + @override String get greaterThanDataGridFilteringLabel => r'ထက်မြတ်'; @@ -14792,7 +14927,7 @@ class SfLocalizationsMy extends SfGlobalLocalizations { String get passwordDialogHeaderTextLabel => r'စကားဝှက်ကို ကာကွယ်ထားသည်။'; @override - String get passwordDialogHintTextLabel => r'စကားဝှက်ထည့်ပါ။'; + String get passwordDialogHintTextLabel => r'Password ရိုက်ထည့်ပါ။'; @override String get passwordDialogInvalidPasswordLabel => r'မမှန်ကန်သော စကားဝှက်'; @@ -14829,7 +14964,7 @@ class SfLocalizationsMy extends SfGlobalLocalizations { String get pdfPaginationDialogCancelLabel => r'မလုပ်တော့ပါ။'; @override - String get pdfPaginationDialogOkLabel => r'အိုကေတယ်နော်'; + String get pdfPaginationDialogOkLabel => r'အဆင်ပြေလား'; @override String get pdfPasswordDialogCancelLabel => r'မလုပ်တော့ပါ။'; @@ -14850,7 +14985,7 @@ class SfLocalizationsMy extends SfGlobalLocalizations { String get rajabLabel => r'ရာဂျပ်'; @override - String get ramadanLabel => r'ရမ်ဇာန်'; + String get ramadanLabel => r'ရမဿွာန်'; @override String get rowsPerPageDataPagerLabel => r'စာမျက်နှာအလိုက် အတန်းများ'; @@ -15008,7 +15143,7 @@ class SfLocalizationsNb extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Avbryt'; @override - String get clearFilterFromDataGridFilteringLabel => r'Tøm filter fra'; + String get clearFilterDataGridFilteringLabel => r'Tøm filter'; @override String get containsDataGridFilteringLabel => r'Inneholder'; @@ -15046,6 +15181,9 @@ class SfLocalizationsNb extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Er lik'; + @override + String get fromDataGridFilteringLabel => r'Fra'; + @override String get greaterThanDataGridFilteringLabel => r'Større enn'; @@ -15324,8 +15462,7 @@ class SfLocalizationsNe extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'रद्द गर्नुहोस्'; @override - String get clearFilterFromDataGridFilteringLabel => - r'बाट फिल्टर खाली गर्नुहोस्'; + String get clearFilterDataGridFilteringLabel => r'फिल्टर खाली गर्नुहोस्'; @override String get containsDataGridFilteringLabel => r'समावेश गर्दछ'; @@ -15363,6 +15500,9 @@ class SfLocalizationsNe extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'बराबर हुन्छ'; + @override + String get fromDataGridFilteringLabel => r'बाट'; + @override String get greaterThanDataGridFilteringLabel => r'भन्दा ठुलो'; @@ -15595,7 +15735,7 @@ class SfLocalizationsNl extends SfGlobalLocalizations { String get afterDataGridFilteringLabel => r'Na'; @override - String get afterOrEqualDataGridFilteringLabel => r'Na of gelijk aan'; + String get afterOrEqualDataGridFilteringLabel => r'Na of gelijk'; @override String get allDayLabel => r'De hele dag'; @@ -15610,13 +15750,13 @@ class SfLocalizationsNl extends SfGlobalLocalizations { String get allowedViewScheduleLabel => r'Schema'; @override - String get allowedViewTimelineDayLabel => r'Tijdlijn Dag'; + String get allowedViewTimelineDayLabel => r'Tijdlijn dag'; @override String get allowedViewTimelineMonthLabel => r'Tijdlijn maand'; @override - String get allowedViewTimelineWeekLabel => r'Tijdlijnweek'; + String get allowedViewTimelineWeekLabel => r'Tijdlijn week'; @override String get allowedViewTimelineWorkWeekLabel => r'Tijdlijn Werkweek'; @@ -15631,7 +15771,7 @@ class SfLocalizationsNl extends SfGlobalLocalizations { String get andDataGridFilteringLabel => r'En'; @override - String get beforeDataGridFilteringLabel => r'Voor of gelijk aan'; + String get beforeDataGridFilteringLabel => r'Voor of gelijk'; @override String get beforeOrEqualDataGridFilteringLabel => r'Voordat'; @@ -15643,10 +15783,10 @@ class SfLocalizationsNl extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Annuleren'; @override - String get clearFilterFromDataGridFilteringLabel => r'Filter wissen van'; + String get clearFilterDataGridFilteringLabel => r'Filter wissen'; @override - String get containsDataGridFilteringLabel => r'bevat'; + String get containsDataGridFilteringLabel => r'Bevat'; @override String get dateFiltersDataGridFilteringLabel => r'Datumfilters'; @@ -15681,6 +15821,9 @@ class SfLocalizationsNl extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'gelijk aan'; + @override + String get fromDataGridFilteringLabel => r'Van'; + @override String get greaterThanDataGridFilteringLabel => r'Groter dan'; @@ -15753,13 +15896,13 @@ class SfLocalizationsNl extends SfGlobalLocalizations { String get pdfBookmarksLabel => r'Bladwijzers'; @override - String get pdfEnterPageNumberLabel => r'Voer paginanummer in'; + String get pdfEnterPageNumberLabel => r'Voer het paginanummer in'; @override String get pdfGoToPageLabel => r'Ga naar pagina'; @override - String get pdfHyperlinkContentLabel => r'Wil je de pagina openen op'; + String get pdfHyperlinkContentLabel => r'Wilt u de pagina openen op'; @override String get pdfHyperlinkDialogCancelLabel => r'ANNULEREN'; @@ -15780,7 +15923,7 @@ class SfLocalizationsNl extends SfGlobalLocalizations { String get pdfPaginationDialogCancelLabel => r'ANNULEREN'; @override - String get pdfPaginationDialogOkLabel => r'Oke'; + String get pdfPaginationDialogOkLabel => r'Oké'; @override String get pdfPasswordDialogCancelLabel => r'ANNULEREN'; @@ -15792,10 +15935,10 @@ class SfLocalizationsNl extends SfGlobalLocalizations { String get pdfScrollStatusOfLabel => r'van'; @override - String get rabi1Label => r'Rabi' "'" r' al-awwali'; + String get rabi1Label => r'Rabi' "'" r' al-Awwal'; @override - String get rabi2Label => r'Rabi' "'" r' al Thani'; + String get rabi2Label => r'Rabi' "'" r' al-thani'; @override String get rajabLabel => r'Rajab'; @@ -15807,7 +15950,7 @@ class SfLocalizationsNl extends SfGlobalLocalizations { String get rowsPerPageDataPagerLabel => r'Rijen per pagina'; @override - String get safarLabel => r'Safari'; + String get safarLabel => r'Safar'; @override String get searchDataGridFilteringLabel => r'Zoeken'; @@ -15825,16 +15968,16 @@ class SfLocalizationsNl extends SfGlobalLocalizations { String get shawwalLabel => r'Shawwal'; @override - String get shortDhualhiLabel => r'Dhu' "'" r'l-H'; + String get shortDhualhiLabel => r'Dhul-H'; @override String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; @override - String get shortJumada1Label => r'jum. l'; + String get shortJumada1Label => r'Jum. l'; @override - String get shortJumada2Label => r'jum. II'; + String get shortJumada2Label => r'Jum. II'; @override String get shortMuharramLabel => r'Muh.'; @@ -15852,19 +15995,19 @@ class SfLocalizationsNl extends SfGlobalLocalizations { String get shortRamadanLabel => r'RAM.'; @override - String get shortSafarLabel => r'saf.'; + String get shortSafarLabel => r'Veilig'; @override - String get shortShaabanLabel => r'scha.'; + String get shortShaabanLabel => r'Sha.'; @override - String get shortShawwalLabel => r'Sjaa.'; + String get shortShawwalLabel => r'Shaw.'; @override String get showRowsWhereDataGridFilteringLabel => r'Toon rijen waar'; @override - String get sortAToZDataGridFilteringLabel => r'Sorteer A tot Z'; + String get sortAToZDataGridFilteringLabel => r'Sorteer van A tot Z'; @override String get sortAndFilterDataGridFilteringLabel => r'Sorteren en filteren'; @@ -15875,15 +16018,15 @@ class SfLocalizationsNl extends SfGlobalLocalizations { @override String get sortNewestToOldestDataGridFilteringLabel => - r'Sorteer van nieuwste naar oudste'; + r'Sorteer nieuwste naar oudste'; @override String get sortOldestToNewestDataGridFilteringLabel => - r'Sorteer van oud naar nieuw'; + r'Sorteer oudste naar nieuwste'; @override String get sortSmallestToLargestDataGridFilteringLabel => - r'Sorteer van klein naar groot'; + r'Sorteer klein naar groot'; @override String get sortZToADataGridFilteringLabel => r'Sorteer Z naar A'; @@ -15959,7 +16102,7 @@ class SfLocalizationsNo extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Avbryt'; @override - String get clearFilterFromDataGridFilteringLabel => r'Tøm filter fra'; + String get clearFilterDataGridFilteringLabel => r'Tøm filter'; @override String get containsDataGridFilteringLabel => r'Inneholder'; @@ -15997,6 +16140,9 @@ class SfLocalizationsNo extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Er lik'; + @override + String get fromDataGridFilteringLabel => r'Fra'; + @override String get greaterThanDataGridFilteringLabel => r'Større enn'; @@ -16275,8 +16421,7 @@ class SfLocalizationsOr extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'ବାତିଲ୍ କରନ୍ତୁ |'; @override - String get clearFilterFromDataGridFilteringLabel => - r'ଠାରୁ ଫିଲ୍ଟର୍ ସଫା କରନ୍ତୁ |'; + String get clearFilterDataGridFilteringLabel => r'ଫିଲ୍ଟର୍ ସଫା କରନ୍ତୁ |'; @override String get containsDataGridFilteringLabel => r'ଧାରଣ କରେ |'; @@ -16315,6 +16460,9 @@ class SfLocalizationsOr extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'ସମାନ |'; + @override + String get fromDataGridFilteringLabel => r'ଠାରୁ'; + @override String get greaterThanDataGridFilteringLabel => r'ଠାରୁ ବଡ'; @@ -16335,7 +16483,7 @@ class SfLocalizationsOr extends SfGlobalLocalizations { String get lessThanOrEqualDataGridFilteringLabel => r'କମ୍ କିମ୍ବା ସମାନ |'; @override - String get muharramLabel => r'ମୁହରାମ |'; + String get muharramLabel => r'ମୁହରାମ'; @override String get noEventsCalendarLabel => r'କ events ଣସି ଘଟଣା ନାହିଁ |'; @@ -16385,7 +16533,7 @@ class SfLocalizationsOr extends SfGlobalLocalizations { String get passwordDialogInvalidPasswordLabel => r'ଅବ val ଧ ପାସୱାର୍ଡ |'; @override - String get pdfBookmarksLabel => r'ବୁକମାର୍କସ୍'; + String get pdfBookmarksLabel => r'ବୁକମାର୍କଗୁଡିକ'; @override String get pdfEnterPageNumberLabel => r'ପୃଷ୍ଠା ନମ୍ବର ପ୍ରବେଶ କରନ୍ତୁ |'; @@ -16394,7 +16542,7 @@ class SfLocalizationsOr extends SfGlobalLocalizations { String get pdfGoToPageLabel => r'ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ |'; @override - String get pdfHyperlinkContentLabel => r'ଆପଣ ପେଜ୍ ଖୋଲିବାକୁ ଚାହୁଁଛନ୍ତି କି?'; + String get pdfHyperlinkContentLabel => r'ଆପଣ ପୃଷ୍ଠା ଖୋଲିବାକୁ ଚାହୁଁଛନ୍ତି କି?'; @override String get pdfHyperlinkDialogCancelLabel => r'ବାତିଲ୍'; @@ -16428,7 +16576,7 @@ class SfLocalizationsOr extends SfGlobalLocalizations { String get pdfScrollStatusOfLabel => r'ର'; @override - String get rabi1Label => r'ରବି ' "'" r'ଅଲ-ଆୱାଲ୍ |'; + String get rabi1Label => r'ରବି ' "'" r'ଅଲ-ଅୱାଲ୍ |'; @override String get rabi2Label => r'ରବି ' "'" r'ଅଲ-ଥାନି |'; @@ -16572,7 +16720,7 @@ class SfLocalizationsPa extends SfGlobalLocalizations { String get allowedViewTimelineWeekLabel => r'ਸਮਾਂਰੇਖਾ ਹਫ਼ਤਾ'; @override - String get allowedViewTimelineWorkWeekLabel => r'ਸਮਾਂਰੇਖਾ ਕਾਰਜ ਹਫ਼ਤਾ'; + String get allowedViewTimelineWorkWeekLabel => r'ਟਾਈਮਲਾਈਨ ਕੰਮ ਹਫ਼ਤਾ'; @override String get allowedViewWeekLabel => r'ਹਫ਼ਤਾ'; @@ -16596,7 +16744,7 @@ class SfLocalizationsPa extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'ਰੱਦ ਕਰੋ'; @override - String get clearFilterFromDataGridFilteringLabel => r'ਤੋਂ ਫਿਲਟਰ ਸਾਫ਼ ਕਰੋ'; + String get clearFilterDataGridFilteringLabel => r'ਫਿਲਟਰ ਸਾਫ਼ ਕਰੋ'; @override String get containsDataGridFilteringLabel => r'ਸ਼ਾਮਿਲ ਹੈ'; @@ -16634,6 +16782,9 @@ class SfLocalizationsPa extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'ਬਰਾਬਰ'; + @override + String get fromDataGridFilteringLabel => r'ਤੋਂ'; + @override String get greaterThanDataGridFilteringLabel => r'ਵੱਧ'; @@ -16886,7 +17037,7 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get allowedViewTimelineMonthLabel => r'Miesiąc osi czasu'; @override - String get allowedViewTimelineWeekLabel => r'Tydzień na osi czasu'; + String get allowedViewTimelineWeekLabel => r'Tydzień osi czasu'; @override String get allowedViewTimelineWorkWeekLabel => r'Tydzień pracy na osi czasu'; @@ -16901,7 +17052,7 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get andDataGridFilteringLabel => r'I'; @override - String get beforeDataGridFilteringLabel => r'Przed lub Równe'; + String get beforeDataGridFilteringLabel => r'Przed Lub Równy'; @override String get beforeOrEqualDataGridFilteringLabel => r'Zanim'; @@ -16913,7 +17064,7 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Anulować'; @override - String get clearFilterFromDataGridFilteringLabel => r'Wyczyść filtr z'; + String get clearFilterDataGridFilteringLabel => r'Czysty filtr'; @override String get containsDataGridFilteringLabel => r'Zawiera'; @@ -16925,10 +17076,10 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get daySpanCountLabel => r'Dzień'; @override - String get dhualhiLabel => r'Zu al-Hidżdżah'; + String get dhualhiLabel => r'Du al-Hijjah'; @override - String get dhualqiLabel => r'Zu al-Qi' "'" r'dah'; + String get dhualqiLabel => r'Dhu al-Qi' "'" r'dah'; @override String get doesNotBeginWithDataGridFilteringLabel => r'Nie zaczyna się od'; @@ -16951,6 +17102,9 @@ class SfLocalizationsPl extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Równa się'; + @override + String get fromDataGridFilteringLabel => r'Z'; + @override String get greaterThanDataGridFilteringLabel => r'Lepszy niż'; @@ -16961,16 +17115,16 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get jumada1Label => r'Jumada al-awwal'; @override - String get jumada2Label => r'Jumada al-thani'; + String get jumada2Label => r'Jumada al Thani'; @override String get lessThanDataGridFilteringLabel => r'Mniej niż'; @override - String get lessThanOrEqualDataGridFilteringLabel => r'Mniej niż lub równe'; + String get lessThanOrEqualDataGridFilteringLabel => r'Mniej niż lub równo'; @override - String get muharramLabel => r'Muharram'; + String get muharramLabel => r'muharrama'; @override String get noEventsCalendarLabel => r'Brak wydarzeń'; @@ -16979,7 +17133,7 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get noMatchesDataGridFilteringLabel => r'Brak wyników'; @override - String get noSelectedDateCalendarLabel => r'Nie wybrano daty'; + String get noSelectedDateCalendarLabel => r'Brak wybranej daty'; @override String get notEmptyDataGridFilteringLabel => r'Nie pusty'; @@ -16991,7 +17145,7 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get nullDataGridFilteringLabel => r'Zero'; @override - String get numberFiltersDataGridFilteringLabel => r'Filtry liczb'; + String get numberFiltersDataGridFilteringLabel => r'Filtry liczbowe'; @override String get ofDataPagerLabel => r'z'; @@ -17022,17 +17176,16 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get pdfBookmarksLabel => r'Zakładki'; @override - String get pdfEnterPageNumberLabel => r'Wpisz numer strony'; + String get pdfEnterPageNumberLabel => r'Wprowadź numer strony'; @override String get pdfGoToPageLabel => r'Idź do strony'; @override - String get pdfHyperlinkContentLabel => - r'Czy chcesz otworzyć stronę pod adresem?'; + String get pdfHyperlinkContentLabel => r'Czy chcesz otworzyć stronę o godz'; @override - String get pdfHyperlinkDialogCancelLabel => r'ANULUJ'; + String get pdfHyperlinkDialogCancelLabel => r'ANULOWAĆ'; @override String get pdfHyperlinkDialogOpenLabel => r'OTWARTY'; @@ -17047,13 +17200,13 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get pdfNoBookmarksLabel => r'Nie znaleziono zakładek'; @override - String get pdfPaginationDialogCancelLabel => r'ANULUJ'; + String get pdfPaginationDialogCancelLabel => r'ANULOWAĆ'; @override - String get pdfPaginationDialogOkLabel => r'ok'; + String get pdfPaginationDialogOkLabel => r'OK'; @override - String get pdfPasswordDialogCancelLabel => r'ANULUJ'; + String get pdfPasswordDialogCancelLabel => r'ANULOWAĆ'; @override String get pdfPasswordDialogOpenLabel => r'OTWARTY'; @@ -17062,13 +17215,13 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get pdfScrollStatusOfLabel => r'z'; @override - String get rabi1Label => r'Rabi' "'" r' al-awwal'; + String get rabi1Label => r'Rabi al-awwal'; @override - String get rabi2Label => r'Rabi’ al-thani'; + String get rabi2Label => r'Rabi' "'" r' al-thani'; @override - String get rajabLabel => r'Rajab'; + String get rajabLabel => r'Radżab'; @override String get ramadanLabel => r'Ramadan'; @@ -17089,7 +17242,7 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get series => r'Seria'; @override - String get shaabanLabel => r'Szaaban'; + String get shaabanLabel => r'Sha' "'" r'aban'; @override String get shawwalLabel => r'Shawwal'; @@ -17101,16 +17254,16 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; @override - String get shortJumada1Label => r'Skok. i'; + String get shortJumada1Label => r'sok. I'; @override - String get shortJumada2Label => r'Skok. II'; + String get shortJumada2Label => r'sok. II'; @override String get shortMuharramLabel => r'Muh.'; @override - String get shortRabi1Label => r'Rabi. i'; + String get shortRabi1Label => r'Rabi. I'; @override String get shortRabi2Label => r'Rabi. II'; @@ -17122,16 +17275,16 @@ class SfLocalizationsPl extends SfGlobalLocalizations { String get shortRamadanLabel => r'Baran.'; @override - String get shortSafarLabel => r'Saf.'; + String get shortSafarLabel => r'bezpieczny'; @override String get shortShaabanLabel => r'Sha.'; @override - String get shortShawwalLabel => r'Shaw.'; + String get shortShawwalLabel => r'Shawa.'; @override - String get showRowsWhereDataGridFilteringLabel => r'Pokaż wiersze, w których'; + String get showRowsWhereDataGridFilteringLabel => r'Pokaż wiersze gdzie'; @override String get sortAToZDataGridFilteringLabel => r'Sortuj od A do Z'; @@ -17149,14 +17302,14 @@ class SfLocalizationsPl extends SfGlobalLocalizations { @override String get sortOldestToNewestDataGridFilteringLabel => - r'Sortuj od najstarszego do najnowszego'; + r'Sortuj od najstarszych do najnowszych'; @override String get sortSmallestToLargestDataGridFilteringLabel => r'Sortuj od najmniejszego do największego'; @override - String get sortZToADataGridFilteringLabel => r'Sortuj Z do A'; + String get sortZToADataGridFilteringLabel => r'Sortuj od Z do A'; @override String get textFiltersDataGridFilteringLabel => r'Filtry tekstowe'; @@ -17229,7 +17382,7 @@ class SfLocalizationsPs extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'لغوه کړئ'; @override - String get clearFilterFromDataGridFilteringLabel => r'له دې څخه فلټر پاک کړئ'; + String get clearFilterDataGridFilteringLabel => r'فلټر پاک کړئ'; @override String get containsDataGridFilteringLabel => r'لري'; @@ -17267,6 +17420,9 @@ class SfLocalizationsPs extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'مساوي'; + @override + String get fromDataGridFilteringLabel => r'څخه'; + @override String get greaterThanDataGridFilteringLabel => r'په پرتله لوی'; @@ -17275,7 +17431,7 @@ class SfLocalizationsPs extends SfGlobalLocalizations { r'په پرتله لوی یا مساوي'; @override - String get jumada1Label => r'جمادی الاول'; + String get jumada1Label => r'جمعه الاول'; @override String get jumada2Label => r'جمعه الثاني'; @@ -17299,7 +17455,7 @@ class SfLocalizationsPs extends SfGlobalLocalizations { String get noSelectedDateCalendarLabel => r'نه ټاکل شوې نیټه'; @override - String get notEmptyDataGridFilteringLabel => r'خالي نه'; + String get notEmptyDataGridFilteringLabel => r'نه خالي'; @override String get notNullDataGridFilteringLabel => r'نه نول'; @@ -17342,10 +17498,10 @@ class SfLocalizationsPs extends SfGlobalLocalizations { String get pdfEnterPageNumberLabel => r'د پاڼې شمیره دننه کړئ'; @override - String get pdfGoToPageLabel => r'پاڼې ته لاړ شئ'; + String get pdfGoToPageLabel => r'مخ ته لاړ شئ'; @override - String get pdfHyperlinkContentLabel => r'ایا تاسو غواړئ چې پاڼه پرانیزئ'; + String get pdfHyperlinkContentLabel => r'ایا تاسو غواړئ پاڼه پرانیزئ'; @override String get pdfHyperlinkDialogCancelLabel => r'فسخه کول'; @@ -17364,13 +17520,13 @@ class SfLocalizationsPs extends SfGlobalLocalizations { String get pdfNoBookmarksLabel => r'هیڅ بک مارک ونه موندل شو'; @override - String get pdfPaginationDialogCancelLabel => r'لغوه کول'; + String get pdfPaginationDialogCancelLabel => r'فسخه کول'; @override String get pdfPaginationDialogOkLabel => r'سمه ده'; @override - String get pdfPasswordDialogCancelLabel => r'لغوه کول'; + String get pdfPasswordDialogCancelLabel => r'فسخه کول'; @override String get pdfPasswordDialogOpenLabel => r'خلاص'; @@ -17427,10 +17583,10 @@ class SfLocalizationsPs extends SfGlobalLocalizations { String get shortMuharramLabel => r'Muh.'; @override - String get shortRabi1Label => r'ربیع زه'; + String get shortRabi1Label => r'ربیع. زه'; @override - String get shortRabi2Label => r'ربیع II'; + String get shortRabi2Label => r'ربیع. II'; @override String get shortRajabLabel => r'راج.'; @@ -17498,7 +17654,7 @@ class SfLocalizationsPt extends SfGlobalLocalizations { String get afterDataGridFilteringLabel => r'Depois'; @override - String get afterOrEqualDataGridFilteringLabel => r'Depois ou igual'; + String get afterOrEqualDataGridFilteringLabel => r'Depois Ou Igual'; @override String get allDayLabel => r'Dia todo'; @@ -17510,20 +17666,20 @@ class SfLocalizationsPt extends SfGlobalLocalizations { String get allowedViewMonthLabel => r'Mês'; @override - String get allowedViewScheduleLabel => r'Agendar'; + String get allowedViewScheduleLabel => r'Cronograma'; @override String get allowedViewTimelineDayLabel => r'Dia da linha do tempo'; @override - String get allowedViewTimelineMonthLabel => r'Mês da linha do tempo'; + String get allowedViewTimelineMonthLabel => r'Cronograma Mês'; @override - String get allowedViewTimelineWeekLabel => r'Semana da linha do tempo'; + String get allowedViewTimelineWeekLabel => r'Semana Cronológica'; @override String get allowedViewTimelineWorkWeekLabel => - r'Semana de trabalho da linha do tempo'; + r'Cronograma Semana de Trabalho'; @override String get allowedViewWeekLabel => r'Semana'; @@ -17535,7 +17691,7 @@ class SfLocalizationsPt extends SfGlobalLocalizations { String get andDataGridFilteringLabel => r'E'; @override - String get beforeDataGridFilteringLabel => r'Antes ou igual'; + String get beforeDataGridFilteringLabel => r'Antes Ou Igual'; @override String get beforeOrEqualDataGridFilteringLabel => r'Antes da'; @@ -17547,13 +17703,13 @@ class SfLocalizationsPt extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Cancelar'; @override - String get clearFilterFromDataGridFilteringLabel => r'Limpar filtro de'; + String get clearFilterDataGridFilteringLabel => r'Filtro limpo'; @override - String get containsDataGridFilteringLabel => r'Contém'; + String get containsDataGridFilteringLabel => r'contém'; @override - String get dateFiltersDataGridFilteringLabel => r'Filtros de data'; + String get dateFiltersDataGridFilteringLabel => r'Filtros de Data'; @override String get daySpanCountLabel => r'Dia'; @@ -17585,6 +17741,9 @@ class SfLocalizationsPt extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'É igual a'; + @override + String get fromDataGridFilteringLabel => r'A partir de'; + @override String get greaterThanDataGridFilteringLabel => r'Maior que'; @@ -17656,7 +17815,7 @@ class SfLocalizationsPt extends SfGlobalLocalizations { String get pdfBookmarksLabel => r'Favoritos'; @override - String get pdfEnterPageNumberLabel => r'Digite o número da página'; + String get pdfEnterPageNumberLabel => r'Insira o número da página'; @override String get pdfGoToPageLabel => r'Vá para página'; @@ -17734,7 +17893,7 @@ class SfLocalizationsPt extends SfGlobalLocalizations { String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; @override - String get shortJumada1Label => r'Jum. eu'; + String get shortJumada1Label => r'Jum. EU'; @override String get shortJumada2Label => r'Jum. II'; @@ -17743,10 +17902,10 @@ class SfLocalizationsPt extends SfGlobalLocalizations { String get shortMuharramLabel => r'Muh.'; @override - String get shortRabi1Label => r'Rabino. eu'; + String get shortRabi1Label => r'Rabi. EU'; @override - String get shortRabi2Label => r'Rabino. II'; + String get shortRabi2Label => r'Rabi. II'; @override String get shortRajabLabel => r'Raj.'; @@ -17755,7 +17914,7 @@ class SfLocalizationsPt extends SfGlobalLocalizations { String get shortRamadanLabel => r'RAM.'; @override - String get shortSafarLabel => r'Saf.'; + String get shortSafarLabel => r'seguro'; @override String get shortShaabanLabel => r'Sha.'; @@ -17767,18 +17926,18 @@ class SfLocalizationsPt extends SfGlobalLocalizations { String get showRowsWhereDataGridFilteringLabel => r'Mostrar linhas onde'; @override - String get sortAToZDataGridFilteringLabel => r'Classificar de A a Z'; + String get sortAToZDataGridFilteringLabel => r'Ordenar de A a Z'; @override - String get sortAndFilterDataGridFilteringLabel => r'Classificar e filtrar'; + String get sortAndFilterDataGridFilteringLabel => r'Classificar e Filtrar'; @override String get sortLargestToSmallestDataGridFilteringLabel => - r'Classificar do maior para o menor'; + r'Ordenar do maior para o menor'; @override String get sortNewestToOldestDataGridFilteringLabel => - r'Classificar do mais novo para o mais antigo'; + r'Ordenar do mais recente ao mais antigo'; @override String get sortOldestToNewestDataGridFilteringLabel => @@ -17789,7 +17948,7 @@ class SfLocalizationsPt extends SfGlobalLocalizations { r'Classificar do menor para o maior'; @override - String get sortZToADataGridFilteringLabel => r'Ordenar Z para A'; + String get sortZToADataGridFilteringLabel => r'Ordenar de Z a A'; @override String get textFiltersDataGridFilteringLabel => r'Filtros de texto'; @@ -17811,40 +17970,7 @@ class SfLocalizationsPtPt extends SfLocalizationsPt { ); @override - String get noEventsCalendarLabel => r'Nenhum evento'; - - @override - String get ofDataPagerLabel => r'de'; - - @override - String get pagesDataPagerLabel => r'páginas'; - - @override - String get pdfBookmarksLabel => r'Marcadores'; - - @override - String get pdfScrollStatusOfLabel => r'de'; - - @override - String get pdfGoToPageLabel => r'Ir para a página'; - - @override - String get pdfInvalidPageNumberLabel => r'Insira um número válido'; - - @override - String get passwordDialogInvalidPasswordLabel => r'Senha inválida'; - - @override - String get pdfPasswordDialogOpenLabel => r'ABERTO'; - - @override - String get allowedViewScheduleLabel => r'Cronograma'; - - @override - String get allDayLabel => r'Todo o dia'; - - @override - String get shortRamadanLabel => r'Carneiro.'; + String get pdfEnterPageNumberLabel => r'Digite o número da página'; } /// The translations for Romanian Moldavian Moldovan (`ro`). @@ -17909,7 +18035,7 @@ class SfLocalizationsRo extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Anulare'; @override - String get clearFilterFromDataGridFilteringLabel => r'Ștergeți Filtrul de la'; + String get clearFilterDataGridFilteringLabel => r'Șterge filtrul'; @override String get containsDataGridFilteringLabel => r'Conține'; @@ -17947,6 +18073,9 @@ class SfLocalizationsRo extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Egal'; + @override + String get fromDataGridFilteringLabel => r'Din'; + @override String get greaterThanDataGridFilteringLabel => r'Mai mare ca'; @@ -18046,7 +18175,7 @@ class SfLocalizationsRo extends SfGlobalLocalizations { String get pdfPaginationDialogCancelLabel => r'ANULARE'; @override - String get pdfPaginationDialogOkLabel => r'Bine'; + String get pdfPaginationDialogOkLabel => r'O.K'; @override String get pdfPasswordDialogCancelLabel => r'ANULARE'; @@ -18158,7 +18287,7 @@ class SfLocalizationsRo extends SfGlobalLocalizations { String get textFiltersDataGridFilteringLabel => r'Filtre de text'; @override - String get todayLabel => r'Azi'; + String get todayLabel => r'Astăzi'; @override String get weeknumberLabel => r'Săptămână'; @@ -18204,7 +18333,7 @@ class SfLocalizationsRu extends SfGlobalLocalizations { String get allowedViewTimelineWorkWeekLabel => r'Рабочая неделя'; @override - String get allowedViewWeekLabel => r'Неделю'; + String get allowedViewWeekLabel => r'Неделя'; @override String get allowedViewWorkWeekLabel => r'Рабочая неделя'; @@ -18213,7 +18342,7 @@ class SfLocalizationsRu extends SfGlobalLocalizations { String get andDataGridFilteringLabel => r'А также'; @override - String get beforeDataGridFilteringLabel => r'Раньше или равно'; + String get beforeDataGridFilteringLabel => r'Перед или равным'; @override String get beforeOrEqualDataGridFilteringLabel => r'До'; @@ -18225,7 +18354,7 @@ class SfLocalizationsRu extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Отмена'; @override - String get clearFilterFromDataGridFilteringLabel => r'Очистить фильтр от'; + String get clearFilterDataGridFilteringLabel => r'Очистить фильтр'; @override String get containsDataGridFilteringLabel => r'Содержит'; @@ -18263,6 +18392,9 @@ class SfLocalizationsRu extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Равно'; + @override + String get fromDataGridFilteringLabel => r'Из'; + @override String get greaterThanDataGridFilteringLabel => r'Лучше чем'; @@ -18328,7 +18460,7 @@ class SfLocalizationsRu extends SfGlobalLocalizations { String get passwordDialogHintTextLabel => r'Введите пароль'; @override - String get passwordDialogInvalidPasswordLabel => r'неправильный пароль'; + String get passwordDialogInvalidPasswordLabel => r'Неверный пароль'; @override String get pdfBookmarksLabel => r'Закладки'; @@ -18343,7 +18475,7 @@ class SfLocalizationsRu extends SfGlobalLocalizations { String get pdfHyperlinkContentLabel => r'Вы хотите открыть страницу в'; @override - String get pdfHyperlinkDialogCancelLabel => r'ОТМЕНА'; + String get pdfHyperlinkDialogCancelLabel => r'ОТМЕНИТЬ'; @override String get pdfHyperlinkDialogOpenLabel => r'ОТКРЫТЫМ'; @@ -18362,7 +18494,7 @@ class SfLocalizationsRu extends SfGlobalLocalizations { String get pdfPaginationDialogCancelLabel => r'ОТМЕНИТЬ'; @override - String get pdfPaginationDialogOkLabel => r'Ok'; + String get pdfPaginationDialogOkLabel => r'ХОРОШО'; @override String get pdfPasswordDialogCancelLabel => r'ОТМЕНИТЬ'; @@ -18398,7 +18530,7 @@ class SfLocalizationsRu extends SfGlobalLocalizations { String get selectAllDataGridFilteringLabel => r'Выбрать все'; @override - String get series => r'Ряд'; + String get series => r'Серии'; @override String get shaabanLabel => r'Шаабан'; @@ -18431,7 +18563,7 @@ class SfLocalizationsRu extends SfGlobalLocalizations { String get shortRajabLabel => r'Радж.'; @override - String get shortRamadanLabel => r'ОЗУ.'; + String get shortRamadanLabel => r'Баран.'; @override String get shortSafarLabel => r'Саф.'; @@ -18477,7 +18609,7 @@ class SfLocalizationsRu extends SfGlobalLocalizations { String get todayLabel => r'Сегодня'; @override - String get weeknumberLabel => r'Неделю'; + String get weeknumberLabel => r'Неделя'; } /// The translations for Sinhala Sinhalese (`si`). @@ -18499,7 +18631,7 @@ class SfLocalizationsSi extends SfGlobalLocalizations { String get allDayLabel => r'මුළු දවසම'; @override - String get allowedViewDayLabel => r'දිනය'; + String get allowedViewDayLabel => r'දින'; @override String get allowedViewMonthLabel => r'මාසික'; @@ -18541,8 +18673,7 @@ class SfLocalizationsSi extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'අවලංගු කරන්න'; @override - String get clearFilterFromDataGridFilteringLabel => - r'වෙතින් පෙරහන ඉවත් කරන්න'; + String get clearFilterDataGridFilteringLabel => r'පෙරහන හිස් කරන්න'; @override String get containsDataGridFilteringLabel => r'අඩංගු වේ'; @@ -18551,10 +18682,10 @@ class SfLocalizationsSi extends SfGlobalLocalizations { String get dateFiltersDataGridFilteringLabel => r'දින පෙරහන්'; @override - String get daySpanCountLabel => r'දිනය'; + String get daySpanCountLabel => r'දින'; @override - String get dhualhiLabel => r'Dhu al-Hijjah'; + String get dhualhiLabel => r'ඩු අල්-හිජ්ජා'; @override String get dhualqiLabel => r'Dhu al-Qi' "'" r'dah'; @@ -18580,6 +18711,9 @@ class SfLocalizationsSi extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'සමාන'; + @override + String get fromDataGridFilteringLabel => r'සිට'; + @override String get greaterThanDataGridFilteringLabel => r'වඩා විශාලයි'; @@ -18770,7 +18904,7 @@ class SfLocalizationsSi extends SfGlobalLocalizations { @override String get sortLargestToSmallestDataGridFilteringLabel => - r'ලොකුම සිට කුඩාම දක්වා වර්ග කරන්න'; + r'විශාලතම සිට කුඩාම දක්වා වර්ග කරන්න'; @override String get sortNewestToOldestDataGridFilteringLabel => @@ -18858,7 +18992,7 @@ class SfLocalizationsSk extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Zrušiť'; @override - String get clearFilterFromDataGridFilteringLabel => r'Vymazať filter z'; + String get clearFilterDataGridFilteringLabel => r'Vymazať filter'; @override String get containsDataGridFilteringLabel => r'Obsahuje'; @@ -18896,12 +19030,14 @@ class SfLocalizationsSk extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Rovná sa'; + @override + String get fromDataGridFilteringLabel => r'Od'; + @override String get greaterThanDataGridFilteringLabel => r'Väčší než'; @override - String get greaterThanOrEqualDataGridFilteringLabel => - r'Väčšie než alebo rovné'; + String get greaterThanOrEqualDataGridFilteringLabel => r'Väčšie alebo rovné'; @override String get jumada1Label => r'Jumada al-awwal'; @@ -18925,7 +19061,7 @@ class SfLocalizationsSk extends SfGlobalLocalizations { String get noMatchesDataGridFilteringLabel => r'Žiadne zhody'; @override - String get noSelectedDateCalendarLabel => r'Nie je vybraný dátum'; + String get noSelectedDateCalendarLabel => r'Žiadny vybratý dátum'; @override String get notEmptyDataGridFilteringLabel => r'Nie prázdny'; @@ -18986,7 +19122,7 @@ class SfLocalizationsSk extends SfGlobalLocalizations { String get pdfHyperlinkLabel => r'Otvorte webovú stránku'; @override - String get pdfInvalidPageNumberLabel => r'Prosím zadajte platné číslo'; + String get pdfInvalidPageNumberLabel => r'Prosím vložte platné číslo'; @override String get pdfNoBookmarksLabel => r'Nenašli sa žiadne záložky'; @@ -19107,7 +19243,7 @@ class SfLocalizationsSk extends SfGlobalLocalizations { String get textFiltersDataGridFilteringLabel => r'Textové filtre'; @override - String get todayLabel => r'dnes'; + String get todayLabel => r'Dnes'; @override String get weeknumberLabel => r'týždeň'; @@ -19132,7 +19268,7 @@ class SfLocalizationsSl extends SfGlobalLocalizations { String get allDayLabel => r'Ves dan'; @override - String get allowedViewDayLabel => r'dan'; + String get allowedViewDayLabel => r'Dan'; @override String get allowedViewMonthLabel => r'mesec'; @@ -19174,7 +19310,7 @@ class SfLocalizationsSl extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Prekliči'; @override - String get clearFilterFromDataGridFilteringLabel => r'Počisti filter iz'; + String get clearFilterDataGridFilteringLabel => r'Počisti filter'; @override String get containsDataGridFilteringLabel => r'Vsebuje'; @@ -19183,7 +19319,7 @@ class SfLocalizationsSl extends SfGlobalLocalizations { String get dateFiltersDataGridFilteringLabel => r'Datumski filtri'; @override - String get daySpanCountLabel => r'dan'; + String get daySpanCountLabel => r'Dan'; @override String get dhualhiLabel => r'Dhu al-Hijjah'; @@ -19212,6 +19348,9 @@ class SfLocalizationsSl extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Enako'; + @override + String get fromDataGridFilteringLabel => r'Od'; + @override String get greaterThanDataGridFilteringLabel => r'Večji kot'; @@ -19234,7 +19373,7 @@ class SfLocalizationsSl extends SfGlobalLocalizations { String get muharramLabel => r'Muharram'; @override - String get noEventsCalendarLabel => r'Brez dogodkov'; + String get noEventsCalendarLabel => r'Ni dogodkov'; @override String get noMatchesDataGridFilteringLabel => r'Ni ujemanja'; @@ -19268,7 +19407,7 @@ class SfLocalizationsSl extends SfGlobalLocalizations { @override String get passwordDialogContentLabel => - r'Vnesite geslo za odpiranje te datoteke PDF'; + r'Vnesite geslo, da odprete to datoteko PDF'; @override String get passwordDialogHeaderTextLabel => r'Zaščiteno z geslom'; @@ -19298,13 +19437,13 @@ class SfLocalizationsSl extends SfGlobalLocalizations { String get pdfHyperlinkDialogOpenLabel => r'ODPRTO'; @override - String get pdfHyperlinkLabel => r'Odprite spletno stran'; + String get pdfHyperlinkLabel => r'Odpri spletno stran'; @override String get pdfInvalidPageNumberLabel => r'Vnesite veljavno številko'; @override - String get pdfNoBookmarksLabel => r'Najden ni bil noben zaznamek'; + String get pdfNoBookmarksLabel => r'Ni najdenih zaznamkov'; @override String get pdfPaginationDialogCancelLabel => r'PREKLIC'; @@ -19328,13 +19467,13 @@ class SfLocalizationsSl extends SfGlobalLocalizations { String get rabi2Label => r'Rabi' "'" r' al-thani'; @override - String get rajabLabel => r'Radžab'; + String get rajabLabel => r'Rajab'; @override String get ramadanLabel => r'Ramadan'; @override - String get rowsPerPageDataPagerLabel => r'Vrstice na stran'; + String get rowsPerPageDataPagerLabel => r'Vrstic na stran'; @override String get safarLabel => r'Safar'; @@ -19346,7 +19485,7 @@ class SfLocalizationsSl extends SfGlobalLocalizations { String get selectAllDataGridFilteringLabel => r'Izberi vse'; @override - String get series => r'Serija'; + String get series => r'serija'; @override String get shaabanLabel => r'Sha' "'" r'aban'; @@ -19385,7 +19524,7 @@ class SfLocalizationsSl extends SfGlobalLocalizations { String get shortSafarLabel => r'Saf.'; @override - String get shortShaabanLabel => r'Sha'; + String get shortShaabanLabel => r'Sha.'; @override String get shortShawwalLabel => r'Shaw.'; @@ -19422,7 +19561,7 @@ class SfLocalizationsSl extends SfGlobalLocalizations { String get textFiltersDataGridFilteringLabel => r'Besedilni filtri'; @override - String get todayLabel => r'danes'; + String get todayLabel => r'Danes'; @override String get weeknumberLabel => r'teden'; @@ -19447,7 +19586,7 @@ class SfLocalizationsSq extends SfGlobalLocalizations { String get allDayLabel => r'Gjithe diten'; @override - String get allowedViewDayLabel => r'ditë'; + String get allowedViewDayLabel => r'Dita'; @override String get allowedViewMonthLabel => r'Muaj'; @@ -19489,7 +19628,7 @@ class SfLocalizationsSq extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Anulo'; @override - String get clearFilterFromDataGridFilteringLabel => r'Pastro filtrin nga'; + String get clearFilterDataGridFilteringLabel => r'Pastro filtrin'; @override String get containsDataGridFilteringLabel => r'Përmban'; @@ -19498,13 +19637,13 @@ class SfLocalizationsSq extends SfGlobalLocalizations { String get dateFiltersDataGridFilteringLabel => r'Filtrat e datës'; @override - String get daySpanCountLabel => r'ditë'; + String get daySpanCountLabel => r'Dita'; @override String get dhualhiLabel => r'Dhul Hixhe'; @override - String get dhualqiLabel => r'Dhul Kida'; + String get dhualqiLabel => r'Dhul-Kida'; @override String get doesNotBeginWithDataGridFilteringLabel => r'Nuk Fillon Me'; @@ -19527,6 +19666,9 @@ class SfLocalizationsSq extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Të barabartë'; + @override + String get fromDataGridFilteringLabel => r'Nga'; + @override String get greaterThanDataGridFilteringLabel => r'Më e madhe se'; @@ -19535,7 +19677,7 @@ class SfLocalizationsSq extends SfGlobalLocalizations { r'Më i madh se Ose i barabartë'; @override - String get jumada1Label => r'Xhumada el-evvel'; + String get jumada1Label => r'Xhumade el-evvel'; @override String get jumada2Label => r'Xhumada al-thani'; @@ -19667,7 +19809,7 @@ class SfLocalizationsSq extends SfGlobalLocalizations { String get series => r'Seria'; @override - String get shaabanLabel => r'Sha' "'" r'ban'; + String get shaabanLabel => r'Shaban'; @override String get shawwalLabel => r'Shevali'; @@ -19727,7 +19869,7 @@ class SfLocalizationsSq extends SfGlobalLocalizations { @override String get sortOldestToNewestDataGridFilteringLabel => - r'Rendit më të vjetrën në më të renë'; + r'Rendit nga më i vjetri tek më i riu'; @override String get sortSmallestToLargestDataGridFilteringLabel => @@ -19808,7 +19950,7 @@ class SfLocalizationsSr extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Поништити, отказати'; @override - String get clearFilterFromDataGridFilteringLabel => r'Обриши филтер из'; + String get clearFilterDataGridFilteringLabel => r'Обриши филтер'; @override String get containsDataGridFilteringLabel => r'Садржи'; @@ -19846,6 +19988,9 @@ class SfLocalizationsSr extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Једнако'; + @override + String get fromDataGridFilteringLabel => r'Од'; + @override String get greaterThanDataGridFilteringLabel => r'Веће од'; @@ -19981,7 +20126,7 @@ class SfLocalizationsSr extends SfGlobalLocalizations { String get selectAllDataGridFilteringLabel => r'Изабери све'; @override - String get series => r'Серије'; + String get series => r'Сериес'; @override String get shaabanLabel => r'Сха' "'" r'абан'; @@ -20110,7 +20255,7 @@ class SfLocalizationsSv extends SfGlobalLocalizations { String get allowedViewTimelineWeekLabel => r'Tidslinjevecka'; @override - String get allowedViewTimelineWorkWeekLabel => r'Tidslinje Arbetsvecka'; + String get allowedViewTimelineWorkWeekLabel => r'Tidslinje arbetsvecka'; @override String get allowedViewWeekLabel => r'Vecka'; @@ -20134,7 +20279,7 @@ class SfLocalizationsSv extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Avbryt'; @override - String get clearFilterFromDataGridFilteringLabel => r'Rensa filter från'; + String get clearFilterDataGridFilteringLabel => r'Rensa filtret'; @override String get containsDataGridFilteringLabel => r'Innehåller'; @@ -20172,6 +20317,9 @@ class SfLocalizationsSv extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Lika'; + @override + String get fromDataGridFilteringLabel => r'Från'; + @override String get greaterThanDataGridFilteringLabel => r'Större än'; @@ -20256,7 +20404,7 @@ class SfLocalizationsSv extends SfGlobalLocalizations { String get pdfHyperlinkDialogCancelLabel => r'AVBRYT'; @override - String get pdfHyperlinkDialogOpenLabel => r'ÖPPEN'; + String get pdfHyperlinkDialogOpenLabel => r'ÖPPNA'; @override String get pdfHyperlinkLabel => r'Öppna webbsidan'; @@ -20269,16 +20417,16 @@ class SfLocalizationsSv extends SfGlobalLocalizations { String get pdfNoBookmarksLabel => r'Inga bokmärken hittades'; @override - String get pdfPaginationDialogCancelLabel => r'ANNULLERA'; + String get pdfPaginationDialogCancelLabel => r'AVBRYT'; @override String get pdfPaginationDialogOkLabel => r'OK'; @override - String get pdfPasswordDialogCancelLabel => r'ANNULLERA'; + String get pdfPasswordDialogCancelLabel => r'AVBRYT'; @override - String get pdfPasswordDialogOpenLabel => r'ÖPPET'; + String get pdfPasswordDialogOpenLabel => r'ÖPPNA'; @override String get pdfScrollStatusOfLabel => r'av'; @@ -20451,7 +20599,7 @@ class SfLocalizationsSw extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Ghairi'; @override - String get clearFilterFromDataGridFilteringLabel => r'Futa Kichujio Kutoka'; + String get clearFilterDataGridFilteringLabel => r'Futa Kichujio'; @override String get containsDataGridFilteringLabel => r'Ina'; @@ -20489,6 +20637,9 @@ class SfLocalizationsSw extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Sawa'; + @override + String get fromDataGridFilteringLabel => r'Kutoka'; + @override String get greaterThanDataGridFilteringLabel => r'Kubwa kuliko'; @@ -20564,7 +20715,7 @@ class SfLocalizationsSw extends SfGlobalLocalizations { String get pdfEnterPageNumberLabel => r'Ingiza nambari ya ukurasa'; @override - String get pdfGoToPageLabel => r'Nenda kwa ukurasa'; + String get pdfGoToPageLabel => r'Nenda kwenye ukurasa'; @override String get pdfHyperlinkContentLabel => r'Je, unataka kufungua ukurasa katika'; @@ -20734,7 +20885,7 @@ class SfLocalizationsTa extends SfGlobalLocalizations { String get allowedViewScheduleLabel => r'அட்டவணை'; @override - String get allowedViewTimelineDayLabel => r'காலவரிசை நாள்'; + String get allowedViewTimelineDayLabel => r'காலக்கெடு நாள்'; @override String get allowedViewTimelineMonthLabel => r'காலவரிசை மாதம்'; @@ -20767,8 +20918,7 @@ class SfLocalizationsTa extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'ரத்து செய்'; @override - String get clearFilterFromDataGridFilteringLabel => - r'இதிலிருந்து வடிகட்டியை அழி'; + String get clearFilterDataGridFilteringLabel => r'வடிகட்டியை அழி'; @override String get containsDataGridFilteringLabel => r'கொண்டுள்ளது'; @@ -20783,7 +20933,7 @@ class SfLocalizationsTa extends SfGlobalLocalizations { String get dhualhiLabel => r'து அல்-ஹிஜ்ஜா'; @override - String get dhualqiLabel => r'து அல்-கிடா'; + String get dhualqiLabel => r'Dhu al-Qi' "'" r'dah'; @override String get doesNotBeginWithDataGridFilteringLabel => r'உடன் தொடங்கவில்லை'; @@ -20806,6 +20956,9 @@ class SfLocalizationsTa extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'சமம்'; + @override + String get fromDataGridFilteringLabel => r'இருந்து'; + @override String get greaterThanDataGridFilteringLabel => r'விட பெரியது'; @@ -20985,7 +21138,7 @@ class SfLocalizationsTa extends SfGlobalLocalizations { String get shortShaabanLabel => r'ஷா.'; @override - String get shortShawwalLabel => r'ஷா.'; + String get shortShawwalLabel => r'ஷா'; @override String get showRowsWhereDataGridFilteringLabel => r'எங்கே வரிசைகளைக் காட்டு'; @@ -21089,8 +21242,7 @@ class SfLocalizationsTe extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'రద్దు చేయండి'; @override - String get clearFilterFromDataGridFilteringLabel => - r'నుండి ఫిల్టర్‌ను క్లియర్ చేయండి'; + String get clearFilterDataGridFilteringLabel => r'ఫిల్టర్‌ని క్లియర్ చేయండి'; @override String get containsDataGridFilteringLabel => r'కలిగి ఉంది'; @@ -21105,7 +21257,7 @@ class SfLocalizationsTe extends SfGlobalLocalizations { String get dhualhiLabel => r'ధు అల్-హిజ్జా'; @override - String get dhualqiLabel => r'ధు అల్-ఖైదా'; + String get dhualqiLabel => r'ధు అల్-కి' "'" r'దా'; @override String get doesNotBeginWithDataGridFilteringLabel => r'తో ప్రారంభం కాదు'; @@ -21128,6 +21280,9 @@ class SfLocalizationsTe extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'సమానం'; + @override + String get fromDataGridFilteringLabel => r'నుండి'; + @override String get greaterThanDataGridFilteringLabel => r'అంతకన్నా ఎక్కువ'; @@ -21364,7 +21519,7 @@ class SfLocalizationsTh extends SfGlobalLocalizations { String get afterDataGridFilteringLabel => r'หลังจาก'; @override - String get afterOrEqualDataGridFilteringLabel => r'หลังหรือเท่ากับ'; + String get afterOrEqualDataGridFilteringLabel => r'หลังจากหรือเท่ากับ'; @override String get allDayLabel => r'ทั้งวัน'; @@ -21388,7 +21543,7 @@ class SfLocalizationsTh extends SfGlobalLocalizations { String get allowedViewTimelineWeekLabel => r'ไทม์ไลน์สัปดาห์'; @override - String get allowedViewTimelineWorkWeekLabel => r'ไทม์ไลน์งานสัปดาห์'; + String get allowedViewTimelineWorkWeekLabel => r'ไทม์ไลน์สัปดาห์การทำงาน'; @override String get allowedViewWeekLabel => r'สัปดาห์'; @@ -21412,7 +21567,7 @@ class SfLocalizationsTh extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'ยกเลิก'; @override - String get clearFilterFromDataGridFilteringLabel => r'ล้างตัวกรองจาก'; + String get clearFilterDataGridFilteringLabel => r'ล้างตัวกรอง'; @override String get containsDataGridFilteringLabel => r'ประกอบด้วย'; @@ -21424,22 +21579,22 @@ class SfLocalizationsTh extends SfGlobalLocalizations { String get daySpanCountLabel => r'วัน'; @override - String get dhualhiLabel => r'ดูอัลฮิจญะฮ์'; + String get dhualhiLabel => r'ดุอัลฮิจญะห์'; @override - String get dhualqiLabel => r'ญุมาดา อัล-ธานี'; + String get dhualqiLabel => r'ดุอัลกิดาห์'; @override - String get doesNotBeginWithDataGridFilteringLabel => r'ไม่ขึ้นต้นด้วย'; + String get doesNotBeginWithDataGridFilteringLabel => r'ไม่ได้ขึ้นต้นด้วย'; @override String get doesNotContainDataGridFilteringLabel => r'ไม่มี'; @override - String get doesNotEndWithDataGridFilteringLabel => r'ไม่จบด้วย'; + String get doesNotEndWithDataGridFilteringLabel => r'ไม่สิ้นสุดด้วย'; @override - String get doesNotEqualDataGridFilteringLabel => r'ไม่เท่ากัน'; + String get doesNotEqualDataGridFilteringLabel => r'ไม่เท่าเทียมกัน'; @override String get emptyDataGridFilteringLabel => r'ว่างเปล่า'; @@ -21450,6 +21605,9 @@ class SfLocalizationsTh extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'เท่ากับ'; + @override + String get fromDataGridFilteringLabel => r'จาก'; + @override String get greaterThanDataGridFilteringLabel => r'มากกว่า'; @@ -21460,16 +21618,16 @@ class SfLocalizationsTh extends SfGlobalLocalizations { String get jumada1Label => r'ญุมาดา อัลเอาวัล'; @override - String get jumada2Label => r'Jumada al-thani'; + String get jumada2Label => r'ญุมาดา อัล-ธานี'; @override String get lessThanDataGridFilteringLabel => r'น้อยกว่า'; @override - String get lessThanOrEqualDataGridFilteringLabel => r'น้อยกว่าหรือเท่ากัน'; + String get lessThanOrEqualDataGridFilteringLabel => r'น้อยกว่าหรือเท่ากับ'; @override - String get muharramLabel => r'มูฮัรรอม'; + String get muharramLabel => r'มุฮัรรอม'; @override String get noEventsCalendarLabel => r'ไม่มีกิจกรรม'; @@ -21478,10 +21636,10 @@ class SfLocalizationsTh extends SfGlobalLocalizations { String get noMatchesDataGridFilteringLabel => r'ไม่ตรงกัน'; @override - String get noSelectedDateCalendarLabel => r'ไม่ได้เลือกวันที่'; + String get noSelectedDateCalendarLabel => r'ไม่มีวันที่เลือก'; @override - String get notEmptyDataGridFilteringLabel => r'ไม่ว่าง'; + String get notEmptyDataGridFilteringLabel => r'ไม่ว่างเปล่า'; @override String get notNullDataGridFilteringLabel => r'ไม่เป็นโมฆะ'; @@ -21526,7 +21684,7 @@ class SfLocalizationsTh extends SfGlobalLocalizations { String get pdfGoToPageLabel => r'ไปที่หน้า'; @override - String get pdfHyperlinkContentLabel => r'ต้องการเปิดเพจที่'; + String get pdfHyperlinkContentLabel => r'คุณต้องการเปิดเพจที่'; @override String get pdfHyperlinkDialogCancelLabel => r'ยกเลิก'; @@ -21538,10 +21696,10 @@ class SfLocalizationsTh extends SfGlobalLocalizations { String get pdfHyperlinkLabel => r'เปิดหน้าเว็บ'; @override - String get pdfInvalidPageNumberLabel => r'กรุณาใส่ตัวเลขที่ถูกต้อง'; + String get pdfInvalidPageNumberLabel => r'โปรดป้อนหมายเลขที่ถูกต้อง'; @override - String get pdfNoBookmarksLabel => r'ไม่พบบุ๊คมาร์ค'; + String get pdfNoBookmarksLabel => r'ไม่พบบุ๊กมาร์ก'; @override String get pdfPaginationDialogCancelLabel => r'ยกเลิก'; @@ -21559,16 +21717,16 @@ class SfLocalizationsTh extends SfGlobalLocalizations { String get pdfScrollStatusOfLabel => r'ของ'; @override - String get rabi1Label => r'เราะบี อัลเอาวัล'; + String get rabi1Label => r'รอบิอัลเอาวัล'; @override - String get rabi2Label => r'รอบีอัล-ธานี'; + String get rabi2Label => r'รอบิอัล-ธานี'; @override - String get rajabLabel => r'ราชภัฏ'; + String get rajabLabel => r'ราชาบ'; @override - String get ramadanLabel => r'รอมฎอน'; + String get ramadanLabel => r'เดือนรอมฎอน'; @override String get rowsPerPageDataPagerLabel => r'แถวต่อหน้า'; @@ -21592,40 +21750,40 @@ class SfLocalizationsTh extends SfGlobalLocalizations { String get shawwalLabel => r'เชาวาล'; @override - String get shortDhualhiLabel => r'ดุลฮัก'; + String get shortDhualhiLabel => r'ดุอัล-เอช'; @override String get shortDhualqiLabel => r'ดุล-คิว'; @override - String get shortJumada1Label => r'จั้ม. ฉัน'; + String get shortJumada1Label => r'จุ๋ม. ฉัน'; @override - String get shortJumada2Label => r'จั้ม. II'; + String get shortJumada2Label => r'จุ๋ม. ครั้งที่สอง'; @override - String get shortMuharramLabel => r'มุ้ย.'; + String get shortMuharramLabel => r'มึ.'; @override - String get shortRabi1Label => r'รบี. ฉัน'; + String get shortRabi1Label => r'ระบี. ฉัน'; @override - String get shortRabi2Label => r'รบี. II'; + String get shortRabi2Label => r'ระบี. ครั้งที่สอง'; @override - String get shortRajabLabel => r'ราช.'; + String get shortRajabLabel => r'ราชา'; @override String get shortRamadanLabel => r'แกะ.'; @override - String get shortSafarLabel => r'เซฟ.'; + String get shortSafarLabel => r'ปลอดภัย'; @override - String get shortShaabanLabel => r'ชา.'; + String get shortShaabanLabel => r'ชา'; @override - String get shortShawwalLabel => r'ชอว์.'; + String get shortShawwalLabel => r'ชอว์'; @override String get showRowsWhereDataGridFilteringLabel => r'แสดงแถวที่'; @@ -21638,19 +21796,19 @@ class SfLocalizationsTh extends SfGlobalLocalizations { @override String get sortLargestToSmallestDataGridFilteringLabel => - r'เรียงจากมากไปหาน้อย'; + r'เรียงจากมากไปน้อย'; @override String get sortNewestToOldestDataGridFilteringLabel => - r'เรียงลำดับจากใหม่ไปเก่าสุด'; + r'เรียงลำดับใหม่ที่สุดไปเก่าที่สุด'; @override String get sortOldestToNewestDataGridFilteringLabel => - r'เรียงลำดับจากเก่าไปใหม่สุด'; + r'เรียงจากเก่าสุดไปใหม่สุด'; @override String get sortSmallestToLargestDataGridFilteringLabel => - r'เรียงจากน้อยไปหามาก'; + r'เรียงลำดับจากน้อยไปมาก'; @override String get sortZToADataGridFilteringLabel => r'เรียง Z ถึง A'; @@ -21727,8 +21885,7 @@ class SfLocalizationsTl extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Kanselahin'; @override - String get clearFilterFromDataGridFilteringLabel => - r'I-clear ang Filter Mula sa'; + String get clearFilterDataGridFilteringLabel => r'I-clear ang Filter'; @override String get containsDataGridFilteringLabel => r'Naglalaman'; @@ -21766,6 +21923,9 @@ class SfLocalizationsTl extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'katumbas'; + @override + String get fromDataGridFilteringLabel => r'Mula sa'; + @override String get greaterThanDataGridFilteringLabel => r'Mahigit sa'; @@ -21967,7 +22127,7 @@ class SfLocalizationsTl extends SfGlobalLocalizations { @override String get sortOldestToNewestDataGridFilteringLabel => - r'Pagbukud-bukurin ang Pinakaluma Hanggang Pinakabago'; + r'Pagbukud-bukurin ang Pinakamatanda Hanggang Pinakabago'; @override String get sortSmallestToLargestDataGridFilteringLabel => @@ -22000,7 +22160,7 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get afterDataGridFilteringLabel => r'Sonrasında'; @override - String get afterOrEqualDataGridFilteringLabel => r'Sonra veya Eşit'; + String get afterOrEqualDataGridFilteringLabel => r'Sonra Veya Eşittir'; @override String get allDayLabel => r'Tüm gün'; @@ -22049,7 +22209,7 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'İptal'; @override - String get clearFilterFromDataGridFilteringLabel => r'Filtreyi Temizle'; + String get clearFilterDataGridFilteringLabel => r'Temiz filtre'; @override String get containsDataGridFilteringLabel => r'içerir'; @@ -22064,16 +22224,16 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get dhualhiLabel => r'Zilhicce'; @override - String get dhualqiLabel => r'Zil Qi' "'" r'dah'; + String get dhualqiLabel => r'Dhu al-Qi' "'" r'dah'; @override - String get doesNotBeginWithDataGridFilteringLabel => r'ile Başlamıyor'; + String get doesNotBeginWithDataGridFilteringLabel => r'İle Başlamıyor'; @override String get doesNotContainDataGridFilteringLabel => r'İçermiyor'; @override - String get doesNotEndWithDataGridFilteringLabel => r'ile bitmez'; + String get doesNotEndWithDataGridFilteringLabel => r'ile bitmiyor'; @override String get doesNotEqualDataGridFilteringLabel => r'Eşit değil'; @@ -22088,13 +22248,17 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get equalsDataGridFilteringLabel => r'eşittir'; @override - String get greaterThanDataGridFilteringLabel => r'Büyüktür'; + String get fromDataGridFilteringLabel => r'İtibaren'; @override - String get greaterThanOrEqualDataGridFilteringLabel => r'Büyük veya Eşit'; + String get greaterThanDataGridFilteringLabel => r'Daha büyük'; + + @override + String get greaterThanOrEqualDataGridFilteringLabel => + r'Büyüktür veya Eşittir'; @override - String get jumada1Label => r'Cumada el-evvel'; + String get jumada1Label => r'Jumada al-evvel'; @override String get jumada2Label => r'Jumada al-thani'; @@ -22115,7 +22279,7 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get noMatchesDataGridFilteringLabel => r'Eşleşme yok'; @override - String get noSelectedDateCalendarLabel => r'Seçili tarih yok'; + String get noSelectedDateCalendarLabel => r'tarih seçilmedi'; @override String get notEmptyDataGridFilteringLabel => r'Boş değil'; @@ -22130,7 +22294,7 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get numberFiltersDataGridFilteringLabel => r'Sayı Filtreleri'; @override - String get ofDataPagerLabel => r'ile ilgili'; + String get ofDataPagerLabel => r'nın-nin'; @override String get okDataGridFilteringLabel => r'TAMAM'; @@ -22149,7 +22313,7 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get passwordDialogHeaderTextLabel => r'Şifre korumalı'; @override - String get passwordDialogHintTextLabel => r'Parolanı Gir'; + String get passwordDialogHintTextLabel => r'Şifre girin'; @override String get passwordDialogInvalidPasswordLabel => r'geçersiz şifre'; @@ -22158,16 +22322,17 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get pdfBookmarksLabel => r'Yer imleri'; @override - String get pdfEnterPageNumberLabel => r'Sayfa numarasını girin'; + String get pdfEnterPageNumberLabel => r'sayfa numarasını girin'; @override String get pdfGoToPageLabel => r'Sayfaya git'; @override - String get pdfHyperlinkContentLabel => r'Sayfayı açmak ister misin?'; + String get pdfHyperlinkContentLabel => + r'Sayfayı şu adreste açmak istiyor musunuz?'; @override - String get pdfHyperlinkDialogCancelLabel => r'İPTAL ET'; + String get pdfHyperlinkDialogCancelLabel => r'İPTAL ETMEK'; @override String get pdfHyperlinkDialogOpenLabel => r'AÇIK'; @@ -22176,7 +22341,7 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get pdfHyperlinkLabel => r'Web Sayfasını Aç'; @override - String get pdfInvalidPageNumberLabel => r'Lütfen geçerli bir numara girin'; + String get pdfInvalidPageNumberLabel => r'Lütfen geçerli bir sayı girin'; @override String get pdfNoBookmarksLabel => r'Yer işareti bulunamadı'; @@ -22185,7 +22350,7 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get pdfPaginationDialogCancelLabel => r'İPTAL ETMEK'; @override - String get pdfPaginationDialogOkLabel => r'Tamam'; + String get pdfPaginationDialogOkLabel => r'TAMAM'; @override String get pdfPasswordDialogCancelLabel => r'İPTAL ETMEK'; @@ -22194,10 +22359,10 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get pdfPasswordDialogOpenLabel => r'AÇIK'; @override - String get pdfScrollStatusOfLabel => r'ile ilgili'; + String get pdfScrollStatusOfLabel => r'nın-nin'; @override - String get rabi1Label => r'Rebiülevvel'; + String get rabi1Label => r'Rabi' "'" r'ul-evvel'; @override String get rabi2Label => r'Rabi' "'" r' al-thani'; @@ -22209,10 +22374,10 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get ramadanLabel => r'Ramazan'; @override - String get rowsPerPageDataPagerLabel => r'Sayfa başına satır sayısı'; + String get rowsPerPageDataPagerLabel => r'Sayfa başına satır'; @override - String get safarLabel => r'Safar'; + String get safarLabel => r'safar'; @override String get searchDataGridFilteringLabel => r'Arama'; @@ -22221,7 +22386,7 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get selectAllDataGridFilteringLabel => r'Hepsini seç'; @override - String get series => r'Seri'; + String get series => r'Diziler'; @override String get shaabanLabel => r'Şaban'; @@ -22233,22 +22398,22 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get shortDhualhiLabel => r'Zül-H'; @override - String get shortDhualqiLabel => r'Zil-Q'; + String get shortDhualqiLabel => r'Zül-Q'; @override - String get shortJumada1Label => r'Jum. i'; + String get shortJumada1Label => r'Cuma. ben'; @override - String get shortJumada2Label => r'Jum. II'; + String get shortJumada2Label => r'Cuma. III'; @override - String get shortMuharramLabel => r'Müh.'; + String get shortMuharramLabel => r'Muh.'; @override - String get shortRabi1Label => r'Rabi. i'; + String get shortRabi1Label => r'Rabi. ben'; @override - String get shortRabi2Label => r'Rabi. II'; + String get shortRabi2Label => r'Rabi. III'; @override String get shortRajabLabel => r'Raj.'; @@ -22260,13 +22425,13 @@ class SfLocalizationsTr extends SfGlobalLocalizations { String get shortSafarLabel => r'Saf.'; @override - String get shortShaabanLabel => r'Sha.'; + String get shortShaabanLabel => r'Şa.'; @override String get shortShawwalLabel => r'Shaw.'; @override - String get showRowsWhereDataGridFilteringLabel => r'Satırları göster nerede'; + String get showRowsWhereDataGridFilteringLabel => r'satırları göster'; @override String get sortAToZDataGridFilteringLabel => @@ -22277,19 +22442,19 @@ class SfLocalizationsTr extends SfGlobalLocalizations { @override String get sortLargestToSmallestDataGridFilteringLabel => - r'En Büyükten En Küçüğe Sırala'; + r'Büyükten Küçüğe Sırala'; @override String get sortNewestToOldestDataGridFilteringLabel => - r'En Yeniden En Eskiye Sırala'; + r'Yeniden En Eskiye Sırala'; @override String get sortOldestToNewestDataGridFilteringLabel => - r'Eskiden En Yeniye Sırala'; + r'Eskiden Yeniye Sırala'; @override String get sortSmallestToLargestDataGridFilteringLabel => - r'En Küçükten En Büyüğe Sırala'; + r'Küçükten Büyüğe Sırala'; @override String get sortZToADataGridFilteringLabel => @@ -22327,28 +22492,28 @@ class SfLocalizationsUk extends SfGlobalLocalizations { String get allowedViewDayLabel => r'День'; @override - String get allowedViewMonthLabel => r'Місяць'; + String get allowedViewMonthLabel => r'місяць'; @override - String get allowedViewScheduleLabel => r'Розклад'; + String get allowedViewScheduleLabel => r'розклад'; @override String get allowedViewTimelineDayLabel => r'День хронології'; @override - String get allowedViewTimelineMonthLabel => r'Хронологічний місяць'; + String get allowedViewTimelineMonthLabel => r'Місяць хронології'; @override String get allowedViewTimelineWeekLabel => r'Тиждень хронології'; @override - String get allowedViewTimelineWorkWeekLabel => r'Розклад робочого тижня'; + String get allowedViewTimelineWorkWeekLabel => r'Графік робочого тижня'; @override String get allowedViewWeekLabel => r'тиждень'; @override - String get allowedViewWorkWeekLabel => r'Робочий тиждень'; + String get allowedViewWorkWeekLabel => r'робочий тиждень'; @override String get andDataGridFilteringLabel => r'І'; @@ -22366,13 +22531,13 @@ class SfLocalizationsUk extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Скасувати'; @override - String get clearFilterFromDataGridFilteringLabel => r'Очистити фільтр від'; + String get clearFilterDataGridFilteringLabel => r'Очистити фільтр'; @override String get containsDataGridFilteringLabel => r'Містить'; @override - String get dateFiltersDataGridFilteringLabel => r'Фільтри дат'; + String get dateFiltersDataGridFilteringLabel => r'Фільтри дати'; @override String get daySpanCountLabel => r'День'; @@ -22404,6 +22569,9 @@ class SfLocalizationsUk extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Дорівнює'; + @override + String get fromDataGridFilteringLabel => r'Від'; + @override String get greaterThanDataGridFilteringLabel => r'Більше, ніж, величніше ніж, крутіший за'; @@ -22415,7 +22583,7 @@ class SfLocalizationsUk extends SfGlobalLocalizations { String get jumada1Label => r'Джумада аль-авваль'; @override - String get jumada2Label => r'Джумада аль-Тані'; + String get jumada2Label => r'Джумада аль-тані'; @override String get lessThanDataGridFilteringLabel => r'Менше ніж'; @@ -22427,13 +22595,13 @@ class SfLocalizationsUk extends SfGlobalLocalizations { String get muharramLabel => r'Мухаррам'; @override - String get noEventsCalendarLabel => r'Жодних подій'; + String get noEventsCalendarLabel => r'Подій немає'; @override String get noMatchesDataGridFilteringLabel => r'Немає збігів'; @override - String get noSelectedDateCalendarLabel => r'Немає вибраної дати'; + String get noSelectedDateCalendarLabel => r'Дата не вибрана'; @override String get notEmptyDataGridFilteringLabel => r'Не порожній'; @@ -22461,7 +22629,7 @@ class SfLocalizationsUk extends SfGlobalLocalizations { @override String get passwordDialogContentLabel => - r'Введіть пароль, щоб відкрити цей PDF-файл'; + r'Введіть пароль, щоб відкрити цей файл PDF'; @override String get passwordDialogHeaderTextLabel => r'Захищено паролем'; @@ -22470,7 +22638,7 @@ class SfLocalizationsUk extends SfGlobalLocalizations { String get passwordDialogHintTextLabel => r'Введіть пароль'; @override - String get passwordDialogInvalidPasswordLabel => r'Недійсний пароль'; + String get passwordDialogInvalidPasswordLabel => r'Невірний пароль'; @override String get pdfBookmarksLabel => r'Закладки'; @@ -22482,8 +22650,7 @@ class SfLocalizationsUk extends SfGlobalLocalizations { String get pdfGoToPageLabel => r'Перейти на сторінку'; @override - String get pdfHyperlinkContentLabel => - r'Бажаєте відкрити сторінку за адресою'; + String get pdfHyperlinkContentLabel => r'Хочете відкрити сторінку за адресою'; @override String get pdfHyperlinkDialogCancelLabel => r'СКАСУВАТИ'; @@ -22492,10 +22659,10 @@ class SfLocalizationsUk extends SfGlobalLocalizations { String get pdfHyperlinkDialogOpenLabel => r'ВІДЧИНЕНО'; @override - String get pdfHyperlinkLabel => r'Відкрийте веб-сторінку'; + String get pdfHyperlinkLabel => r'Відкрити веб-сторінку'; @override - String get pdfInvalidPageNumberLabel => r'Введіть дійсне число'; + String get pdfInvalidPageNumberLabel => r'Введіть дійсний номер'; @override String get pdfNoBookmarksLabel => r'Закладок не знайдено'; @@ -22504,7 +22671,7 @@ class SfLocalizationsUk extends SfGlobalLocalizations { String get pdfPaginationDialogCancelLabel => r'СКАСУВАТИ'; @override - String get pdfPaginationDialogOkLabel => r'гаразд'; + String get pdfPaginationDialogOkLabel => r'в порядку'; @override String get pdfPasswordDialogCancelLabel => r'СКАСУВАТИ'; @@ -22519,7 +22686,7 @@ class SfLocalizationsUk extends SfGlobalLocalizations { String get rabi1Label => r'Рабі аль-авваль'; @override - String get rabi2Label => r'Рабі аль-Тані'; + String get rabi2Label => r'Рабі аль-тані'; @override String get rajabLabel => r'Раджаб'; @@ -22546,22 +22713,22 @@ class SfLocalizationsUk extends SfGlobalLocalizations { String get shaabanLabel => r'Шаабан'; @override - String get shawwalLabel => r'Shawwal'; + String get shawwalLabel => r'Шавваль'; @override - String get shortDhualhiLabel => r'Dhu' "'" r'l-H'; + String get shortDhualhiLabel => r'Зу' "'" r'л-Х'; @override - String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; + String get shortDhualqiLabel => r'Зу' "'" r'л-К' "'" r'ю'; @override - String get shortJumada1Label => r'Jum. я'; + String get shortJumada1Label => r'стрибати я'; @override - String get shortJumada2Label => r'Jum. II'; + String get shortJumada2Label => r'стрибати II'; @override - String get shortMuharramLabel => r'Мух'; + String get shortMuharramLabel => r'мух'; @override String get shortRabi1Label => r'Рабі. я'; @@ -22576,7 +22743,7 @@ class SfLocalizationsUk extends SfGlobalLocalizations { String get shortRamadanLabel => r'ОЗП.'; @override - String get shortSafarLabel => r'Saf.'; + String get shortSafarLabel => r'Саф.'; @override String get shortShaabanLabel => r'Ша.'; @@ -22683,7 +22850,7 @@ class SfLocalizationsUr extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'منسوخ کریں۔'; @override - String get clearFilterFromDataGridFilteringLabel => r'سے فلٹر صاف کریں۔'; + String get clearFilterDataGridFilteringLabel => r'فلٹر صاف کریں۔'; @override String get containsDataGridFilteringLabel => r'مشتمل'; @@ -22721,6 +22888,9 @@ class SfLocalizationsUr extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'برابر ہے۔'; + @override + String get fromDataGridFilteringLabel => r'سے'; + @override String get greaterThanDataGridFilteringLabel => r'اس سے بڑا'; @@ -22764,7 +22934,7 @@ class SfLocalizationsUr extends SfGlobalLocalizations { String get numberFiltersDataGridFilteringLabel => r'نمبر فلٹرز'; @override - String get ofDataPagerLabel => r'کا'; + String get ofDataPagerLabel => r'کی'; @override String get okDataGridFilteringLabel => r'ٹھیک ہے'; @@ -22804,7 +22974,7 @@ class SfLocalizationsUr extends SfGlobalLocalizations { String get pdfHyperlinkDialogCancelLabel => r'منسوخ کریں۔'; @override - String get pdfHyperlinkDialogOpenLabel => r'کھولیں'; + String get pdfHyperlinkDialogOpenLabel => r'کھولیں۔'; @override String get pdfHyperlinkLabel => r'ویب صفحہ کھولیں۔'; @@ -22826,10 +22996,10 @@ class SfLocalizationsUr extends SfGlobalLocalizations { String get pdfPasswordDialogCancelLabel => r'منسوخ کریں۔'; @override - String get pdfPasswordDialogOpenLabel => r'کھولیں'; + String get pdfPasswordDialogOpenLabel => r'کھولیں۔'; @override - String get pdfScrollStatusOfLabel => r'کا'; + String get pdfScrollStatusOfLabel => r'کی'; @override String get rabi1Label => r'ربیع الاول'; @@ -22911,7 +23081,7 @@ class SfLocalizationsUr extends SfGlobalLocalizations { @override String get sortLargestToSmallestDataGridFilteringLabel => - r'چھانٹیں بڑی سے چھوٹی'; + r'چھانٹیں بڑے سے چھوٹے'; @override String get sortNewestToOldestDataGridFilteringLabel => @@ -22999,7 +23169,7 @@ class SfLocalizationsUz extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Bekor qilish'; @override - String get clearFilterFromDataGridFilteringLabel => r'Filtrni tozalash'; + String get clearFilterDataGridFilteringLabel => r'Filtrni tozalash'; @override String get containsDataGridFilteringLabel => r'Tarkibida'; @@ -23037,6 +23207,9 @@ class SfLocalizationsUz extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Teng'; + @override + String get fromDataGridFilteringLabel => r'Kimdan'; + @override String get greaterThanDataGridFilteringLabel => r'Kattaroq'; @@ -23267,7 +23440,7 @@ class SfLocalizationsVi extends SfGlobalLocalizations { String get afterDataGridFilteringLabel => r'Sau'; @override - String get afterOrEqualDataGridFilteringLabel => r'Sau hoặc bằng'; + String get afterOrEqualDataGridFilteringLabel => r'Sau Hoặc Bằng'; @override String get allDayLabel => r'Cả ngày'; @@ -23282,17 +23455,17 @@ class SfLocalizationsVi extends SfGlobalLocalizations { String get allowedViewScheduleLabel => r'Lịch trình'; @override - String get allowedViewTimelineDayLabel => r'Ngày dòng thời gian'; + String get allowedViewTimelineDayLabel => r'Dòng thời gian ngày'; @override String get allowedViewTimelineMonthLabel => r'Dòng thời gian Tháng'; @override - String get allowedViewTimelineWeekLabel => r'Dòng thời gian trong tuần'; + String get allowedViewTimelineWeekLabel => r'Dòng thời gian Tuần'; @override String get allowedViewTimelineWorkWeekLabel => - r'Dòng thời gian làm việc trong tuần'; + r'Thời gian biểu Tuần làm việc'; @override String get allowedViewWeekLabel => r'Tuần'; @@ -23304,7 +23477,7 @@ class SfLocalizationsVi extends SfGlobalLocalizations { String get andDataGridFilteringLabel => r'Và'; @override - String get beforeDataGridFilteringLabel => r'Trước hoặc bằng'; + String get beforeDataGridFilteringLabel => r'Trước Hoặc Bằng'; @override String get beforeOrEqualDataGridFilteringLabel => r'Trước'; @@ -23316,7 +23489,7 @@ class SfLocalizationsVi extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Hủy bỏ'; @override - String get clearFilterFromDataGridFilteringLabel => r'Xóa bộ lọc khỏi'; + String get clearFilterDataGridFilteringLabel => r'LÀm sạch bộ lọc'; @override String get containsDataGridFilteringLabel => r'Chứa'; @@ -23334,25 +23507,28 @@ class SfLocalizationsVi extends SfGlobalLocalizations { String get dhualqiLabel => r'Dhu al-Qi' "'" r'dah'; @override - String get doesNotBeginWithDataGridFilteringLabel => r'Không bắt đầu với'; + String get doesNotBeginWithDataGridFilteringLabel => r'không bắt đầu bằng'; @override String get doesNotContainDataGridFilteringLabel => r'Không chứa'; @override - String get doesNotEndWithDataGridFilteringLabel => r'Không kết thúc bằng'; + String get doesNotEndWithDataGridFilteringLabel => r'không kết thúc với'; @override - String get doesNotEqualDataGridFilteringLabel => r'Không bằng nhau'; + String get doesNotEqualDataGridFilteringLabel => r'không bằng'; @override String get emptyDataGridFilteringLabel => r'Trống rỗng'; @override - String get endsWithDataGridFilteringLabel => r'Kết thúc với'; + String get endsWithDataGridFilteringLabel => r'kết thúc với'; + + @override + String get equalsDataGridFilteringLabel => r'bằng'; @override - String get equalsDataGridFilteringLabel => r'Bằng'; + String get fromDataGridFilteringLabel => r'Từ'; @override String get greaterThanDataGridFilteringLabel => r'Lớn hơn'; @@ -23385,7 +23561,7 @@ class SfLocalizationsVi extends SfGlobalLocalizations { String get noSelectedDateCalendarLabel => r'Không có ngày được chọn'; @override - String get notEmptyDataGridFilteringLabel => r'Không rỗng'; + String get notEmptyDataGridFilteringLabel => r'Không trống'; @override String get notNullDataGridFilteringLabel => r'Có giá trị'; @@ -23430,7 +23606,7 @@ class SfLocalizationsVi extends SfGlobalLocalizations { String get pdfGoToPageLabel => r'Đi tới trang'; @override - String get pdfHyperlinkContentLabel => r'Bạn có muốn mở trang này tại'; + String get pdfHyperlinkContentLabel => r'Bạn có muốn mở trang tại'; @override String get pdfHyperlinkDialogCancelLabel => r'SỰ HỦY BỎ'; @@ -23445,13 +23621,13 @@ class SfLocalizationsVi extends SfGlobalLocalizations { String get pdfInvalidPageNumberLabel => r'Vui lòng nhập một số hợp lệ'; @override - String get pdfNoBookmarksLabel => r'Không tìm thấy dấu trang'; + String get pdfNoBookmarksLabel => r'Không tìm thấy dấu trang nào'; @override String get pdfPaginationDialogCancelLabel => r'SỰ HỦY BỎ'; @override - String get pdfPaginationDialogOkLabel => r'VÂNG'; + String get pdfPaginationDialogOkLabel => r'ĐƯỢC RỒI'; @override String get pdfPasswordDialogCancelLabel => r'SỰ HỦY BỎ'; @@ -23463,22 +23639,22 @@ class SfLocalizationsVi extends SfGlobalLocalizations { String get pdfScrollStatusOfLabel => r'của'; @override - String get rabi1Label => r'Rabi ' "'" r'al-awwal'; + String get rabi1Label => r'Rabi' "'" r' al-awwal'; @override - String get rabi2Label => r'Rabi ' "'" r'al-thani'; + String get rabi2Label => r'Rabi' "'" r' al-thani'; @override String get rajabLabel => r'Rajab'; @override - String get ramadanLabel => r'Ramadan'; + String get ramadanLabel => r'lễ ramadan'; @override String get rowsPerPageDataPagerLabel => r'Hàng trên mỗi trang'; @override - String get safarLabel => r'Safar'; + String get safarLabel => r'safar'; @override String get searchDataGridFilteringLabel => r'Tìm kiếm'; @@ -23487,7 +23663,7 @@ class SfLocalizationsVi extends SfGlobalLocalizations { String get selectAllDataGridFilteringLabel => r'Chọn tất cả'; @override - String get series => r'Hàng loạt'; + String get series => r'Loạt'; @override String get shaabanLabel => r'Sha' "'" r'aban'; @@ -23502,16 +23678,16 @@ class SfLocalizationsVi extends SfGlobalLocalizations { String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; @override - String get shortJumada1Label => r'Jum. tôi'; + String get shortJumada1Label => r'Jum. Tôi'; @override String get shortJumada2Label => r'Jum. II'; @override - String get shortMuharramLabel => r'Ờ.'; + String get shortMuharramLabel => r'ừm.'; @override - String get shortRabi1Label => r'Rabi. tôi'; + String get shortRabi1Label => r'Rabi. Tôi'; @override String get shortRabi2Label => r'Rabi. II'; @@ -23520,10 +23696,10 @@ class SfLocalizationsVi extends SfGlobalLocalizations { String get shortRajabLabel => r'Raj.'; @override - String get shortRamadanLabel => r'Ram.'; + String get shortRamadanLabel => r'Đập.'; @override - String get shortSafarLabel => r'Két sắt.'; + String get shortSafarLabel => r'an toàn.'; @override String get shortShaabanLabel => r'Sha.'; @@ -23542,11 +23718,11 @@ class SfLocalizationsVi extends SfGlobalLocalizations { @override String get sortLargestToSmallestDataGridFilteringLabel => - r'Sắp xếp Lớn nhất đến Nhỏ nhất'; + r'Sắp xếp lớn nhất đến nhỏ nhất'; @override String get sortNewestToOldestDataGridFilteringLabel => - r'Sắp xếp từ Mới nhất đến Cũ nhất'; + r'Sắp xếp mới nhất đến cũ nhất'; @override String get sortOldestToNewestDataGridFilteringLabel => @@ -23557,7 +23733,7 @@ class SfLocalizationsVi extends SfGlobalLocalizations { r'Sắp xếp từ nhỏ nhất đến lớn nhất'; @override - String get sortZToADataGridFilteringLabel => r'Sắp xếp Z đến A'; + String get sortZToADataGridFilteringLabel => r'Sắp xếp từ Z đến A'; @override String get textFiltersDataGridFilteringLabel => r'Bộ lọc văn bản'; @@ -23582,13 +23758,13 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get afterDataGridFilteringLabel => r'后'; @override - String get afterOrEqualDataGridFilteringLabel => r'之后或等于'; + String get afterOrEqualDataGridFilteringLabel => r'等于或之后'; @override String get allDayLabel => r'一整天'; @override - String get allowedViewDayLabel => r'日'; + String get allowedViewDayLabel => r'天'; @override String get allowedViewMonthLabel => r'月'; @@ -23597,10 +23773,10 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get allowedViewScheduleLabel => r'日程'; @override - String get allowedViewTimelineDayLabel => r'时间表日'; + String get allowedViewTimelineDayLabel => r'时间轴日'; @override - String get allowedViewTimelineMonthLabel => r'时间线月份'; + String get allowedViewTimelineMonthLabel => r'时间表月份'; @override String get allowedViewTimelineWeekLabel => r'时间线周'; @@ -23618,7 +23794,7 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get andDataGridFilteringLabel => r'和'; @override - String get beforeDataGridFilteringLabel => r'之前或等于'; + String get beforeDataGridFilteringLabel => r'早于或等于'; @override String get beforeOrEqualDataGridFilteringLabel => r'前'; @@ -23630,7 +23806,7 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'取消'; @override - String get clearFilterFromDataGridFilteringLabel => r'清除过滤器'; + String get clearFilterDataGridFilteringLabel => r'清除过滤器'; @override String get containsDataGridFilteringLabel => r'包含'; @@ -23639,22 +23815,22 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get dateFiltersDataGridFilteringLabel => r'日期过滤器'; @override - String get daySpanCountLabel => r'日'; + String get daySpanCountLabel => r'天'; @override - String get dhualhiLabel => r'杜哈杰'; + String get dhualhiLabel => r'Dhu al-Hijjah'; @override - String get dhualqiLabel => r'杜阿尔-基达'; + String get dhualqiLabel => r'Dhu al-Qi' "'" r'dah'; @override - String get doesNotBeginWithDataGridFilteringLabel => r'不以'; + String get doesNotBeginWithDataGridFilteringLabel => r'不以开头'; @override String get doesNotContainDataGridFilteringLabel => r'不含'; @override - String get doesNotEndWithDataGridFilteringLabel => r'不以'; + String get doesNotEndWithDataGridFilteringLabel => r'不结束于'; @override String get doesNotEqualDataGridFilteringLabel => r'不等于'; @@ -23668,6 +23844,9 @@ class SfLocalizationsZh extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'等于'; + @override + String get fromDataGridFilteringLabel => r'从'; + @override String get greaterThanDataGridFilteringLabel => r'比...更棒'; @@ -23675,10 +23854,10 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get greaterThanOrEqualDataGridFilteringLabel => r'大于或等于'; @override - String get jumada1Label => r'胡玛达·奥瓦尔'; + String get jumada1Label => r'朱马达·阿瓦瓦尔'; @override - String get jumada2Label => r'朱马达·萨尼'; + String get jumada2Label => r'祖玛达·阿萨尼'; @override String get lessThanDataGridFilteringLabel => r'少于'; @@ -23687,16 +23866,16 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get lessThanOrEqualDataGridFilteringLabel => r'小于或等于'; @override - String get muharramLabel => r'穆哈拉姆'; + String get muharramLabel => r'回历'; @override - String get noEventsCalendarLabel => r'没有事件'; + String get noEventsCalendarLabel => r'没有活动'; @override String get noMatchesDataGridFilteringLabel => r'无匹配'; @override - String get noSelectedDateCalendarLabel => r'未选择日期'; + String get noSelectedDateCalendarLabel => r'没有选择日期'; @override String get notEmptyDataGridFilteringLabel => r'不是空的'; @@ -23720,10 +23899,10 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get orDataGridFilteringLabel => r'或者'; @override - String get pagesDataPagerLabel => r'页面'; + String get pagesDataPagerLabel => r'页数'; @override - String get passwordDialogContentLabel => r'输入密码以打开此 PDF 文件'; + String get passwordDialogContentLabel => r'输入密码打开此 PDF 文件'; @override String get passwordDialogHeaderTextLabel => r'密码保护'; @@ -23744,7 +23923,7 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get pdfGoToPageLabel => r'转到页面'; @override - String get pdfHyperlinkContentLabel => r'您要在以下位置打开页面吗'; + String get pdfHyperlinkContentLabel => r'你想打开页面吗'; @override String get pdfHyperlinkDialogCancelLabel => r'取消'; @@ -23759,7 +23938,7 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get pdfInvalidPageNumberLabel => r'请输入有效号码'; @override - String get pdfNoBookmarksLabel => r'未找到书签'; + String get pdfNoBookmarksLabel => r'找不到书签'; @override String get pdfPaginationDialogCancelLabel => r'取消'; @@ -23777,13 +23956,13 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get pdfScrollStatusOfLabel => r'的'; @override - String get rabi1Label => r'拉比奥瓦尔'; + String get rabi1Label => r'拉比·奥瓦尔'; @override String get rabi2Label => r'拉比阿勒萨尼'; @override - String get rajabLabel => r'拉贾布'; + String get rajabLabel => r'拉杰卜'; @override String get ramadanLabel => r'斋月'; @@ -23810,22 +23989,22 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get shawwalLabel => r'肖瓦尔'; @override - String get shortDhualhiLabel => r'杜尔-H'; + String get shortDhualhiLabel => r'Dhu' "'" r'l-H'; @override - String get shortDhualqiLabel => r'杜尔-Q'; + String get shortDhualqiLabel => r'Dhu' "'" r'l-Q'; @override - String get shortJumada1Label => r'朱姆。一世'; + String get shortJumada1Label => r'滚。我'; @override - String get shortJumada2Label => r'朱姆。二'; + String get shortJumada2Label => r'滚。二'; @override String get shortMuharramLabel => r'嗯。'; @override - String get shortRabi1Label => r'拉比。一世'; + String get shortRabi1Label => r'拉比。我'; @override String get shortRabi2Label => r'拉比。二'; @@ -23867,7 +24046,7 @@ class SfLocalizationsZh extends SfGlobalLocalizations { String get sortSmallestToLargestDataGridFilteringLabel => r'从小到大排序'; @override - String get sortZToADataGridFilteringLabel => r'从 Z 到 A 排序'; + String get sortZToADataGridFilteringLabel => r'将 Z 排序为 A'; @override String get textFiltersDataGridFilteringLabel => r'文本过滤器'; @@ -23902,13 +24081,13 @@ class SfLocalizationsZhHant extends SfLocalizationsZh { String get afterDataGridFilteringLabel => r'後'; @override - String get afterOrEqualDataGridFilteringLabel => r'之後或等於'; + String get afterOrEqualDataGridFilteringLabel => r'等於或之後'; @override - String get allowedViewTimelineDayLabel => r'時間表日'; + String get allowedViewTimelineDayLabel => r'時間軸日'; @override - String get allowedViewTimelineMonthLabel => r'時間線月份'; + String get allowedViewTimelineMonthLabel => r'時間表月份'; @override String get allowedViewTimelineWeekLabel => r'時間線週'; @@ -23920,22 +24099,22 @@ class SfLocalizationsZhHant extends SfLocalizationsZh { String get allowedViewWorkWeekLabel => r'工作週'; @override - String get beforeDataGridFilteringLabel => r'之前或等於'; + String get beforeDataGridFilteringLabel => r'早於或等於'; @override String get beginsWithDataGridFilteringLabel => r'開始於'; @override - String get clearFilterFromDataGridFilteringLabel => r'清除過濾器'; + String get clearFilterDataGridFilteringLabel => r'清除過濾器'; @override String get dateFiltersDataGridFilteringLabel => r'日期過濾器'; @override - String get dhualhiLabel => r'杜哈傑'; + String get doesNotBeginWithDataGridFilteringLabel => r'不以開頭'; @override - String get dhualqiLabel => r'杜阿爾-基達'; + String get doesNotEndWithDataGridFilteringLabel => r'不結束於'; @override String get doesNotEqualDataGridFilteringLabel => r'不等於'; @@ -23946,14 +24125,17 @@ class SfLocalizationsZhHant extends SfLocalizationsZh { @override String get equalsDataGridFilteringLabel => r'等於'; + @override + String get fromDataGridFilteringLabel => r'從'; + @override String get greaterThanOrEqualDataGridFilteringLabel => r'大於或等於'; @override - String get jumada1Label => r'胡瑪達·奧瓦爾'; + String get jumada1Label => r'朱馬達·阿瓦瓦爾'; @override - String get jumada2Label => r'朱馬達·薩尼'; + String get jumada2Label => r'祖瑪達·阿薩尼'; @override String get lessThanDataGridFilteringLabel => r'少於'; @@ -23962,13 +24144,16 @@ class SfLocalizationsZhHant extends SfLocalizationsZh { String get lessThanOrEqualDataGridFilteringLabel => r'小於或等於'; @override - String get noEventsCalendarLabel => r'沒有事件'; + String get muharramLabel => r'回曆'; + + @override + String get noEventsCalendarLabel => r'沒有活動'; @override String get noMatchesDataGridFilteringLabel => r'無匹配'; @override - String get noSelectedDateCalendarLabel => r'未選擇日期'; + String get noSelectedDateCalendarLabel => r'沒有選擇日期'; @override String get notNullDataGridFilteringLabel => r'不為空'; @@ -23980,10 +24165,10 @@ class SfLocalizationsZhHant extends SfLocalizationsZh { String get numberFiltersDataGridFilteringLabel => r'數字過濾器'; @override - String get pagesDataPagerLabel => r'頁面'; + String get pagesDataPagerLabel => r'頁數'; @override - String get passwordDialogContentLabel => r'輸入密碼以打開此 PDF 文件'; + String get passwordDialogContentLabel => r'輸入密碼打開此 PDF 文件'; @override String get passwordDialogHeaderTextLabel => r'密碼保護'; @@ -24004,7 +24189,7 @@ class SfLocalizationsZhHant extends SfLocalizationsZh { String get pdfGoToPageLabel => r'轉到頁面'; @override - String get pdfHyperlinkContentLabel => r'您要在以下位置打開頁面嗎'; + String get pdfHyperlinkContentLabel => r'你想打開頁面嗎'; @override String get pdfHyperlinkDialogOpenLabel => r'打開'; @@ -24016,19 +24201,19 @@ class SfLocalizationsZhHant extends SfLocalizationsZh { String get pdfInvalidPageNumberLabel => r'請輸入有效號碼'; @override - String get pdfNoBookmarksLabel => r'未找到書籤'; + String get pdfNoBookmarksLabel => r'找不到書籤'; @override String get pdfPasswordDialogOpenLabel => r'打開'; @override - String get rabi1Label => r'拉比奧瓦爾'; + String get rabi1Label => r'拉比·奧瓦爾'; @override String get rabi2Label => r'拉比阿勒薩尼'; @override - String get rajabLabel => r'拉賈布'; + String get rajabLabel => r'拉傑卜'; @override String get ramadanLabel => r'齋月'; @@ -24046,10 +24231,10 @@ class SfLocalizationsZhHant extends SfLocalizationsZh { String get shawwalLabel => r'肖瓦爾'; @override - String get shortDhualhiLabel => r'杜爾-H'; + String get shortJumada1Label => r'滾。我'; @override - String get shortDhualqiLabel => r'杜爾-Q'; + String get shortJumada2Label => r'滾。二'; @override String get shortRamadanLabel => r'內存。'; @@ -24076,7 +24261,7 @@ class SfLocalizationsZhHant extends SfLocalizationsZh { String get sortSmallestToLargestDataGridFilteringLabel => r'從小到大排序'; @override - String get sortZToADataGridFilteringLabel => r'從 Z 到 A 排序'; + String get sortZToADataGridFilteringLabel => r'將 Z 排序為 A'; @override String get textFiltersDataGridFilteringLabel => r'文本過濾器'; @@ -24164,7 +24349,7 @@ class SfLocalizationsZu extends SfGlobalLocalizations { String get cancelDataGridFilteringLabel => r'Khansela'; @override - String get clearFilterFromDataGridFilteringLabel => r'Sula Isihlungi Kusuka'; + String get clearFilterDataGridFilteringLabel => r'Sula Isihlungi'; @override String get containsDataGridFilteringLabel => r'Iqukethe'; @@ -24202,6 +24387,9 @@ class SfLocalizationsZu extends SfGlobalLocalizations { @override String get equalsDataGridFilteringLabel => r'Kuyalingana'; + @override + String get fromDataGridFilteringLabel => r'Kusuka'; + @override String get greaterThanDataGridFilteringLabel => r'Okukhulu Kunokuthi'; diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_af.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_af.arb index 7ecd995e4..54d272e3c 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_af.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_af.arb @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Sorteer Z tot A", "sortOldestToNewestDataGridFilteringLabel" : "Sorteer oudste na nuutste", "sortNewestToOldestDataGridFilteringLabel" : "Sorteer nuutste na oudste", -"clearFilterFromDataGridFilteringLabel" : "Vee filter uit", "textFiltersDataGridFilteringLabel" : "Teks filters", "numberFiltersDataGridFilteringLabel" : "Getalfilters", "dateFiltersDataGridFilteringLabel" : "Datum filters", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "En", "orDataGridFilteringLabel" : "Of", "selectAllDataGridFilteringLabel" : "Kies Alles", -"sortAndFilterDataGridFilteringLabel" : "Sorteer en Filter" +"sortAndFilterDataGridFilteringLabel" : "Sorteer en Filter", +"clearFilterDataGridFilteringLabel" : "Vee filter uit", +"fromDataGridFilteringLabel" : "Van" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_am.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_am.arb index 46eac7517..e468fb753 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_am.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_am.arb @@ -9,7 +9,7 @@ "pdfScrollStatusOfLabel" : "የ", "pdfGoToPageLabel" : "ወደ ገጽ ይሂዱ", "pdfEnterPageNumberLabel" : "የገጽ ቁጥር አስገባ", -"pdfInvalidPageNumberLabel" : "እባክህ የሚሰራ ቁጥር አስገባ", +"pdfInvalidPageNumberLabel" : "እባክዎ ትክክለኛ ቁጥር ያስገቡ", "pdfPaginationDialogOkLabel" : "እሺ", "pdfPaginationDialogCancelLabel" : "ሰርዝ", "passwordDialogHeaderTextLabel" : "በይለፍ ቃል የተጠበቀ", @@ -39,10 +39,10 @@ "rajabLabel" : "ራጀብ", "shaabanLabel" : "ሻዕባን", "ramadanLabel" : "ረመዳን", -"shawwalLabel" : "ሻውል", +"shawwalLabel" : "ሻዋል", "dhualqiLabel" : "ዙ አል-ቂዳህ", "dhualhiLabel" : "ዙልሂጃህ", -"shortMuharramLabel" : "ሙህ.", +"shortMuharramLabel" : "ሙህ", "shortSafarLabel" : "ሴፍ.", "shortRabi1Label" : "ራቢ. አይ", "shortRabi2Label" : "ራቢ. II", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z ወደ A ደርድር", "sortOldestToNewestDataGridFilteringLabel" : "አሮጌውን ወደ አዲሱ ደርድር", "sortNewestToOldestDataGridFilteringLabel" : "አዲሱን ወደ አሮጌው ደርድር", -"clearFilterFromDataGridFilteringLabel" : "ማጣሪያን ከ ያጽዱ", "textFiltersDataGridFilteringLabel" : "የጽሑፍ ማጣሪያዎች", "numberFiltersDataGridFilteringLabel" : "የቁጥር ማጣሪያዎች", "dateFiltersDataGridFilteringLabel" : "የቀን ማጣሪያዎች", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "እና", "orDataGridFilteringLabel" : "ወይም", "selectAllDataGridFilteringLabel" : "ሁሉንም ምረጥ", -"sortAndFilterDataGridFilteringLabel" : "ደርድር እና አጣራ" +"sortAndFilterDataGridFilteringLabel" : "ደርድር እና አጣራ", +"clearFilterDataGridFilteringLabel" : "ማጣሪያን አጽዳ", +"fromDataGridFilteringLabel" : "ከ" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ar.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ar.arb index 2322a4556..d1429b260 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ar.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ar.arb @@ -46,8 +46,8 @@ "shortSafarLabel" : "ساف.", "shortRabi1Label" : "ربيع. أنا", "shortRabi2Label" : "ربيع. ثانيًا", -"shortJumada1Label" : "جام. أنا", -"shortJumada2Label" : "جام. ثانيًا", +"shortJumada1Label" : "جم. أنا", +"shortJumada2Label" : "جم. ثانيًا", "shortRajabLabel" : "راج.", "shortShaabanLabel" : "شا.", "shortRamadanLabel" : "الرامات الذاكرة العشوائية في الهواتف والحواسيب.", @@ -55,7 +55,7 @@ "shortDhualqiLabel" : "ذو القعدة", "shortDhualhiLabel" : "ذو الحجة", "daySpanCountLabel" : "يوم", -"series" : "مسلسل", +"series" : "سلسلة", "pdfHyperlinkLabel" : "افتح صفحة الويب", "pdfHyperlinkContentLabel" : "هل تريد فتح الصفحة في", "pdfHyperlinkDialogOpenLabel" : "افتح", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "فرز Z إلى A.", "sortOldestToNewestDataGridFilteringLabel" : "فرز من الأقدم إلى الأحدث", "sortNewestToOldestDataGridFilteringLabel" : "فرز من الأحدث إلى الأقدم", -"clearFilterFromDataGridFilteringLabel" : "مسح عامل التصفية من", "textFiltersDataGridFilteringLabel" : "مرشحات النص", "numberFiltersDataGridFilteringLabel" : "مرشحات الرقم", "dateFiltersDataGridFilteringLabel" : "مرشحات التاريخ", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "و", "orDataGridFilteringLabel" : "أو", "selectAllDataGridFilteringLabel" : "اختر الكل", -"sortAndFilterDataGridFilteringLabel" : "الفرز والتصفية" +"sortAndFilterDataGridFilteringLabel" : "الفرز والتصفية", +"clearFilterDataGridFilteringLabel" : "مرشح واضح", +"fromDataGridFilteringLabel" : "من" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_az.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_az.arb index 2e0683154..558d7b2eb 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_az.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_az.arb @@ -35,7 +35,7 @@ "rabi1Label" : "Rəbiul-əvvəl", "rabi2Label" : "Rəbi əl-sani", "jumada1Label" : "Cümə əl-əvvəl", -"jumada2Label" : "Cümədə əl-sani", +"jumada2Label" : "Cüməda əl-sani", "rajabLabel" : "Rəcəb", "shaabanLabel" : "Şaban", "ramadanLabel" : "Ramazan", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z-dən A sıralayın", "sortOldestToNewestDataGridFilteringLabel" : "Ən köhnədən ən yeniyə çeşidləyin", "sortNewestToOldestDataGridFilteringLabel" : "Ən yenidən köhnəyə çeşidləyin", -"clearFilterFromDataGridFilteringLabel" : "Filtri Sil", "textFiltersDataGridFilteringLabel" : "Mətn Filtrləri", "numberFiltersDataGridFilteringLabel" : "Nömrə Filtrləri", "dateFiltersDataGridFilteringLabel" : "Tarix Filtrləri", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Və", "orDataGridFilteringLabel" : "Və ya", "selectAllDataGridFilteringLabel" : "Hamısını seç", -"sortAndFilterDataGridFilteringLabel" : "Çeşidləyin və Filtr edin" +"sortAndFilterDataGridFilteringLabel" : "Çeşidləyin və Filtr edin", +"clearFilterDataGridFilteringLabel" : "Filtri təmizləyin", +"fromDataGridFilteringLabel" : "From" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_be.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_be.arb index c2646f204..c9c5d40bc 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_be.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_be.arb @@ -1,65 +1,65 @@ { -"noSelectedDateCalendarLabel" : "Няма выбранай даты", +"noSelectedDateCalendarLabel" : "Дата не выбрана", "noEventsCalendarLabel" : "Няма падзей", "ofDataPagerLabel" : "з", -"pagesDataPagerLabel" : "старонак", -"rowsPerPageDataPagerLabel" : "Радкі на старонцы", +"pagesDataPagerLabel" : "старонкі", +"rowsPerPageDataPagerLabel" : "Радкоў на старонцы", "pdfBookmarksLabel" : "Закладкі", -"pdfNoBookmarksLabel" : "Закладак не знойдзена", +"pdfNoBookmarksLabel" : "Закладкі не знойдзены", "pdfScrollStatusOfLabel" : "з", "pdfGoToPageLabel" : "Перайсці на старонку", "pdfEnterPageNumberLabel" : "Увядзіце нумар старонкі", -"pdfInvalidPageNumberLabel" : "Калі ласка, увядзіце сапраўдны нумар", +"pdfInvalidPageNumberLabel" : "Увядзіце правільны нумар", "pdfPaginationDialogOkLabel" : "добра", -"pdfPaginationDialogCancelLabel" : "АДМЕНАЦЬ", -"passwordDialogHeaderTextLabel" : "Абаронены паролем", +"pdfPaginationDialogCancelLabel" : "СКАСАВАЦЬ", +"passwordDialogHeaderTextLabel" : "Абарона паролем", "passwordDialogContentLabel" : "Увядзіце пароль, каб адкрыць гэты файл PDF", "passwordDialogHintTextLabel" : "Увядзіце пароль", "passwordDialogInvalidPasswordLabel" : "Няправільны пароль", -"pdfPasswordDialogOpenLabel" : "АДКРЫЦЬ", -"pdfPasswordDialogCancelLabel" : "АДМЕНАЦЬ", +"pdfPasswordDialogOpenLabel" : "АДКРЫТАЯ", +"pdfPasswordDialogCancelLabel" : "СКАСАВАЦЬ", "allowedViewDayLabel" : "Дзень", -"allowedViewWeekLabel" : "Тыдзень", +"allowedViewWeekLabel" : "тыдзень", "allowedViewWorkWeekLabel" : "Працоўны тыдзень", "allowedViewMonthLabel" : "Месяц", "allowedViewScheduleLabel" : "Расклад", -"allowedViewTimelineDayLabel" : "Дзень шкалы часу", -"allowedViewTimelineWeekLabel" : "Тыдзень хронікі", -"allowedViewTimelineWorkWeekLabel" : "Тэрмін працоўнага тыдня", -"allowedViewTimelineMonthLabel" : "Месяц часавай шкалы", -"todayLabel" : "Сёння", -"weeknumberLabel" : "Тыдзень", +"allowedViewTimelineDayLabel" : "Дзень часовай шкалы", +"allowedViewTimelineWeekLabel" : "Храналогія тыдня", +"allowedViewTimelineWorkWeekLabel" : "Графік працоўнага тыдня", +"allowedViewTimelineMonthLabel" : "Храналогія Месяц", +"todayLabel" : "сёння", +"weeknumberLabel" : "тыдзень", "allDayLabel" : "Увесь дзень", "muharramLabel" : "Мухарам", "safarLabel" : "Сафар", -"rabi1Label" : "Рабі аль-авваль", -"rabi2Label" : "Рабі аль-Тані", -"jumada1Label" : "Джумада аль-авваль", -"jumada2Label" : "Джумада аль-Тані", +"rabi1Label" : "Рабі аль-аўваль", +"rabi2Label" : "Рабі аль-тані", +"jumada1Label" : "Джумада аль-аўваль", +"jumada2Label" : "Джумада аль-тані", "rajabLabel" : "Раджаб", "shaabanLabel" : "Шаабан", "ramadanLabel" : "Рамадан", "shawwalLabel" : "Шаўваль", "dhualqiLabel" : "Зу аль-Кіда", "dhualhiLabel" : "Зу аль-Хіджа", -"shortMuharramLabel" : "Мух.", +"shortMuharramLabel" : "мух", "shortSafarLabel" : "Саф.", -"shortRabi1Label" : "Рабі. я", -"shortRabi2Label" : "Рабі. II", -"shortJumada1Label" : "Jum. я", -"shortJumada2Label" : "Jum. II", +"shortRabi1Label" : "Рабіна. я", +"shortRabi2Label" : "Рабіна. II", +"shortJumada1Label" : "Джам. я", +"shortJumada2Label" : "Джам. II", "shortRajabLabel" : "Радж.", "shortShaabanLabel" : "Ша.", -"shortRamadanLabel" : "Баран.", -"shortShawwalLabel" : "Шо.", -"shortDhualqiLabel" : "Dhu'l-Q", -"shortDhualhiLabel" : "Зуль-Х", +"shortRamadanLabel" : "Таран.", +"shortShawwalLabel" : "Шоу.", +"shortDhualqiLabel" : "Зу'л-К'ю", +"shortDhualhiLabel" : "Зу'л-Х", "daySpanCountLabel" : "Дзень", -"series" : "Серыял", -"pdfHyperlinkLabel" : "Адкрыйце вэб-старонку", +"series" : "серыял", +"pdfHyperlinkLabel" : "Адкрыць вэб-старонку", "pdfHyperlinkContentLabel" : "Вы хочаце адкрыць старонку па адрасе", -"pdfHyperlinkDialogOpenLabel" : "АДКРЫЦЬ", -"pdfHyperlinkDialogCancelLabel" : "АДМЕНАЦЬ", +"pdfHyperlinkDialogOpenLabel" : "АДКРЫТАЯ", +"pdfHyperlinkDialogCancelLabel" : "СКАСАВАЦЬ", "afterDataGridFilteringLabel" : "Пасля", "afterOrEqualDataGridFilteringLabel" : "Пасля або роўна", "beforeDataGridFilteringLabel" : "Раней або роўна", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Сартаваць ад Я да А", "sortOldestToNewestDataGridFilteringLabel" : "Сартаваць ад старых да новых", "sortNewestToOldestDataGridFilteringLabel" : "Сартаваць ад найноўшых да самых старых", -"clearFilterFromDataGridFilteringLabel" : "Ачысціць фільтр ад", "textFiltersDataGridFilteringLabel" : "Тэкставыя фільтры", "numberFiltersDataGridFilteringLabel" : "Лікавыя фільтры", "dateFiltersDataGridFilteringLabel" : "Фільтры даты", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "І", "orDataGridFilteringLabel" : "Або", "selectAllDataGridFilteringLabel" : "Абраць усё", -"sortAndFilterDataGridFilteringLabel" : "Сартаваць і фільтраваць" +"sortAndFilterDataGridFilteringLabel" : "Сартаваць і фільтраваць", +"clearFilterDataGridFilteringLabel" : "Ачысціць фільтр", +"fromDataGridFilteringLabel" : "Ад" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_bg.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_bg.arb index c4f9425de..0327f130e 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_bg.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_bg.arb @@ -11,13 +11,13 @@ "pdfEnterPageNumberLabel" : "Въведете номера на страницата", "pdfInvalidPageNumberLabel" : "Моля въведете валиден номер", "pdfPaginationDialogOkLabel" : "Добре", -"pdfPaginationDialogCancelLabel" : "ОТМЕНИ", +"pdfPaginationDialogCancelLabel" : "ОТМЕНЯНЕ", "passwordDialogHeaderTextLabel" : "Защитен с парола", "passwordDialogContentLabel" : "Въведете паролата, за да отворите този PDF файл", "passwordDialogHintTextLabel" : "Въведете паролата", "passwordDialogInvalidPasswordLabel" : "Невалидна парола", "pdfPasswordDialogOpenLabel" : "ОТВОРЕНО", -"pdfPasswordDialogCancelLabel" : "ОТМЕНИ", +"pdfPasswordDialogCancelLabel" : "ОТМЕНЯНЕ", "allowedViewDayLabel" : "ден", "allowedViewWeekLabel" : "седмица", "allowedViewWorkWeekLabel" : "Работна седмица", @@ -25,41 +25,41 @@ "allowedViewScheduleLabel" : "График", "allowedViewTimelineDayLabel" : "Ден на хронологията", "allowedViewTimelineWeekLabel" : "Седмица на хронологията", -"allowedViewTimelineWorkWeekLabel" : "График на работната седмица", -"allowedViewTimelineMonthLabel" : "Месец на хронологията", -"todayLabel" : "днес", +"allowedViewTimelineWorkWeekLabel" : "Времева линия Работна седмица", +"allowedViewTimelineMonthLabel" : "Времева линия Месец", +"todayLabel" : "Днес", "weeknumberLabel" : "седмица", "allDayLabel" : "Цял ден", -"muharramLabel" : "Мухарам", +"muharramLabel" : "Мухаррам", "safarLabel" : "Сафар", "rabi1Label" : "Раби ал-аввал", -"rabi2Label" : "Раби ал-Тани", +"rabi2Label" : "Раби ал-тани", "jumada1Label" : "Джумада ал-аввал", -"jumada2Label" : "Джумада ал-Тани", +"jumada2Label" : "Джумада ал-тани", "rajabLabel" : "Раджаб", "shaabanLabel" : "Шаабан", "ramadanLabel" : "Рамадан", -"shawwalLabel" : "Shawwal", -"dhualqiLabel" : "Dhu al-Qi'dah", +"shawwalLabel" : "Шавал", +"dhualqiLabel" : "Зу ал-Кида", "dhualhiLabel" : "Зу ал-Хиджа", -"shortMuharramLabel" : "Мъх", -"shortSafarLabel" : "Saf.", +"shortMuharramLabel" : "Мъх.", +"shortSafarLabel" : "Саф.", "shortRabi1Label" : "Раби. аз", "shortRabi2Label" : "Раби. II", -"shortJumada1Label" : "Jum. аз", -"shortJumada2Label" : "Jum. II", +"shortJumada1Label" : "Джъм. аз", +"shortJumada2Label" : "Джъм. II", "shortRajabLabel" : "Радж.", -"shortShaabanLabel" : "Ша", -"shortRamadanLabel" : "Рам.", +"shortShaabanLabel" : "Ша.", +"shortRamadanLabel" : "Рам", "shortShawwalLabel" : "Шоу.", -"shortDhualqiLabel" : "Dhu'l-Q", -"shortDhualhiLabel" : "Dhu'l-H", +"shortDhualqiLabel" : "Зул-Кю", +"shortDhualhiLabel" : "Зул-Х", "daySpanCountLabel" : "ден", "series" : "Серия", -"pdfHyperlinkLabel" : "Отворете уеб страница", +"pdfHyperlinkLabel" : "Отворете уеб страницата", "pdfHyperlinkContentLabel" : "Искате ли да отворите страницата на", "pdfHyperlinkDialogOpenLabel" : "ОТВОРЕНО", -"pdfHyperlinkDialogCancelLabel" : "ОТМЕНИ", +"pdfHyperlinkDialogCancelLabel" : "ОТМЕНЯНЕ", "afterDataGridFilteringLabel" : "След", "afterOrEqualDataGridFilteringLabel" : "След Или Равно", "beforeDataGridFilteringLabel" : "Преди или Равно", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Сортиране от Я до А", "sortOldestToNewestDataGridFilteringLabel" : "Сортиране от най-старите към най-новите", "sortNewestToOldestDataGridFilteringLabel" : "Сортиране от най-новите към най-старите", -"clearFilterFromDataGridFilteringLabel" : "Изчистване на филтъра от", "textFiltersDataGridFilteringLabel" : "Текстови филтри", "numberFiltersDataGridFilteringLabel" : "Числови филтри", "dateFiltersDataGridFilteringLabel" : "Филтри за дата", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "И", "orDataGridFilteringLabel" : "Или", "selectAllDataGridFilteringLabel" : "Избери всички", -"sortAndFilterDataGridFilteringLabel" : "Сортиране и филтриране" +"sortAndFilterDataGridFilteringLabel" : "Сортиране и филтриране", +"clearFilterDataGridFilteringLabel" : "Изчистване на филтъра", +"fromDataGridFilteringLabel" : "от" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_bn.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_bn.arb index f0ee755f8..c124c8ca4 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_bn.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_bn.arb @@ -13,7 +13,7 @@ "pdfPaginationDialogOkLabel" : "ঠিক আছে", "pdfPaginationDialogCancelLabel" : "বাতিল করুন", "passwordDialogHeaderTextLabel" : "পাসওয়ার্ড সুরক্ষিত", -"passwordDialogContentLabel" : "এই PDF ফাইল খুলতে পাসওয়ার্ড লিখুন", +"passwordDialogContentLabel" : "এই পিডিএফ ফাইল খুলতে পাসওয়ার্ড লিখুন", "passwordDialogHintTextLabel" : "পাসওয়ার্ড লিখুন", "passwordDialogInvalidPasswordLabel" : "অবৈধ পাসওয়ার্ড", "pdfPasswordDialogOpenLabel" : "খোলা", @@ -30,7 +30,7 @@ "todayLabel" : "আজ", "weeknumberLabel" : "সপ্তাহ", "allDayLabel" : "সারাদিন", -"muharramLabel" : "মহররম", +"muharramLabel" : "মহরম", "safarLabel" : "সাফার", "rabi1Label" : "রবিউল আউয়াল", "rabi2Label" : "রাবি'আল-থানি", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z থেকে A সাজান", "sortOldestToNewestDataGridFilteringLabel" : "পুরাতন থেকে নতুন বাছাই করুন", "sortNewestToOldestDataGridFilteringLabel" : "নতুন থেকে পুরাতন সাজান", -"clearFilterFromDataGridFilteringLabel" : "থেকে ফিল্টার সাফ করুন", "textFiltersDataGridFilteringLabel" : "টেক্সট ফিল্টার", "numberFiltersDataGridFilteringLabel" : "নম্বর ফিল্টার", "dateFiltersDataGridFilteringLabel" : "তারিখ ফিল্টার", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "এবং", "orDataGridFilteringLabel" : "বা", "selectAllDataGridFilteringLabel" : "সব নির্বাচন করুন", -"sortAndFilterDataGridFilteringLabel" : "বাছাই এবং ফিল্টার" +"sortAndFilterDataGridFilteringLabel" : "বাছাই এবং ফিল্টার", +"clearFilterDataGridFilteringLabel" : "স্বচ্ছ ছাকুনী", +"fromDataGridFilteringLabel" : "থেকে" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_bs.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_bs.arb index e56ad222d..999073232 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_bs.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_bs.arb @@ -23,7 +23,7 @@ "allowedViewWorkWeekLabel" : "Radna sedmica", "allowedViewMonthLabel" : "Mjesec", "allowedViewScheduleLabel" : "Raspored", -"allowedViewTimelineDayLabel" : "Timeline Day", +"allowedViewTimelineDayLabel" : "Dan vremenske linije", "allowedViewTimelineWeekLabel" : "Timeline Week", "allowedViewTimelineWorkWeekLabel" : "Vremenski okvir Radna sedmica", "allowedViewTimelineMonthLabel" : "Timeline Month", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Sortiraj od Z do A", "sortOldestToNewestDataGridFilteringLabel" : "Sortiraj od najstarijih do najnovijih", "sortNewestToOldestDataGridFilteringLabel" : "Sortiraj od najnovijeg do najstarijeg", -"clearFilterFromDataGridFilteringLabel" : "Obriši filter iz", "textFiltersDataGridFilteringLabel" : "Filteri teksta", "numberFiltersDataGridFilteringLabel" : "Brojčani filteri", "dateFiltersDataGridFilteringLabel" : "Filteri datuma", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "I", "orDataGridFilteringLabel" : "Or", "selectAllDataGridFilteringLabel" : "Označi sve", -"sortAndFilterDataGridFilteringLabel" : "Sortiraj i filtriraj" +"sortAndFilterDataGridFilteringLabel" : "Sortiraj i filtriraj", +"clearFilterDataGridFilteringLabel" : "Obriši filter", +"fromDataGridFilteringLabel" : "Od" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ca.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ca.arb index f0d5bdcf2..503d7d6c4 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ca.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ca.arb @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Ordena de Z a A", "sortOldestToNewestDataGridFilteringLabel" : "Ordena del més antic al més recent", "sortNewestToOldestDataGridFilteringLabel" : "Ordena el més nou al més antic", -"clearFilterFromDataGridFilteringLabel" : "Esborra el filtre de", "textFiltersDataGridFilteringLabel" : "Filtres de text", "numberFiltersDataGridFilteringLabel" : "Filtres de nombre", "dateFiltersDataGridFilteringLabel" : "Filtres de data", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "I", "orDataGridFilteringLabel" : "O", "selectAllDataGridFilteringLabel" : "Seleccionar tot", -"sortAndFilterDataGridFilteringLabel" : "Ordena i filtra" +"sortAndFilterDataGridFilteringLabel" : "Ordena i filtra", +"clearFilterDataGridFilteringLabel" : "Esborra el filtre", +"fromDataGridFilteringLabel" : "Des de" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_cs.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_cs.arb index 6084ec253..9198dde78 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_cs.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_cs.arb @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Seřadit od Z do A", "sortOldestToNewestDataGridFilteringLabel" : "Seřadit od nejstarších po nejnovější", "sortNewestToOldestDataGridFilteringLabel" : "Řadit od nejnovějšího k nejstaršímu", -"clearFilterFromDataGridFilteringLabel" : "Vymazat filtr od", "textFiltersDataGridFilteringLabel" : "Textové filtry", "numberFiltersDataGridFilteringLabel" : "Filtry čísel", "dateFiltersDataGridFilteringLabel" : "Datumové filtry", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "A", "orDataGridFilteringLabel" : "Nebo", "selectAllDataGridFilteringLabel" : "Vybrat vše", -"sortAndFilterDataGridFilteringLabel" : "Řadit a filtrovat" +"sortAndFilterDataGridFilteringLabel" : "Řadit a filtrovat", +"clearFilterDataGridFilteringLabel" : "Vymazat filtr", +"fromDataGridFilteringLabel" : "Z" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_da.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_da.arb index f20563198..f1184c1f6 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_da.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_da.arb @@ -25,7 +25,7 @@ "allowedViewScheduleLabel" : "Tidsplan", "allowedViewTimelineDayLabel" : "Tidslinje Dag", "allowedViewTimelineWeekLabel" : "Tidslinje uge", -"allowedViewTimelineWorkWeekLabel" : "Tidslinje Arbejdsuge", +"allowedViewTimelineWorkWeekLabel" : "Tidslinje arbejdsuge", "allowedViewTimelineMonthLabel" : "Tidslinje måned", "todayLabel" : "I dag", "weeknumberLabel" : "Uge", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Sorter Z til A", "sortOldestToNewestDataGridFilteringLabel" : "Sorter ældst til nyeste", "sortNewestToOldestDataGridFilteringLabel" : "Sorter nyeste til ældste", -"clearFilterFromDataGridFilteringLabel" : "Ryd filter fra", "textFiltersDataGridFilteringLabel" : "Tekstfiltre", "numberFiltersDataGridFilteringLabel" : "Nummerfiltre", "dateFiltersDataGridFilteringLabel" : "Dato filtre", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Og", "orDataGridFilteringLabel" : "Eller", "selectAllDataGridFilteringLabel" : "Vælg alle", -"sortAndFilterDataGridFilteringLabel" : "Sorter og filtrer" +"sortAndFilterDataGridFilteringLabel" : "Sorter og filtrer", +"clearFilterDataGridFilteringLabel" : "Ryd filter", +"fromDataGridFilteringLabel" : "Fra" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_de.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_de.arb index 74e312c79..cb1c34afe 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_de.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_de.arb @@ -22,11 +22,11 @@ "allowedViewWeekLabel" : "Woche", "allowedViewWorkWeekLabel" : "Arbeitswoche", "allowedViewMonthLabel" : "Monat", -"allowedViewScheduleLabel" : "Zeitplan", -"allowedViewTimelineDayLabel" : "Zeitleiste Tag", -"allowedViewTimelineWeekLabel" : "Zeitleiste Woche", -"allowedViewTimelineWorkWeekLabel" : "Zeitleiste Arbeitswoche", -"allowedViewTimelineMonthLabel" : "Zeitachse Monat", +"allowedViewScheduleLabel" : "Zeitlicher Ablauf", +"allowedViewTimelineDayLabel" : "Timeline-Tag", +"allowedViewTimelineWeekLabel" : "Timeline-Woche", +"allowedViewTimelineWorkWeekLabel" : "Zeitplan Arbeitswoche", +"allowedViewTimelineMonthLabel" : "Timeline-Monat", "todayLabel" : "Heute", "weeknumberLabel" : "Woche", "allDayLabel" : "Den ganzen Tag", @@ -37,7 +37,7 @@ "jumada1Label" : "Jumada al-awwal", "jumada2Label" : "Jumada al-thani", "rajabLabel" : "Rajab", -"shaabanLabel" : "Schaaban", +"shaabanLabel" : "Shaaban", "ramadanLabel" : "Ramadan", "shawwalLabel" : "Shawwal", "dhualqiLabel" : "Dhu al-Qidah", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z bis A sortieren", "sortOldestToNewestDataGridFilteringLabel" : "Vom Ältesten zum Neuesten sortieren", "sortNewestToOldestDataGridFilteringLabel" : "Vom Neusten zum Ältesten sortieren", -"clearFilterFromDataGridFilteringLabel" : "Filter löschen von", "textFiltersDataGridFilteringLabel" : "Textfilter", "numberFiltersDataGridFilteringLabel" : "Zahlenfilter", "dateFiltersDataGridFilteringLabel" : "Datumsfilter", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Und", "orDataGridFilteringLabel" : "Oder", "selectAllDataGridFilteringLabel" : "Wählen Sie Alle", -"sortAndFilterDataGridFilteringLabel" : "Sortieren und filtern" +"sortAndFilterDataGridFilteringLabel" : "Sortieren und filtern", +"clearFilterDataGridFilteringLabel" : "Filter löschen", +"fromDataGridFilteringLabel" : "Aus" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_el.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_el.arb index 3368c27d1..6aa7664f6 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_el.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_el.arb @@ -1,5 +1,5 @@ { -"noSelectedDateCalendarLabel" : "Καμία επιλεγμένη ημερομηνία", +"noSelectedDateCalendarLabel" : "Δεν υπάρχει επιλεγμένη ημερομηνία", "noEventsCalendarLabel" : "Δεν υπάρχουν εκδηλώσεις", "ofDataPagerLabel" : "του", "pagesDataPagerLabel" : "σελίδες", @@ -24,7 +24,7 @@ "allowedViewMonthLabel" : "Μήνας", "allowedViewScheduleLabel" : "Πρόγραμμα", "allowedViewTimelineDayLabel" : "Ημέρα χρονολογίου", -"allowedViewTimelineWeekLabel" : "Εβδομάδα Χρονολογίου", +"allowedViewTimelineWeekLabel" : "Χρονολόγιο Εβδομάδα", "allowedViewTimelineWorkWeekLabel" : "Χρονολόγιο Εβδομάδα εργασίας", "allowedViewTimelineMonthLabel" : "Χρονολόγιο Μήνας", "todayLabel" : "Σήμερα", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Ταξινόμηση Z σε A", "sortOldestToNewestDataGridFilteringLabel" : "Ταξινόμηση από το παλαιότερο στο νεότερο", "sortNewestToOldestDataGridFilteringLabel" : "Ταξινόμηση νεότερο προς παλαιότερο", -"clearFilterFromDataGridFilteringLabel" : "Διαγραφή φίλτρου από", "textFiltersDataGridFilteringLabel" : "Φίλτρα κειμένου", "numberFiltersDataGridFilteringLabel" : "Φίλτρα αριθμών", "dateFiltersDataGridFilteringLabel" : "Φίλτρα ημερομηνίας", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Και", "orDataGridFilteringLabel" : "Ή", "selectAllDataGridFilteringLabel" : "Επιλογή όλων", -"sortAndFilterDataGridFilteringLabel" : "Ταξινόμηση και φιλτράρισμα" +"sortAndFilterDataGridFilteringLabel" : "Ταξινόμηση και φιλτράρισμα", +"clearFilterDataGridFilteringLabel" : "Διαγραφή φίλτρου", +"fromDataGridFilteringLabel" : "Από" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_en.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_en.arb index 6c677c406..bad15dedf 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_en.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_en.arb @@ -520,12 +520,6 @@ "type" : "text" }, - "clearFilterFromDataGridFilteringLabel": "Clear Filter From", - "@clearFilterFromDataGridFilteringLabel": { - "description" : "The label that is displayed in the filter view in SfDataGrid for `Clear Filter From` option in drop down widget.", - "type" : "text" - }, - "textFiltersDataGridFilteringLabel": "Text Filters", "@textFiltersDataGridFilteringLabel": { "description" : "The label that is displayed in the filter view in SfDataGrid for `Text Filters` option in drop down widget.", @@ -596,5 +590,17 @@ "@sortAndFilterDataGridFilteringLabel": { "description" : "The label that is displayed in the filter view in SfDataGrid for `Sort And Filter` option in drop down widget.", "type" : "text" + }, + + "clearFilterDataGridFilteringLabel": "Clear Filter", + "@clearFilterDataGridFilteringLabel": { + "description" : "The label that is displayed in the filter view in SfDataGrid for `Clear Filter` text in `Clear Filter From` option in the popup menu.", + "type" : "text" + }, + + "fromDataGridFilteringLabel": "From", + "@fromDataGridFilteringLabel": { + "description" : "The label that is displayed in the filter view in SfDataGrid for `From` text in `Clear Filter From` option in the popup menu.", + "type" : "text" } } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_en.json b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_en.json index 9350f24b3..5b59bd680 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_en.json +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_en.json @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel": "Sort Z To A", "sortOldestToNewestDataGridFilteringLabel": "Sort Oldest To Newest", "sortNewestToOldestDataGridFilteringLabel": "Sort Newest To Oldest", - "clearFilterFromDataGridFilteringLabel": "Clear Filter From", "textFiltersDataGridFilteringLabel": "Text Filters", "numberFiltersDataGridFilteringLabel": "Number Filters", "dateFiltersDataGridFilteringLabel": "Date Filters", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel": "And", "orDataGridFilteringLabel": "Or", "selectAllDataGridFilteringLabel": "Select All", - "sortAndFilterDataGridFilteringLabel": "Sort and Filter" + "sortAndFilterDataGridFilteringLabel": "Sort and Filter", + "clearFilterDataGridFilteringLabel": "Clear Filter", + "fromDataGridFilteringLabel": "From" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_es.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_es.arb index a825481a6..e36ebce79 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_es.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_es.arb @@ -27,7 +27,7 @@ "allowedViewTimelineWeekLabel" : "Semana de la línea de tiempo", "allowedViewTimelineWorkWeekLabel" : "Línea de tiempo Semana laboral", "allowedViewTimelineMonthLabel" : "Mes de la línea de tiempo", -"todayLabel" : "Hoy dia", +"todayLabel" : "Este Dia", "weeknumberLabel" : "Semana", "allDayLabel" : "Todo el dia", "muharramLabel" : "muharram", @@ -44,9 +44,9 @@ "dhualhiLabel" : "Dhu al-Hiyyah", "shortMuharramLabel" : "Muh.", "shortSafarLabel" : "seguro", -"shortRabi1Label" : "Rabí. I", -"shortRabi2Label" : "Rabi. II", -"shortJumada1Label" : "Jum. I", +"shortRabi1Label" : "Rabí. yo", +"shortRabi2Label" : "Rabí. Yo", +"shortJumada1Label" : "Jum. yo", "shortJumada2Label" : "Jum. II", "shortRajabLabel" : "Raj.", "shortShaabanLabel" : "Sha.", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Ordenar de Z a A", "sortOldestToNewestDataGridFilteringLabel" : "Ordenar de más antiguo a más nuevo", "sortNewestToOldestDataGridFilteringLabel" : "Ordenar de más reciente a más antiguo", -"clearFilterFromDataGridFilteringLabel" : "Borrar filtro de", "textFiltersDataGridFilteringLabel" : "Filtros de texto", "numberFiltersDataGridFilteringLabel" : "Filtros numéricos", "dateFiltersDataGridFilteringLabel" : "Filtros de fecha", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Y", "orDataGridFilteringLabel" : "O", "selectAllDataGridFilteringLabel" : "Seleccionar todo", -"sortAndFilterDataGridFilteringLabel" : "Ordenar y filtrar" +"sortAndFilterDataGridFilteringLabel" : "Ordenar y filtrar", +"clearFilterDataGridFilteringLabel" : "Filtro claro", +"fromDataGridFilteringLabel" : "De" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_et.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_et.arb index 65a2cfab5..07fa7f5bc 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_et.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_et.arb @@ -44,9 +44,9 @@ "dhualhiLabel" : "Dhu al-Hijjah", "shortMuharramLabel" : "Muh.", "shortSafarLabel" : "Saf.", -"shortRabi1Label" : "Rabi. ma", +"shortRabi1Label" : "Rabi. I", "shortRabi2Label" : "Rabi. II", -"shortJumada1Label" : "Jum. ma", +"shortJumada1Label" : "Jum. I", "shortJumada2Label" : "Jum. II", "shortRajabLabel" : "Raj.", "shortShaabanLabel" : "Sha.", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Sorteeri Z kuni A", "sortOldestToNewestDataGridFilteringLabel" : "Sorteeri vanimast uusimaks", "sortNewestToOldestDataGridFilteringLabel" : "Sorteeri uusimatest vanimateks", -"clearFilterFromDataGridFilteringLabel" : "Kustuta filter", "textFiltersDataGridFilteringLabel" : "Tekstifiltrid", "numberFiltersDataGridFilteringLabel" : "Numbrifiltrid", "dateFiltersDataGridFilteringLabel" : "Kuupäeva filtrid", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Ja", "orDataGridFilteringLabel" : "Või", "selectAllDataGridFilteringLabel" : "Vali kõik", -"sortAndFilterDataGridFilteringLabel" : "Sorteeri ja filtreeri" +"sortAndFilterDataGridFilteringLabel" : "Sorteeri ja filtreeri", +"clearFilterDataGridFilteringLabel" : "Tühjenda filter", +"fromDataGridFilteringLabel" : "Alates" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_eu.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_eu.arb index 4539b2277..a89f4f1ba 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_eu.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_eu.arb @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Ordenatu Ztik A", "sortOldestToNewestDataGridFilteringLabel" : "Ordenatu zaharrenetik berrienera", "sortNewestToOldestDataGridFilteringLabel" : "Ordenatu berrienetik zaharrenetik", -"clearFilterFromDataGridFilteringLabel" : "Garbitu iragazkia", "textFiltersDataGridFilteringLabel" : "Testu-iragazkiak", "numberFiltersDataGridFilteringLabel" : "Zenbaki-iragazkiak", "dateFiltersDataGridFilteringLabel" : "Data-iragazkiak", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Eta", "orDataGridFilteringLabel" : "Edo", "selectAllDataGridFilteringLabel" : "Hautatu guztiak", -"sortAndFilterDataGridFilteringLabel" : "Ordenatu eta Iragazi" +"sortAndFilterDataGridFilteringLabel" : "Ordenatu eta Iragazi", +"clearFilterDataGridFilteringLabel" : "Garbitu iragazkia", +"fromDataGridFilteringLabel" : "Bertatik" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fa.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fa.arb index f5c9caac5..81b55765d 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fa.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fa.arb @@ -42,7 +42,7 @@ "shawwalLabel" : "شوال", "dhualqiLabel" : "ذی القعده", "dhualhiLabel" : "ذی الحجه", -"shortMuharramLabel" : "ماه", +"shortMuharramLabel" : "مه", "shortSafarLabel" : "ساف", "shortRabi1Label" : "ربیع من", "shortRabi2Label" : "ربیع II", @@ -80,13 +80,12 @@ "notEmptyDataGridFilteringLabel" : "خالی نیست", "notNullDataGridFilteringLabel" : "تهی نیست", "nullDataGridFilteringLabel" : "خالی", -"sortSmallestToLargestDataGridFilteringLabel" : "مرتب سازی کوچکترین به بزرگ ترین", +"sortSmallestToLargestDataGridFilteringLabel" : "مرتب سازی کوچک ترین به بزرگ ترین", "sortLargestToSmallestDataGridFilteringLabel" : "مرتب سازی بزرگترین به کوچکترین", "sortAToZDataGridFilteringLabel" : "مرتب سازی A به Z", "sortZToADataGridFilteringLabel" : "Z به A مرتب کنید", "sortOldestToNewestDataGridFilteringLabel" : "مرتب سازی قدیمی ترین به جدیدترین", "sortNewestToOldestDataGridFilteringLabel" : "مرتب سازی جدیدترین به قدیمی ترین", -"clearFilterFromDataGridFilteringLabel" : "پاک کردن فیلتر از", "textFiltersDataGridFilteringLabel" : "فیلترهای متن", "numberFiltersDataGridFilteringLabel" : "فیلترهای اعداد", "dateFiltersDataGridFilteringLabel" : "فیلترهای تاریخ", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "و", "orDataGridFilteringLabel" : "یا", "selectAllDataGridFilteringLabel" : "انتخاب همه", -"sortAndFilterDataGridFilteringLabel" : "مرتب سازی و فیلتر کردن" +"sortAndFilterDataGridFilteringLabel" : "مرتب سازی و فیلتر کردن", +"clearFilterDataGridFilteringLabel" : "فیلتر را پاک کنید", +"fromDataGridFilteringLabel" : "از جانب" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fi.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fi.arb index b292f7da9..538665b38 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fi.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fi.arb @@ -13,7 +13,7 @@ "pdfPaginationDialogOkLabel" : "OK", "pdfPaginationDialogCancelLabel" : "PERUUTTAA", "passwordDialogHeaderTextLabel" : "Salasana suojattu", -"passwordDialogContentLabel" : "Kirjoita salasana avataksesi tämän PDF-tiedoston", +"passwordDialogContentLabel" : "Syötä salasana avataksesi tämän PDF-tiedoston", "passwordDialogHintTextLabel" : "Kirjoita salasana", "passwordDialogInvalidPasswordLabel" : "väärä salasana", "pdfPasswordDialogOpenLabel" : "AVATA", @@ -68,7 +68,7 @@ "containsDataGridFilteringLabel" : "Sisältää", "doesNotBeginWithDataGridFilteringLabel" : "Ei ala", "doesNotContainDataGridFilteringLabel" : "Ei sisällä", -"doesNotEndWithDataGridFilteringLabel" : "Ei pääty", +"doesNotEndWithDataGridFilteringLabel" : "Ei lopu", "doesNotEqualDataGridFilteringLabel" : "Ei ole sama", "emptyDataGridFilteringLabel" : "Tyhjä", "endsWithDataGridFilteringLabel" : "Loppuu", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Lajittele Z-A", "sortOldestToNewestDataGridFilteringLabel" : "Lajittele vanhimmasta uusimpaan", "sortNewestToOldestDataGridFilteringLabel" : "Lajittele uusimmasta vanhimpaan", -"clearFilterFromDataGridFilteringLabel" : "Tyhjennä suodatin", "textFiltersDataGridFilteringLabel" : "Tekstisuodattimet", "numberFiltersDataGridFilteringLabel" : "Numerosuodattimet", "dateFiltersDataGridFilteringLabel" : "Päivämääräsuodattimet", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Ja", "orDataGridFilteringLabel" : "Tai", "selectAllDataGridFilteringLabel" : "Valitse kaikki", -"sortAndFilterDataGridFilteringLabel" : "Lajittele ja Suodata" +"sortAndFilterDataGridFilteringLabel" : "Lajittele ja Suodata", +"clearFilterDataGridFilteringLabel" : "Tyhjennä suodatin", +"fromDataGridFilteringLabel" : "From" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fil.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fil.arb index ed4a7830e..a40b07f2d 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fil.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fil.arb @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Pagbukud-bukurin ang Z Hanggang A", "sortOldestToNewestDataGridFilteringLabel" : "Pagbukud-bukurin ang Pinakaluma Hanggang Pinakabago", "sortNewestToOldestDataGridFilteringLabel" : "Pagbukud-bukurin ang Pinakabago Hanggang sa Pinakaluma", -"clearFilterFromDataGridFilteringLabel" : "I-clear ang Filter Mula sa", "textFiltersDataGridFilteringLabel" : "Mga Filter ng Teksto", "numberFiltersDataGridFilteringLabel" : "Mga Filter ng Numero", "dateFiltersDataGridFilteringLabel" : "Mga Filter ng Petsa", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "At", "orDataGridFilteringLabel" : "O kaya", "selectAllDataGridFilteringLabel" : "Piliin lahat", -"sortAndFilterDataGridFilteringLabel" : "Pagbukud-bukurin at Salain" +"sortAndFilterDataGridFilteringLabel" : "Pagbukud-bukurin at Salain", +"clearFilterDataGridFilteringLabel" : "I-clear ang Filter", +"fromDataGridFilteringLabel" : "Mula sa" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fr.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fr.arb index 58b40c5ea..664c079f9 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fr.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_fr.arb @@ -10,16 +10,16 @@ "pdfGoToPageLabel" : "Aller à la page", "pdfEnterPageNumberLabel" : "Entrer le numéro de page", "pdfInvalidPageNumberLabel" : "S'il vous plait, entrez un nombre valide", -"pdfPaginationDialogOkLabel" : "d'accord", +"pdfPaginationDialogOkLabel" : "D'ACCORD", "pdfPaginationDialogCancelLabel" : "ANNULER", "passwordDialogHeaderTextLabel" : "Protégé par mot de passe", "passwordDialogContentLabel" : "Entrez le mot de passe pour ouvrir ce fichier PDF", "passwordDialogHintTextLabel" : "Entrer le mot de passe", "passwordDialogInvalidPasswordLabel" : "Mot de passe incorrect", -"pdfPasswordDialogOpenLabel" : "OUVRIR", +"pdfPasswordDialogOpenLabel" : "OUVERT", "pdfPasswordDialogCancelLabel" : "ANNULER", "allowedViewDayLabel" : "Jour", -"allowedViewWeekLabel" : "Semaine", +"allowedViewWeekLabel" : "La semaine", "allowedViewWorkWeekLabel" : "Semaine de travail", "allowedViewMonthLabel" : "Mois", "allowedViewScheduleLabel" : "Programme", @@ -28,7 +28,7 @@ "allowedViewTimelineWorkWeekLabel" : "Chronologie de la semaine de travail", "allowedViewTimelineMonthLabel" : "Chronologie Mois", "todayLabel" : "Aujourd'hui", -"weeknumberLabel" : "Semaine", +"weeknumberLabel" : "La semaine", "allDayLabel" : "Toute la journée", "muharramLabel" : "Mouharram", "safarLabel" : "Safar", @@ -41,7 +41,7 @@ "ramadanLabel" : "Ramadan", "shawwalLabel" : "Shawwal", "dhualqiLabel" : "Dhou al-Qi'dah", -"dhualhiLabel" : "Safar", +"dhualhiLabel" : "Dhu al-Hijjah", "shortMuharramLabel" : "Mouh.", "shortSafarLabel" : "Saf.", "shortRabi1Label" : "Rabi. je", @@ -55,11 +55,11 @@ "shortDhualqiLabel" : "Dhu'l-Q", "shortDhualhiLabel" : "Dhu'l-H", "daySpanCountLabel" : "Jour", -"series" : "Séries", +"series" : "Série", "pdfHyperlinkLabel" : "Ouvrir la page Web", "pdfHyperlinkContentLabel" : "Voulez-vous ouvrir la page à", -"pdfHyperlinkDialogOpenLabel" : "OUVRIR", -"pdfHyperlinkDialogCancelLabel" : "ANNULER", +"pdfHyperlinkDialogOpenLabel" : "OUVERT", +"pdfHyperlinkDialogCancelLabel" : "ANNULER", "afterDataGridFilteringLabel" : "Après", "afterOrEqualDataGridFilteringLabel" : "Après ou égal", "beforeDataGridFilteringLabel" : "Avant ou égal", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Trier Z à A", "sortOldestToNewestDataGridFilteringLabel" : "Trier du plus ancien au plus récent", "sortNewestToOldestDataGridFilteringLabel" : "Trier du plus récent au plus ancien", -"clearFilterFromDataGridFilteringLabel" : "Effacer le filtre de", "textFiltersDataGridFilteringLabel" : "Filtres de texte", "numberFiltersDataGridFilteringLabel" : "Filtres numériques", "dateFiltersDataGridFilteringLabel" : "Filtres de dates", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Et", "orDataGridFilteringLabel" : "Ou", "selectAllDataGridFilteringLabel" : "Tout sélectionner", -"sortAndFilterDataGridFilteringLabel" : "Trier et filtrer" +"sortAndFilterDataGridFilteringLabel" : "Trier et filtrer", +"clearFilterDataGridFilteringLabel" : "Effacer le filtre", +"fromDataGridFilteringLabel" : "De" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_gl.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_gl.arb index 75247f4c3..bbe409464 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_gl.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_gl.arb @@ -24,7 +24,7 @@ "allowedViewMonthLabel" : "Mes", "allowedViewScheduleLabel" : "Horario", "allowedViewTimelineDayLabel" : "Día da cronoloxía", -"allowedViewTimelineWeekLabel" : "Semana do cronograma", +"allowedViewTimelineWeekLabel" : "Timeline Week", "allowedViewTimelineWorkWeekLabel" : "Timeline Work Week", "allowedViewTimelineMonthLabel" : "Mes do cronograma", "todayLabel" : "Hoxe", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Ordenar de Z a A", "sortOldestToNewestDataGridFilteringLabel" : "Ordenar do máis antigo ao máis novo", "sortNewestToOldestDataGridFilteringLabel" : "Ordenar o máis novo ao máis antigo", -"clearFilterFromDataGridFilteringLabel" : "Borrar o filtro de", "textFiltersDataGridFilteringLabel" : "Filtros de texto", "numberFiltersDataGridFilteringLabel" : "Filtros de número", "dateFiltersDataGridFilteringLabel" : "Filtros de data", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "E", "orDataGridFilteringLabel" : "Ou", "selectAllDataGridFilteringLabel" : "Seleccionar todo", -"sortAndFilterDataGridFilteringLabel" : "Ordenar e filtrar" +"sortAndFilterDataGridFilteringLabel" : "Ordenar e filtrar", +"clearFilterDataGridFilteringLabel" : "Borrar filtro", +"fromDataGridFilteringLabel" : "Desde" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_gu.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_gu.arb index 2d7771432..cb7b3ebc5 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_gu.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_gu.arb @@ -19,7 +19,7 @@ "pdfPasswordDialogOpenLabel" : "ખુલ્લા", "pdfPasswordDialogCancelLabel" : "રદ કરો", "allowedViewDayLabel" : "દિવસ", -"allowedViewWeekLabel" : "સપ્તાહ", +"allowedViewWeekLabel" : "અઠવાડિયું", "allowedViewWorkWeekLabel" : "કાર્ય સપ્તાહ", "allowedViewMonthLabel" : "માસ", "allowedViewScheduleLabel" : "અનુસૂચિ", @@ -28,7 +28,7 @@ "allowedViewTimelineWorkWeekLabel" : "સમયરેખા કાર્ય સપ્તાહ", "allowedViewTimelineMonthLabel" : "સમયરેખા મહિનો", "todayLabel" : "આજે", -"weeknumberLabel" : "સપ્તાહ", +"weeknumberLabel" : "અઠવાડિયું", "allDayLabel" : "બધા દિવસ", "muharramLabel" : "મોહરમ", "safarLabel" : "સફર", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z થી A સૉર્ટ કરો", "sortOldestToNewestDataGridFilteringLabel" : "સૌથી જૂનાથી નવામાં સૉર્ટ કરો", "sortNewestToOldestDataGridFilteringLabel" : "સૌથી નવાથી જૂનામાં સૉર્ટ કરો", -"clearFilterFromDataGridFilteringLabel" : "આમાંથી ફિલ્ટર સાફ કરો", "textFiltersDataGridFilteringLabel" : "ટેક્સ્ટ ફિલ્ટર્સ", "numberFiltersDataGridFilteringLabel" : "નંબર ફિલ્ટર્સ", "dateFiltersDataGridFilteringLabel" : "તારીખ ફિલ્ટર્સ", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "અને", "orDataGridFilteringLabel" : "અથવા", "selectAllDataGridFilteringLabel" : "બધા પસંદ કરો", -"sortAndFilterDataGridFilteringLabel" : "સૉર્ટ કરો અને ફિલ્ટર કરો" +"sortAndFilterDataGridFilteringLabel" : "સૉર્ટ કરો અને ફિલ્ટર કરો", +"clearFilterDataGridFilteringLabel" : "ફિલ્ટર સાફ કરો", +"fromDataGridFilteringLabel" : "થી" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_he.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_he.arb index ce7ae3fe0..dc47ff613 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_he.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_he.arb @@ -3,7 +3,7 @@ "noEventsCalendarLabel" : "אין אירועים", "ofDataPagerLabel" : "שֶׁל", "pagesDataPagerLabel" : "דפים", -"rowsPerPageDataPagerLabel" : "שורות בעמוד", +"rowsPerPageDataPagerLabel" : "שורות לכל עמוד", "pdfBookmarksLabel" : "סימניות", "pdfNoBookmarksLabel" : "לא נמצאו סימניות", "pdfScrollStatusOfLabel" : "שֶׁל", @@ -25,7 +25,7 @@ "allowedViewScheduleLabel" : "לוח זמנים", "allowedViewTimelineDayLabel" : "יום ציר הזמן", "allowedViewTimelineWeekLabel" : "שבוע ציר הזמן", -"allowedViewTimelineWorkWeekLabel" : "שבוע העבודה של ציר הזמן", +"allowedViewTimelineWorkWeekLabel" : "שבוע העבודה של ציר זמן", "allowedViewTimelineMonthLabel" : "חודש ציר הזמן", "todayLabel" : "היום", "weeknumberLabel" : "שָׁבוּעַ", @@ -34,12 +34,12 @@ "safarLabel" : "ספאר", "rabi1Label" : "רבי אל אווול", "rabi2Label" : "רבי אל-תאני", -"jumada1Label" : "ג'ומדה אל-אוואל", +"jumada1Label" : "ג'ומדה אל-אוול", "jumada2Label" : "ג'ומדה אל-ת'אני", "rajabLabel" : "רג'אב", "shaabanLabel" : "שעבן", "ramadanLabel" : "רמדאן", -"shawwalLabel" : "שוואל", +"shawwalLabel" : "שווואל", "dhualqiLabel" : "דהו אל-קיאדה", "dhualhiLabel" : "דהו אל-היג'ה", "shortMuharramLabel" : "מוה.", @@ -57,7 +57,7 @@ "daySpanCountLabel" : "יְוֹם", "series" : "סִדרָה", "pdfHyperlinkLabel" : "פתח את דף האינטרנט", -"pdfHyperlinkContentLabel" : "האם אתה רוצה לפתוח את הדף ב", +"pdfHyperlinkContentLabel" : "האם אתה רוצה לפתוח את העמוד ב", "pdfHyperlinkDialogOpenLabel" : "לִפְתוֹחַ", "pdfHyperlinkDialogCancelLabel" : "לְבַטֵל", "afterDataGridFilteringLabel" : "לאחר", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "מיין Z עד A", "sortOldestToNewestDataGridFilteringLabel" : "מיין מהישן ביותר לחדש ביותר", "sortNewestToOldestDataGridFilteringLabel" : "מיין מהחדש לישן ביותר", -"clearFilterFromDataGridFilteringLabel" : "נקה מסנן מ", "textFiltersDataGridFilteringLabel" : "מסנני טקסט", "numberFiltersDataGridFilteringLabel" : "מסנני מספרים", "dateFiltersDataGridFilteringLabel" : "מסנני תאריכים", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "ו", "orDataGridFilteringLabel" : "אוֹ", "selectAllDataGridFilteringLabel" : "בחר הכל", -"sortAndFilterDataGridFilteringLabel" : "מיון ומסנן" +"sortAndFilterDataGridFilteringLabel" : "מיון ומסנן", +"clearFilterDataGridFilteringLabel" : "נקה מסנן", +"fromDataGridFilteringLabel" : "מ" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hi.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hi.arb index 3c429b000..64217578f 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hi.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hi.arb @@ -8,15 +8,15 @@ "pdfNoBookmarksLabel" : "कोई बुकमार्क नहीं मिला", "pdfScrollStatusOfLabel" : "का", "pdfGoToPageLabel" : "पृष्ठ पर जाओ", -"pdfEnterPageNumberLabel" : "पेज नंबर दर्ज करें", -"pdfInvalidPageNumberLabel" : "कृपया एक सही संख्या डालिये", -"pdfPaginationDialogOkLabel" : "ठीक", -"pdfPaginationDialogCancelLabel" : "रद्द करना", +"pdfEnterPageNumberLabel" : "पृष्ठ संख्या दर्ज करें", +"pdfInvalidPageNumberLabel" : "कृपया सही अंक दर्ज करें", +"pdfPaginationDialogOkLabel" : "ठीक है", +"pdfPaginationDialogCancelLabel" : "रद्द करना", "passwordDialogHeaderTextLabel" : "पासवर्ड से सुरक्षित", -"passwordDialogContentLabel" : "इस पीडीएफ फाइल को खोलने के लिए पासवर्ड दर्ज करें", +"passwordDialogContentLabel" : "इस पीडीएफ फाइल को खोलने के लिए पासवर्ड डालें", "passwordDialogHintTextLabel" : "पास वर्ड दर्ज करें", "passwordDialogInvalidPasswordLabel" : "अवैध पासवर्ड", -"pdfPasswordDialogOpenLabel" : "खुला हुआ", +"pdfPasswordDialogOpenLabel" : "खोलना", "pdfPasswordDialogCancelLabel" : "रद्द करना", "allowedViewDayLabel" : "दिन", "allowedViewWeekLabel" : "सप्ताह", @@ -33,42 +33,42 @@ "muharramLabel" : "मुहर्रम", "safarLabel" : "सफ़र", "rabi1Label" : "रबी अल-अव्वल", -"rabi2Label" : "रबी अल-थानी", +"rabi2Label" : "रबी 'अल-थानी", "jumada1Label" : "जुमादा अल-अव्वल", "jumada2Label" : "जुमादा अल-थानी", -"rajabLabel" : "राजाबी", -"shaabanLabel" : "शाबानो", +"rajabLabel" : "रज्जब", +"shaabanLabel" : "शाबान", "ramadanLabel" : "रमजान", "shawwalLabel" : "शावाल", -"dhualqiLabel" : "धू अल क़िदाही", -"dhualhiLabel" : "धू अल-हिज्जाही", -"shortMuharramLabel" : "मुह.", -"shortSafarLabel" : "साफ.", +"dhualqiLabel" : "धू अल-क़ीदाह", +"dhualhiLabel" : "धू अल-हिज्जाह", +"shortMuharramLabel" : "मुह।", +"shortSafarLabel" : "सफ।", "shortRabi1Label" : "रबी। मैं", "shortRabi2Label" : "रबी। द्वितीय", -"shortJumada1Label" : "जम. मैं", -"shortJumada2Label" : "जम. द्वितीय", -"shortRajabLabel" : "राज.", +"shortJumada1Label" : "जम। मैं", +"shortJumada2Label" : "जम। द्वितीय", +"shortRajabLabel" : "राज।", "shortShaabanLabel" : "शा.", "shortRamadanLabel" : "टक्कर मारना।", "shortShawwalLabel" : "शॉ।", "shortDhualqiLabel" : "धुल-क्यू", -"shortDhualhiLabel" : "धुल-हो", +"shortDhualhiLabel" : "धुल-एच", "daySpanCountLabel" : "दिन", "series" : "श्रृंखला", "pdfHyperlinkLabel" : "वेब पेज खोलें", -"pdfHyperlinkContentLabel" : "क्या आप यहां पेज खोलना चाहते हैं", -"pdfHyperlinkDialogOpenLabel" : "खुला", -"pdfHyperlinkDialogCancelLabel" : "रद्द करें", +"pdfHyperlinkContentLabel" : "क्या आप पर पृष्ठ खोलना चाहते हैं", +"pdfHyperlinkDialogOpenLabel" : "खोलना", +"pdfHyperlinkDialogCancelLabel" : "रद्द करना", "afterDataGridFilteringLabel" : "बाद में", -"afterOrEqualDataGridFilteringLabel" : "बाद या बराबर", +"afterOrEqualDataGridFilteringLabel" : "के बाद या बराबर", "beforeDataGridFilteringLabel" : "पहले या बराबर", "beforeOrEqualDataGridFilteringLabel" : "पहले", "beginsWithDataGridFilteringLabel" : "साथ शुरू होता है", "containsDataGridFilteringLabel" : "रोकना", -"doesNotBeginWithDataGridFilteringLabel" : "से शुरू नहीं होता है", +"doesNotBeginWithDataGridFilteringLabel" : "से प्रारंभ नहीं होता है", "doesNotContainDataGridFilteringLabel" : "शामिल नहीं है", -"doesNotEndWithDataGridFilteringLabel" : "के साथ समाप्त नहीं होता है", +"doesNotEndWithDataGridFilteringLabel" : "से समाप्त नहीं होता है", "doesNotEqualDataGridFilteringLabel" : "बराबर नही हैं", "emptyDataGridFilteringLabel" : "खाली", "endsWithDataGridFilteringLabel" : "इसी के साथ समाप्त होता है", @@ -80,23 +80,24 @@ "notEmptyDataGridFilteringLabel" : "खाली नहीं है", "notNullDataGridFilteringLabel" : "शून्य नहीं", "nullDataGridFilteringLabel" : "शून्य", -"sortSmallestToLargestDataGridFilteringLabel" : "सबसे छोटे से सबसे बड़े को छाँटें", -"sortLargestToSmallestDataGridFilteringLabel" : "सबसे बड़े से सबसे छोटे को छाँटें", -"sortAToZDataGridFilteringLabel" : "A से Z तक क्रमित करें", -"sortZToADataGridFilteringLabel" : "Z से A में क्रमित करें", -"sortOldestToNewestDataGridFilteringLabel" : "सबसे पुराने से नवीनतम के क्रम में लगाएं", -"sortNewestToOldestDataGridFilteringLabel" : "नवीनतम से सबसे पुराने को क्रमित करें", -"clearFilterFromDataGridFilteringLabel" : "से फ़िल्टर साफ़ करें", -"textFiltersDataGridFilteringLabel" : "टेक्स्ट फिल्टर", -"numberFiltersDataGridFilteringLabel" : "संख्या फ़िल्टर", +"sortSmallestToLargestDataGridFilteringLabel" : "सबसे छोटे से बड़े के क्रम में लगाएं", +"sortLargestToSmallestDataGridFilteringLabel" : "सबसे बड़े को सबसे छोटे के क्रम में लगाएं", +"sortAToZDataGridFilteringLabel" : "A से Z तक क्रमबद्ध करें", +"sortZToADataGridFilteringLabel" : "Z से A तक क्रमबद्ध करें", +"sortOldestToNewestDataGridFilteringLabel" : "सबसे पुराने से नए के क्रम में लगाएं", +"sortNewestToOldestDataGridFilteringLabel" : "सबसे नए से सबसे पुराने के क्रम में लगाएं", +"textFiltersDataGridFilteringLabel" : "पाठ फ़िल्टर", +"numberFiltersDataGridFilteringLabel" : "नंबर फिल्टर", "dateFiltersDataGridFilteringLabel" : "दिनांक फ़िल्टर", "searchDataGridFilteringLabel" : "खोज", "noMatchesDataGridFilteringLabel" : "कोई मेल नहीं", "okDataGridFilteringLabel" : "ठीक है", "cancelDataGridFilteringLabel" : "रद्द करना", -"showRowsWhereDataGridFilteringLabel" : "पंक्तियाँ दिखाएँ जहाँ", +"showRowsWhereDataGridFilteringLabel" : "पंक्तियाँ कहाँ दिखाएँ", "andDataGridFilteringLabel" : "और", "orDataGridFilteringLabel" : "या", "selectAllDataGridFilteringLabel" : "सभी का चयन करे", -"sortAndFilterDataGridFilteringLabel" : "क्रमबद्ध करें और फ़िल्टर करें" +"sortAndFilterDataGridFilteringLabel" : "क्रमबद्ध करें और फ़िल्टर करें", +"clearFilterDataGridFilteringLabel" : "स्पष्ट निस्यंदक", +"fromDataGridFilteringLabel" : "से" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hr.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hr.arb index 3a5d996e8..adf745080 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hr.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hr.arb @@ -2,21 +2,21 @@ "noSelectedDateCalendarLabel" : "Nema odabranog datuma", "noEventsCalendarLabel" : "Nema događaja", "ofDataPagerLabel" : "od", -"pagesDataPagerLabel" : "stranicama", +"pagesDataPagerLabel" : "stranice", "rowsPerPageDataPagerLabel" : "Redovi po stranici", "pdfBookmarksLabel" : "Oznake", -"pdfNoBookmarksLabel" : "Nije pronađena nijedna oznaka", +"pdfNoBookmarksLabel" : "Nema pronađenih oznaka", "pdfScrollStatusOfLabel" : "od", "pdfGoToPageLabel" : "Idi na stranicu", "pdfEnterPageNumberLabel" : "Unesite broj stranice", -"pdfInvalidPageNumberLabel" : "Unesite valjani broj", +"pdfInvalidPageNumberLabel" : "Unesite važeći broj", "pdfPaginationDialogOkLabel" : "u redu", "pdfPaginationDialogCancelLabel" : "OTKAZATI", "passwordDialogHeaderTextLabel" : "Lozinka zaštićena", "passwordDialogContentLabel" : "Unesite lozinku za otvaranje ove PDF datoteke", "passwordDialogHintTextLabel" : "Upišite lozinku", "passwordDialogInvalidPasswordLabel" : "Netočna zaporka", -"pdfPasswordDialogOpenLabel" : "OTVORENA", +"pdfPasswordDialogOpenLabel" : "OTVORENA", "pdfPasswordDialogCancelLabel" : "OTKAZATI", "allowedViewDayLabel" : "Dan", "allowedViewWeekLabel" : "Tjedan", @@ -30,18 +30,18 @@ "todayLabel" : "Danas", "weeknumberLabel" : "Tjedan", "allDayLabel" : "Cijeli dan", -"muharramLabel" : "Muharem", +"muharramLabel" : "Muharrema", "safarLabel" : "Safar", -"rabi1Label" : "Rabi' el-evval", +"rabi1Label" : "Rabi' al-awwal", "rabi2Label" : "Rabi' al-thani", -"jumada1Label" : "Jumada al-awwal", +"jumada1Label" : "džumade el-evval", "jumada2Label" : "Jumada al-thani", -"rajabLabel" : "Radžab", -"shaabanLabel" : "Sha'aban", -"ramadanLabel" : "ramazana", -"shawwalLabel" : "Shawwal", +"rajabLabel" : "Radžeb", +"shaabanLabel" : "ša'aban", +"ramadanLabel" : "Ramazan", +"shawwalLabel" : "ševval", "dhualqiLabel" : "Dhu al-Qi'dah", -"dhualhiLabel" : "Dhu al-Hijjah", +"dhualhiLabel" : "zul-hidždže", "shortMuharramLabel" : "Muh.", "shortSafarLabel" : "Saf.", "shortRabi1Label" : "Rabi. ja", @@ -52,13 +52,13 @@ "shortShaabanLabel" : "Sha.", "shortRamadanLabel" : "Radna memorija.", "shortShawwalLabel" : "Shaw.", -"shortDhualqiLabel" : "Dhu'l-Q", -"shortDhualhiLabel" : "Dhu'l-H", +"shortDhualqiLabel" : "Zul-Q", +"shortDhualhiLabel" : "Zul-H", "daySpanCountLabel" : "Dan", "series" : "Niz", -"pdfHyperlinkLabel" : "Otvorite web stranicu", +"pdfHyperlinkLabel" : "Otvori web stranicu", "pdfHyperlinkContentLabel" : "Želite li otvoriti stranicu na", -"pdfHyperlinkDialogOpenLabel" : "OTVOREN", +"pdfHyperlinkDialogOpenLabel" : "OTVORENA", "pdfHyperlinkDialogCancelLabel" : "OTKAZATI", "afterDataGridFilteringLabel" : "Nakon", "afterOrEqualDataGridFilteringLabel" : "Nakon ili jednako", @@ -66,7 +66,7 @@ "beforeOrEqualDataGridFilteringLabel" : "Prije", "beginsWithDataGridFilteringLabel" : "Počinje sa", "containsDataGridFilteringLabel" : "Sadrži", -"doesNotBeginWithDataGridFilteringLabel" : "Ne počinje sa", +"doesNotBeginWithDataGridFilteringLabel" : "Ne počinje s", "doesNotContainDataGridFilteringLabel" : "Ne sadrži", "doesNotEndWithDataGridFilteringLabel" : "Ne završava sa", "doesNotEqualDataGridFilteringLabel" : "Nije jednako", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Poredaj od Z do A", "sortOldestToNewestDataGridFilteringLabel" : "Poredaj od najstarijeg do najnovijeg", "sortNewestToOldestDataGridFilteringLabel" : "Poredaj od najnovijeg do najstarijeg", -"clearFilterFromDataGridFilteringLabel" : "Obriši filtar iz", "textFiltersDataGridFilteringLabel" : "Filtri teksta", "numberFiltersDataGridFilteringLabel" : "Filtri brojeva", "dateFiltersDataGridFilteringLabel" : "Filtri datuma", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "I", "orDataGridFilteringLabel" : "Ili", "selectAllDataGridFilteringLabel" : "Odaberi sve", -"sortAndFilterDataGridFilteringLabel" : "Sortiraj i filtriraj" +"sortAndFilterDataGridFilteringLabel" : "Sortiraj i filtriraj", +"clearFilterDataGridFilteringLabel" : "Obriši filtar", +"fromDataGridFilteringLabel" : "Iz" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hu.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hu.arb index ea7122931..e90f14858 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hu.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hu.arb @@ -9,7 +9,7 @@ "pdfScrollStatusOfLabel" : "nak,-nek", "pdfGoToPageLabel" : "Menj az oldalra", "pdfEnterPageNumberLabel" : "Írja be az oldalszámot", -"pdfInvalidPageNumberLabel" : "Adjon meg egy érvényes számot", +"pdfInvalidPageNumberLabel" : "Kérjük, adjon meg egy érvényes számot", "pdfPaginationDialogOkLabel" : "rendben", "pdfPaginationDialogCancelLabel" : "MEGSZÜNTETI", "passwordDialogHeaderTextLabel" : "Jelszóval védett", @@ -38,7 +38,7 @@ "jumada2Label" : "Jumada al-thani", "rajabLabel" : "Rajab", "shaabanLabel" : "Sha'aban", -"ramadanLabel" : "Ramadan", +"ramadanLabel" : "Ramadán", "shawwalLabel" : "Shawwal", "dhualqiLabel" : "Dhu al-Qi'dah", "dhualhiLabel" : "Dhu al-Hijjah", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Rendezés Z-ből A-ba", "sortOldestToNewestDataGridFilteringLabel" : "Rendezés a legrégebbitől a legújabbig", "sortNewestToOldestDataGridFilteringLabel" : "Rendezés a legújabbtól a legrégebbig", -"clearFilterFromDataGridFilteringLabel" : "Szűrő törlése", "textFiltersDataGridFilteringLabel" : "Szövegszűrők", "numberFiltersDataGridFilteringLabel" : "Számszűrők", "dateFiltersDataGridFilteringLabel" : "Dátumszűrők", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "És", "orDataGridFilteringLabel" : "Vagy", "selectAllDataGridFilteringLabel" : "Mindet kiválaszt", -"sortAndFilterDataGridFilteringLabel" : "Rendezés és szűrés" +"sortAndFilterDataGridFilteringLabel" : "Rendezés és szűrés", +"clearFilterDataGridFilteringLabel" : "Szűrő törlése", +"fromDataGridFilteringLabel" : "Tól től" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hy.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hy.arb index af469e9ae..d5cf637df 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hy.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_hy.arb @@ -30,11 +30,11 @@ "todayLabel" : "Այսօր", "weeknumberLabel" : "Շաբաթ", "allDayLabel" : "Ամբողջ օրը", -"muharramLabel" : "Մուհարամ", +"muharramLabel" : "Մուհարրամ", "safarLabel" : "Սաֆար", "rabi1Label" : "Ռաբի ալ-ավալ", "rabi2Label" : "Ռաբի ալ-Թանի", -"jumada1Label" : "Ջումադա ալ-ավալ", +"jumada1Label" : "Ջումադա ալ-ավվալ", "jumada2Label" : "Ջումադա ալ-Թանի", "rajabLabel" : "Ռաջաբ", "shaabanLabel" : "Շաաբան", @@ -52,12 +52,12 @@ "shortShaabanLabel" : "Շա.", "shortRamadanLabel" : "Խոյ.", "shortShawwalLabel" : "Շոու.", -"shortDhualqiLabel" : "Դհուլ-Ք", +"shortDhualqiLabel" : "Դհուլ-Ք", "shortDhualhiLabel" : "Դհուլ-Հ", "daySpanCountLabel" : "Օր", "series" : "Սերիա", "pdfHyperlinkLabel" : "Բացեք վեբ էջը", -"pdfHyperlinkContentLabel" : "Ցանկանու՞մ եք բացել էջը ժամը", +"pdfHyperlinkContentLabel" : "Ցանկանու՞մ եք բացել էջը", "pdfHyperlinkDialogOpenLabel" : "ԲԱՑ", "pdfHyperlinkDialogCancelLabel" : "ՉԵՂԱՐԿԵԼ", "afterDataGridFilteringLabel" : "հետո", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Տեսակավորել Z-ը A-ին", "sortOldestToNewestDataGridFilteringLabel" : "Տեսակավորել ամենահինը նորագույնին", "sortNewestToOldestDataGridFilteringLabel" : "Տեսակավորել ամենանորից ամենահինը", -"clearFilterFromDataGridFilteringLabel" : "Մաքրել զտիչը", "textFiltersDataGridFilteringLabel" : "Տեքստի զտիչներ", "numberFiltersDataGridFilteringLabel" : "Թվերի զտիչներ", "dateFiltersDataGridFilteringLabel" : "Ամսաթվի զտիչներ", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Եվ", "orDataGridFilteringLabel" : "Կամ", "selectAllDataGridFilteringLabel" : "Ընտրել բոլորը", -"sortAndFilterDataGridFilteringLabel" : "Տեսակավորել և զտել" +"sortAndFilterDataGridFilteringLabel" : "Տեսակավորել և զտել", +"clearFilterDataGridFilteringLabel" : "Մաքրել զտիչը", +"fromDataGridFilteringLabel" : "Սկսած" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_id.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_id.arb index 1189ef260..dc91a5824 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_id.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_id.arb @@ -9,8 +9,8 @@ "pdfScrollStatusOfLabel" : "dari", "pdfGoToPageLabel" : "Buka halaman", "pdfEnterPageNumberLabel" : "Masukkan nomor halaman", -"pdfInvalidPageNumberLabel" : "Harap masukkan nomor yang valid", -"pdfPaginationDialogOkLabel" : "oke", +"pdfInvalidPageNumberLabel" : "Masukkan nomor yang valid", +"pdfPaginationDialogOkLabel" : "Oke", "pdfPaginationDialogCancelLabel" : "MEMBATALKAN", "passwordDialogHeaderTextLabel" : "Dilindungi Kata Sandi", "passwordDialogContentLabel" : "Masukkan kata sandi untuk membuka file PDF ini", @@ -20,19 +20,19 @@ "pdfPasswordDialogCancelLabel" : "MEMBATALKAN", "allowedViewDayLabel" : "Hari", "allowedViewWeekLabel" : "Pekan", -"allowedViewWorkWeekLabel" : "minggu kerja", +"allowedViewWorkWeekLabel" : "Minggu Kerja", "allowedViewMonthLabel" : "Bulan", "allowedViewScheduleLabel" : "Jadwal", "allowedViewTimelineDayLabel" : "Hari Garis Waktu", -"allowedViewTimelineWeekLabel" : "Garis Waktu Minggu", -"allowedViewTimelineWorkWeekLabel" : "Garis Waktu Minggu Kerja", -"allowedViewTimelineMonthLabel" : "Garis Waktu Bulan", +"allowedViewTimelineWeekLabel" : "Minggu Garis Waktu", +"allowedViewTimelineWorkWeekLabel" : "Minggu Kerja Timeline", +"allowedViewTimelineMonthLabel" : "Bulan Garis Waktu", "todayLabel" : "Hari ini", "weeknumberLabel" : "Pekan", "allDayLabel" : "Sepanjang hari", "muharramLabel" : "Muharram", -"safarLabel" : "Safari", -"rabi1Label" : "Rabi' al-awwal", +"safarLabel" : "Safar", +"rabi1Label" : "Rabi' al-awal", "rabi2Label" : "Rabi' al-thani", "jumada1Label" : "Jumada al-awwal", "jumada2Label" : "Jumada al-thani", @@ -40,20 +40,20 @@ "shaabanLabel" : "Sya'ban", "ramadanLabel" : "Ramadan", "shawwalLabel" : "Syawal", -"dhualqiLabel" : "Dzulqidah", +"dhualqiLabel" : "Dhu al-Qidah", "dhualhiLabel" : "Dzulhijjah", "shortMuharramLabel" : "Muh.", -"shortSafarLabel" : "saf.", -"shortRabi1Label" : "Rabi. saya", +"shortSafarLabel" : "Aman", +"shortRabi1Label" : "Rabi. Saya", "shortRabi2Label" : "Rabi. II", -"shortJumada1Label" : "Jum. saya", +"shortJumada1Label" : "Jum. Saya", "shortJumada2Label" : "Jum. II", "shortRajabLabel" : "Raj.", "shortShaabanLabel" : "Sha.", -"shortRamadanLabel" : "Rama.", -"shortShawwalLabel" : "Shaw", -"shortDhualqiLabel" : "Dzul Q", -"shortDhualhiLabel" : "Dhu'l-H", +"shortRamadanLabel" : "Ram.", +"shortShawwalLabel" : "Shaw.", +"shortDhualqiLabel" : "Dzul-Q", +"shortDhualhiLabel" : "Dzul-H", "daySpanCountLabel" : "Hari", "series" : "Seri", "pdfHyperlinkLabel" : "Buka Halaman Web", @@ -72,21 +72,20 @@ "doesNotEqualDataGridFilteringLabel" : "Tidak sama", "emptyDataGridFilteringLabel" : "Kosong", "endsWithDataGridFilteringLabel" : "Berakhir dengan", -"equalsDataGridFilteringLabel" : "Setara", +"equalsDataGridFilteringLabel" : "Sama dengan", "greaterThanDataGridFilteringLabel" : "Lebih besar dari", -"greaterThanOrEqualDataGridFilteringLabel" : "Lebih Besar dari Atau Sama", +"greaterThanOrEqualDataGridFilteringLabel" : "Lebih Besar Dari Atau Sama Dengan", "lessThanDataGridFilteringLabel" : "Kurang dari", "lessThanOrEqualDataGridFilteringLabel" : "Kurang Dari Atau Sama", "notEmptyDataGridFilteringLabel" : "Tidak kosong", -"notNullDataGridFilteringLabel" : "Bukan Null", +"notNullDataGridFilteringLabel" : "Bukan Nol", "nullDataGridFilteringLabel" : "Batal", -"sortSmallestToLargestDataGridFilteringLabel" : "Urutkan dari yang terkecil ke yang terbesar", -"sortLargestToSmallestDataGridFilteringLabel" : "Urutkan Terbesar ke Terkecil", +"sortSmallestToLargestDataGridFilteringLabel" : "Urutkan Terkecil Hingga Terbesar", +"sortLargestToSmallestDataGridFilteringLabel" : "Urutkan Terbesar Hingga Terkecil", "sortAToZDataGridFilteringLabel" : "Urutkan A Sampai Z", "sortZToADataGridFilteringLabel" : "Urutkan Z Ke A", -"sortOldestToNewestDataGridFilteringLabel" : "Urutkan Terlama ke Terbaru", -"sortNewestToOldestDataGridFilteringLabel" : "Urutkan Terbaru ke Terlama", -"clearFilterFromDataGridFilteringLabel" : "Hapus Filter Dari", +"sortOldestToNewestDataGridFilteringLabel" : "Urutkan Terlama Ke Terbaru", +"sortNewestToOldestDataGridFilteringLabel" : "Urutkan Terbaru Ke Terlama", "textFiltersDataGridFilteringLabel" : "Filter Teks", "numberFiltersDataGridFilteringLabel" : "Filter Angka", "dateFiltersDataGridFilteringLabel" : "Filter Tanggal", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Dan", "orDataGridFilteringLabel" : "Atau", "selectAllDataGridFilteringLabel" : "Pilih Semua", -"sortAndFilterDataGridFilteringLabel" : "Sortir dan Filter" +"sortAndFilterDataGridFilteringLabel" : "Sortir dan Filter", +"clearFilterDataGridFilteringLabel" : "Hapus Filter", +"fromDataGridFilteringLabel" : "Dari" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_is.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_is.arb index aa1a85e8a..a9ea9b496 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_is.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_is.arb @@ -9,7 +9,7 @@ "pdfScrollStatusOfLabel" : "af", "pdfGoToPageLabel" : "Farðu á síðu", "pdfEnterPageNumberLabel" : "Sláðu inn blaðsíðunúmer", -"pdfInvalidPageNumberLabel" : "Vinsamlega sláðu inn gilt númer", +"pdfInvalidPageNumberLabel" : "Vinsamlegast sláðu inn gilt númer", "pdfPaginationDialogOkLabel" : "Allt í lagi", "pdfPaginationDialogCancelLabel" : "HÆTTA við", "passwordDialogHeaderTextLabel" : "Lykilorð varið", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Raða Z Til A", "sortOldestToNewestDataGridFilteringLabel" : "Raða elstu í nýjustu", "sortNewestToOldestDataGridFilteringLabel" : "Raða nýjustu í elstu", -"clearFilterFromDataGridFilteringLabel" : "Hreinsa síu frá", "textFiltersDataGridFilteringLabel" : "Textasíur", "numberFiltersDataGridFilteringLabel" : "Númerasíur", "dateFiltersDataGridFilteringLabel" : "Dagsetningarsíur", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Og", "orDataGridFilteringLabel" : "Eða", "selectAllDataGridFilteringLabel" : "Velja allt", -"sortAndFilterDataGridFilteringLabel" : "Raða og sía" +"sortAndFilterDataGridFilteringLabel" : "Raða og sía", +"clearFilterDataGridFilteringLabel" : "Hreinsaðu síu", +"fromDataGridFilteringLabel" : "Frá" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_it.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_it.arb index cf93e98cc..ed881412f 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_it.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_it.arb @@ -10,7 +10,7 @@ "pdfGoToPageLabel" : "Vai alla pagina", "pdfEnterPageNumberLabel" : "Inserisci il numero di pagina", "pdfInvalidPageNumberLabel" : "Per favore, inserire un numero valido", -"pdfPaginationDialogOkLabel" : "ok", +"pdfPaginationDialogOkLabel" : "OK", "pdfPaginationDialogCancelLabel" : "ANNULLA", "passwordDialogHeaderTextLabel" : "Protetto da password", "passwordDialogContentLabel" : "Inserisci la password per aprire questo file PDF", @@ -23,10 +23,10 @@ "allowedViewWorkWeekLabel" : "Settimana di lavoro", "allowedViewMonthLabel" : "Mese", "allowedViewScheduleLabel" : "Programma", -"allowedViewTimelineDayLabel" : "Giornata della sequenza temporale", -"allowedViewTimelineWeekLabel" : "Settimana della sequenza temporale", -"allowedViewTimelineWorkWeekLabel" : "Settimana del lavoro cronologico", -"allowedViewTimelineMonthLabel" : "Mese della sequenza temporale", +"allowedViewTimelineDayLabel" : "Giorno della cronologia", +"allowedViewTimelineWeekLabel" : "Settimana della cronologia", +"allowedViewTimelineWorkWeekLabel" : "Cronologia della settimana lavorativa", +"allowedViewTimelineMonthLabel" : "Mese cronologico", "todayLabel" : "In data odierna", "weeknumberLabel" : "Settimana", "allDayLabel" : "Tutto il giorno", @@ -40,14 +40,14 @@ "shaabanLabel" : "Sha'aban", "ramadanLabel" : "Ramadan", "shawwalLabel" : "Shawwal", -"dhualqiLabel" : "Dhu al-Qi'dah", +"dhualqiLabel" : "Dhu al-Qidah", "dhualhiLabel" : "Dhu al-Hijjah", -"shortMuharramLabel" : "Mah.", +"shortMuharramLabel" : "Muh.", "shortSafarLabel" : "Saf.", -"shortRabi1Label" : "Rabi. io", -"shortRabi2Label" : "Rabi. II", -"shortJumada1Label" : "Salto. io", -"shortJumada2Label" : "Salto. II", +"shortRabi1Label" : "Rabbi. io", +"shortRabi2Label" : "Rabbi. II", +"shortJumada1Label" : "Jum. io", +"shortJumada2Label" : "Jum. II", "shortRajabLabel" : "Raj.", "shortShaabanLabel" : "Sha.", "shortRamadanLabel" : "Ariete.", @@ -57,7 +57,7 @@ "daySpanCountLabel" : "Giorno", "series" : "Serie", "pdfHyperlinkLabel" : "Apri pagina web", -"pdfHyperlinkContentLabel" : "Vuoi aprire la pagina a", +"pdfHyperlinkContentLabel" : "Vuoi aprire la pagina in", "pdfHyperlinkDialogOpenLabel" : "APRIRE", "pdfHyperlinkDialogCancelLabel" : "ANNULLA", "afterDataGridFilteringLabel" : "Dopo", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Ordina dalla Z alla A", "sortOldestToNewestDataGridFilteringLabel" : "Ordina dal più vecchio al più recente", "sortNewestToOldestDataGridFilteringLabel" : "Ordina dal più recente al più vecchio", -"clearFilterFromDataGridFilteringLabel" : "Cancella filtro da", "textFiltersDataGridFilteringLabel" : "Filtri di testo", "numberFiltersDataGridFilteringLabel" : "Filtri numerici", "dateFiltersDataGridFilteringLabel" : "Filtri data", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "E", "orDataGridFilteringLabel" : "O", "selectAllDataGridFilteringLabel" : "Seleziona tutto", -"sortAndFilterDataGridFilteringLabel" : "Ordina e filtra" +"sortAndFilterDataGridFilteringLabel" : "Ordina e filtra", +"clearFilterDataGridFilteringLabel" : "Filtro pulito", +"fromDataGridFilteringLabel" : "Da" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ja.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ja.arb index f42d375ed..25a249015 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ja.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ja.arb @@ -3,7 +3,7 @@ "noEventsCalendarLabel" : "イベントなし", "ofDataPagerLabel" : "の", "pagesDataPagerLabel" : "ページ", -"rowsPerPageDataPagerLabel" : "1ページあたりの行数", +"rowsPerPageDataPagerLabel" : "ページあたりの行数", "pdfBookmarksLabel" : "ブックマーク", "pdfNoBookmarksLabel" : "ブックマークが見つかりません", "pdfScrollStatusOfLabel" : "の", @@ -13,51 +13,51 @@ "pdfPaginationDialogOkLabel" : "わかった", "pdfPaginationDialogCancelLabel" : "キャンセル", "passwordDialogHeaderTextLabel" : "守られたパスワード", -"passwordDialogContentLabel" : "このPDFファイルを開くためのパスワードを入力してください", +"passwordDialogContentLabel" : "このPDFファイルを開くにはパスワードを入力してください", "passwordDialogHintTextLabel" : "パスワードを入力する", "passwordDialogInvalidPasswordLabel" : "無効なパスワード", "pdfPasswordDialogOpenLabel" : "開いた", "pdfPasswordDialogCancelLabel" : "キャンセル", "allowedViewDayLabel" : "日", "allowedViewWeekLabel" : "週", -"allowedViewWorkWeekLabel" : "労働週", +"allowedViewWorkWeekLabel" : "勤務週", "allowedViewMonthLabel" : "月", "allowedViewScheduleLabel" : "スケジュール", "allowedViewTimelineDayLabel" : "タイムラインの日", -"allowedViewTimelineWeekLabel" : "タイムラインウィーク", -"allowedViewTimelineWorkWeekLabel" : "タイムラインワークウィーク", +"allowedViewTimelineWeekLabel" : "タイムライン 週", +"allowedViewTimelineWorkWeekLabel" : "タイムライン 作業週", "allowedViewTimelineMonthLabel" : "タイムライン月", "todayLabel" : "今日", "weeknumberLabel" : "週", "allDayLabel" : "一日中", -"muharramLabel" : "ムハッラム", -"safarLabel" : "Safar", -"rabi1Label" : "ラビー・ウル・アウワル", -"rabi2Label" : "ラビー・アル・タニ", -"jumada1Label" : "ジュマーダ・アル・アウワル", -"jumada2Label" : "ジュマーダ・アルタニ", +"muharramLabel" : "ムハラム", +"safarLabel" : "サファル", +"rabi1Label" : "ラビアルアワル", +"rabi2Label" : "ラビアルタニ", +"jumada1Label" : "ジュマーダ・アル・アワル", +"jumada2Label" : "ジュマーダ アルタニ", "rajabLabel" : "ラジャブ", -"shaabanLabel" : "シャアバーン", +"shaabanLabel" : "シャアバン", "ramadanLabel" : "ラマダン", -"shawwalLabel" : "シャウワール", -"dhualqiLabel" : "ズーアルチーダー", -"dhualhiLabel" : "ズーアルヒジャ", -"shortMuharramLabel" : "ムー。", -"shortSafarLabel" : "Saf。", +"shawwalLabel" : "シャワル", +"dhualqiLabel" : "ドゥ アルキダ", +"dhualhiLabel" : "ドゥ アル ヒジャ", +"shortMuharramLabel" : "うーん。", +"shortSafarLabel" : "サフ。", "shortRabi1Label" : "ラビ。私", -"shortRabi2Label" : "ラビ。 II", +"shortRabi2Label" : "ラビ。 Ⅱ", "shortJumada1Label" : "ジャム。私", -"shortJumada2Label" : "ジャム。 II", +"shortJumada2Label" : "ジャム。 Ⅱ", "shortRajabLabel" : "ラージ。", -"shortShaabanLabel" : "シャ。", +"shortShaabanLabel" : "しゃ。", "shortRamadanLabel" : "RAM。", "shortShawwalLabel" : "ショー。", -"shortDhualqiLabel" : "Dhu'l-Q", -"shortDhualhiLabel" : "Dhu'l-H", +"shortDhualqiLabel" : "デュルQ", +"shortDhualhiLabel" : "デュル-H", "daySpanCountLabel" : "日", "series" : "シリーズ", -"pdfHyperlinkLabel" : "Webページを開く", -"pdfHyperlinkContentLabel" : "次のページを開きますか", +"pdfHyperlinkLabel" : "ウェブページを開く", +"pdfHyperlinkContentLabel" : "でページを開きますか?", "pdfHyperlinkDialogOpenLabel" : "開いた", "pdfHyperlinkDialogCancelLabel" : "キャンセル", "afterDataGridFilteringLabel" : "後", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z から A に並べ替え", "sortOldestToNewestDataGridFilteringLabel" : "古いものから新しいものへ並べ替え", "sortNewestToOldestDataGridFilteringLabel" : "新しいものから古いものへ並べ替え", -"clearFilterFromDataGridFilteringLabel" : "フィルターをクリアする", "textFiltersDataGridFilteringLabel" : "テキスト フィルター", "numberFiltersDataGridFilteringLabel" : "数値フィルター", "dateFiltersDataGridFilteringLabel" : "日付フィルター", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "と", "orDataGridFilteringLabel" : "または", "selectAllDataGridFilteringLabel" : "すべて選択", -"sortAndFilterDataGridFilteringLabel" : "並べ替えとフィルター" +"sortAndFilterDataGridFilteringLabel" : "並べ替えとフィルター", +"clearFilterDataGridFilteringLabel" : "フィルターをクリア", +"fromDataGridFilteringLabel" : "から" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ka.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ka.arb index d396f48b8..4af4ce4f0 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ka.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ka.arb @@ -18,7 +18,7 @@ "passwordDialogInvalidPasswordLabel" : "არასწორი პაროლი", "pdfPasswordDialogOpenLabel" : "გახსენით", "pdfPasswordDialogCancelLabel" : "გაუქმება", -"allowedViewDayLabel" : "Დღეს", +"allowedViewDayLabel" : "Დღის", "allowedViewWeekLabel" : "კვირა", "allowedViewWorkWeekLabel" : "Სამუშაო კვირა", "allowedViewMonthLabel" : "თვე", @@ -40,7 +40,7 @@ "shaabanLabel" : "შააბანი", "ramadanLabel" : "რამადანი", "shawwalLabel" : "შავვალი", -"dhualqiLabel" : "დჰულ-ქიდა", +"dhualqiLabel" : "დჰულ-ქიდა", "dhualhiLabel" : "დჰულ-ჰიჯა", "shortMuharramLabel" : "მუჰ.", "shortSafarLabel" : "საფ.", @@ -54,10 +54,10 @@ "shortShawwalLabel" : "შოუ.", "shortDhualqiLabel" : "დულ-ქ", "shortDhualhiLabel" : "დულ-ჰ", -"daySpanCountLabel" : "Დღეს", +"daySpanCountLabel" : "Დღის", "series" : "სერიალი", "pdfHyperlinkLabel" : "გახსენით ვებ გვერდი", -"pdfHyperlinkContentLabel" : "გსურთ გახსნათ გვერდი:", +"pdfHyperlinkContentLabel" : "გსურთ გახსნათ გვერდი", "pdfHyperlinkDialogOpenLabel" : "გახსენით", "pdfHyperlinkDialogCancelLabel" : "გაუქმება", "afterDataGridFilteringLabel" : "შემდეგ", @@ -78,15 +78,14 @@ "lessThanDataGridFilteringLabel" : "Ნაკლები ვიდრე", "lessThanOrEqualDataGridFilteringLabel" : "ნაკლები ან თანაბარი", "notEmptyDataGridFilteringLabel" : "Არ არის ცარიელი", -"notNullDataGridFilteringLabel" : "არა ნული", +"notNullDataGridFilteringLabel" : "არა ნულოვანი", "nullDataGridFilteringLabel" : "ნულოვანი", "sortSmallestToLargestDataGridFilteringLabel" : "დახარისხება პატარადან დიდამდე", -"sortLargestToSmallestDataGridFilteringLabel" : "დახარისხება დიდიდან პატარამდე", +"sortLargestToSmallestDataGridFilteringLabel" : "სორტირება დიდიდან პატარამდე", "sortAToZDataGridFilteringLabel" : "დალაგება A-დან Z-მდე", "sortZToADataGridFilteringLabel" : "დახარისხება Z-ზე A", "sortOldestToNewestDataGridFilteringLabel" : "დალაგება უძველესიდან უახლესზე", -"sortNewestToOldestDataGridFilteringLabel" : "სორტირება უახლესიდან ძველზე", -"clearFilterFromDataGridFilteringLabel" : "ფილტრის გასუფთავება", +"sortNewestToOldestDataGridFilteringLabel" : "დალაგება უახლესიდან ძველზე", "textFiltersDataGridFilteringLabel" : "ტექსტის ფილტრები", "numberFiltersDataGridFilteringLabel" : "რიცხვების ფილტრები", "dateFiltersDataGridFilteringLabel" : "თარიღის ფილტრები", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "და", "orDataGridFilteringLabel" : "ან", "selectAllDataGridFilteringLabel" : "Მონიშნე ყველა", -"sortAndFilterDataGridFilteringLabel" : "დალაგება და გაფილტვრა" +"sortAndFilterDataGridFilteringLabel" : "დალაგება და გაფილტვრა", +"clearFilterDataGridFilteringLabel" : "ფილტრის გასუფთავება", +"fromDataGridFilteringLabel" : "დან" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_kk.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_kk.arb index 46ca7f719..be6032f3c 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_kk.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_kk.arb @@ -1,12 +1,12 @@ { "noSelectedDateCalendarLabel" : "Таңдалған күн жоқ", "noEventsCalendarLabel" : "Оқиғалар жоқ", -"ofDataPagerLabel" : "бойынша", +"ofDataPagerLabel" : "ның", "pagesDataPagerLabel" : "беттер", "rowsPerPageDataPagerLabel" : "Әр беттегі жолдар", "pdfBookmarksLabel" : "Бетбелгілер", "pdfNoBookmarksLabel" : "Ешқандай бетбелгі табылмады", -"pdfScrollStatusOfLabel" : "бойынша", +"pdfScrollStatusOfLabel" : "ның", "pdfGoToPageLabel" : "Бетке өту", "pdfEnterPageNumberLabel" : "Бет нөмірін енгізіңіз", "pdfInvalidPageNumberLabel" : "Жарамды нөмірді енгізіңіз", @@ -15,7 +15,7 @@ "passwordDialogHeaderTextLabel" : "Құпия сөзбен қорғалған", "passwordDialogContentLabel" : "Осы PDF файлын ашу үшін құпия сөзді енгізіңіз", "passwordDialogHintTextLabel" : "Құпия сөзді енгізіңіз", -"passwordDialogInvalidPasswordLabel" : "Құпия сөз жарамсыз", +"passwordDialogInvalidPasswordLabel" : "Жарамсыз құпия сөз", "pdfPasswordDialogOpenLabel" : "АШЫҚ", "pdfPasswordDialogCancelLabel" : "БАС ТАРТУ", "allowedViewDayLabel" : "Күн", @@ -40,7 +40,7 @@ "shaabanLabel" : "Шағбан", "ramadanLabel" : "Рамазан", "shawwalLabel" : "Шәууәл", -"dhualqiLabel" : "Зу әл-Қида", +"dhualqiLabel" : "Зул-Қида", "dhualhiLabel" : "Зул-Хиджа", "shortMuharramLabel" : "Мұх.", "shortSafarLabel" : "Saf.", @@ -52,12 +52,12 @@ "shortShaabanLabel" : "Ша.", "shortRamadanLabel" : "Жедел Жадтау Құрылғысы.", "shortShawwalLabel" : "Шоу.", -"shortDhualqiLabel" : "Зул-Қ", +"shortDhualqiLabel" : "Зуль-Қ", "shortDhualhiLabel" : "Зул-Х", "daySpanCountLabel" : "Күн", "series" : "Сериялар", "pdfHyperlinkLabel" : "Веб-бетті ашыңыз", -"pdfHyperlinkContentLabel" : "бетті ашқыңыз келе ме?", +"pdfHyperlinkContentLabel" : "бетті ашқыңыз келе ме", "pdfHyperlinkDialogOpenLabel" : "АШЫҚ", "pdfHyperlinkDialogCancelLabel" : "БАС ТАРТУ", "afterDataGridFilteringLabel" : "Кейін", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z-ден A-ға сұрыптау", "sortOldestToNewestDataGridFilteringLabel" : "Ең ескіден ең жаңасына сұрыптау", "sortNewestToOldestDataGridFilteringLabel" : "Ең жаңадан ең ескіге сұрыптау", -"clearFilterFromDataGridFilteringLabel" : "Сүзгіден тазалау", "textFiltersDataGridFilteringLabel" : "Мәтін сүзгілері", "numberFiltersDataGridFilteringLabel" : "Сандық сүзгілер", "dateFiltersDataGridFilteringLabel" : "Күн сүзгілері", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Және", "orDataGridFilteringLabel" : "Немесе", "selectAllDataGridFilteringLabel" : "Барлығын таңдаңыз", -"sortAndFilterDataGridFilteringLabel" : "Сұрыптау және сүзу" +"sortAndFilterDataGridFilteringLabel" : "Сұрыптау және сүзу", +"clearFilterDataGridFilteringLabel" : "Сүзгіні тазалау", +"fromDataGridFilteringLabel" : "бастап" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_km.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_km.arb index 0300fc3a9..a923e54c7 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_km.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_km.arb @@ -26,7 +26,7 @@ "allowedViewTimelineDayLabel" : "ថ្ងៃកំណត់ពេលវេលា", "allowedViewTimelineWeekLabel" : "Timeline សប្តាហ៍", "allowedViewTimelineWorkWeekLabel" : "កាលវិភាគការងារប្រចាំសប្តាហ៍", -"allowedViewTimelineMonthLabel" : "តារាងពេលវេលាខែ", +"allowedViewTimelineMonthLabel" : "ខែពេលវេលា", "todayLabel" : "ថ្ងៃនេះ", "weeknumberLabel" : "សប្តាហ៍", "allDayLabel" : "ពេញមួយថ្ងៃ", @@ -37,9 +37,9 @@ "jumada1Label" : "Jumada al-awwal", "jumada2Label" : "ជូម៉ាដា អាល់ថានី", "rajabLabel" : "រ៉ាចាប", -"shaabanLabel" : "សារ៉ាបាន", +"shaabanLabel" : "សាបាន", "ramadanLabel" : "រ៉ាម៉ាដាន", -"shawwalLabel" : "Shawwal", +"shawwalLabel" : "សាវ៉ាវ", "dhualqiLabel" : "Dhu al-Qi'dah", "dhualhiLabel" : "Dhu al-Hijjah", "shortMuharramLabel" : "ម៉ោ", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "តម្រៀប Z ទៅ A", "sortOldestToNewestDataGridFilteringLabel" : "តម្រៀបចាស់បំផុតទៅថ្មីបំផុត។", "sortNewestToOldestDataGridFilteringLabel" : "តម្រៀបថ្មីបំផុតទៅចាស់បំផុត។", -"clearFilterFromDataGridFilteringLabel" : "ជម្រះតម្រងពី", "textFiltersDataGridFilteringLabel" : "តម្រងអត្ថបទ", "numberFiltersDataGridFilteringLabel" : "តម្រងលេខ", "dateFiltersDataGridFilteringLabel" : "តម្រងកាលបរិច្ឆេទ", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "និង", "orDataGridFilteringLabel" : "ឬ", "selectAllDataGridFilteringLabel" : "ជ្រើសរើស​ទាំងអស់", -"sortAndFilterDataGridFilteringLabel" : "តម្រៀបនិងត្រង" +"sortAndFilterDataGridFilteringLabel" : "តម្រៀបនិងត្រង", +"clearFilterDataGridFilteringLabel" : "ជម្រះតម្រង", +"fromDataGridFilteringLabel" : "ពី" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_kn.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_kn.arb index 09b83a20c..0b88c7a1c 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_kn.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_kn.arb @@ -13,7 +13,7 @@ "pdfPaginationDialogOkLabel" : "ಸರಿ", "pdfPaginationDialogCancelLabel" : "ರದ್ದುಮಾಡು", "passwordDialogHeaderTextLabel" : "ಪಾಸ್ವರ್ಡ್ ರಕ್ಷಿಸಲಾಗಿದೆ", -"passwordDialogContentLabel" : "ಈ PDF ಫೈಲ್ ಅನ್ನು ತೆರೆಯಲು ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ", +"passwordDialogContentLabel" : "ಈ PDF ಫೈಲ್ ತೆರೆಯಲು ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ", "passwordDialogHintTextLabel" : "ಪಾಸ್ವರ್ಡ್ ನಮೂದಿಸಿ", "passwordDialogInvalidPasswordLabel" : "ಅಮಾನ್ಯವಾದ ಪಾಸ್ವರ್ಡ್", "pdfPasswordDialogOpenLabel" : "ತೆರೆಯಿರಿ", @@ -44,8 +44,8 @@ "dhualhiLabel" : "ಧು ಅಲ್-ಹಿಜ್ಜಾ", "shortMuharramLabel" : "ಮುಹ್", "shortSafarLabel" : "ಸೇಫ್", -"shortRabi1Label" : "ರಬಿ. I", -"shortRabi2Label" : "ರಬಿ. II", +"shortRabi1Label" : "ರಬಿ I", +"shortRabi2Label" : "ರಬಿ II", "shortJumada1Label" : "ಜಂ. I", "shortJumada2Label" : "ಜಂ. II", "shortRajabLabel" : "ರಾಜ್.", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z ನಿಂದ A ಗೆ ವಿಂಗಡಿಸಿ", "sortOldestToNewestDataGridFilteringLabel" : "ಹಳೆಯದರಿಂದ ಹೊಸದಕ್ಕೆ ವಿಂಗಡಿಸಿ", "sortNewestToOldestDataGridFilteringLabel" : "ಹೊಸದನ್ನು ಹಳೆಯದಕ್ಕೆ ವಿಂಗಡಿಸಿ", -"clearFilterFromDataGridFilteringLabel" : "ನಿಂದ ಫಿಲ್ಟರ್ ಅನ್ನು ತೆರವುಗೊಳಿಸಿ", "textFiltersDataGridFilteringLabel" : "ಪಠ್ಯ ಶೋಧಕಗಳು", "numberFiltersDataGridFilteringLabel" : "ಸಂಖ್ಯೆ ಶೋಧಕಗಳು", "dateFiltersDataGridFilteringLabel" : "ದಿನಾಂಕ ಶೋಧಕಗಳು", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "ಮತ್ತು", "orDataGridFilteringLabel" : "ಅಥವಾ", "selectAllDataGridFilteringLabel" : "ಎಲ್ಲವನ್ನು ಆರಿಸು", -"sortAndFilterDataGridFilteringLabel" : "ವಿಂಗಡಿಸಿ ಮತ್ತು ಫಿಲ್ಟರ್ ಮಾಡಿ" +"sortAndFilterDataGridFilteringLabel" : "ವಿಂಗಡಿಸಿ ಮತ್ತು ಫಿಲ್ಟರ್ ಮಾಡಿ", +"clearFilterDataGridFilteringLabel" : "ಫಿಲ್ಟರ್ ಅನ್ನು ತೆರವುಗೊಳಿಸಿ", +"fromDataGridFilteringLabel" : "ಇಂದ" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ko.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ko.arb index b9a5cc6e3..53635db77 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ko.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ko.arb @@ -1,31 +1,31 @@ { -"noSelectedDateCalendarLabel" : "선택한 날짜가 없습니다", -"noEventsCalendarLabel" : "이벤트 없음", +"noSelectedDateCalendarLabel" : "선택한 날짜 없음", +"noEventsCalendarLabel" : "일정 없음", "ofDataPagerLabel" : "의", "pagesDataPagerLabel" : "페이지", "rowsPerPageDataPagerLabel" : "페이지당 행", -"pdfBookmarksLabel" : "책갈피", -"pdfNoBookmarksLabel" : "북마크를 찾을 수 없습니다", +"pdfBookmarksLabel" : "북마크", +"pdfNoBookmarksLabel" : "북마크가 없습니다.", "pdfScrollStatusOfLabel" : "의", "pdfGoToPageLabel" : "페이지로 이동", "pdfEnterPageNumberLabel" : "페이지 번호 입력", -"pdfInvalidPageNumberLabel" : "유효한 숫자를 입력하세요", -"pdfPaginationDialogOkLabel" : "좋아요", +"pdfInvalidPageNumberLabel" : "유효한 숫자를 입력하세요.", +"pdfPaginationDialogOkLabel" : "확인", "pdfPaginationDialogCancelLabel" : "취소", "passwordDialogHeaderTextLabel" : "암호로 보호됨", "passwordDialogContentLabel" : "이 PDF 파일을 열려면 비밀번호를 입력하세요", "passwordDialogHintTextLabel" : "암호를 입력", "passwordDialogInvalidPasswordLabel" : "유효하지 않은 비밀번호", -"pdfPasswordDialogOpenLabel" : "열려있는", +"pdfPasswordDialogOpenLabel" : "열려 있는", "pdfPasswordDialogCancelLabel" : "취소", -"allowedViewDayLabel" : "일", +"allowedViewDayLabel" : "낮", "allowedViewWeekLabel" : "주", -"allowedViewWorkWeekLabel" : "작업 주간", +"allowedViewWorkWeekLabel" : "근무 주", "allowedViewMonthLabel" : "월", "allowedViewScheduleLabel" : "일정", -"allowedViewTimelineDayLabel" : "타임라인의 날", -"allowedViewTimelineWeekLabel" : "타임라인 주간", -"allowedViewTimelineWorkWeekLabel" : "타임라인 작업 주간", +"allowedViewTimelineDayLabel" : "타임라인 데이", +"allowedViewTimelineWeekLabel" : "타임라인 위크", +"allowedViewTimelineWorkWeekLabel" : "타임라인 작업 주", "allowedViewTimelineMonthLabel" : "타임라인 월", "todayLabel" : "오늘", "weeknumberLabel" : "주", @@ -33,16 +33,16 @@ "muharramLabel" : "무하람", "safarLabel" : "사파르", "rabi1Label" : "라비 알-아왈", -"rabi2Label" : "라비 알타니", +"rabi2Label" : "라비 알 타니", "jumada1Label" : "주마다 알-아왈", -"jumada2Label" : "주마다 알타니", -"rajabLabel" : "라자브", +"jumada2Label" : "주마다 알 타니", +"rajabLabel" : "라잡", "shaabanLabel" : "샤아반", "ramadanLabel" : "라마단", "shawwalLabel" : "샤왈", -"dhualqiLabel" : "두 알 키다", +"dhualqiLabel" : "두 알 키이다", "dhualhiLabel" : "두 알 히자", -"shortMuharramLabel" : "음.", +"shortMuharramLabel" : "머.", "shortSafarLabel" : "사프.", "shortRabi1Label" : "라비. 나", "shortRabi2Label" : "라비. II", @@ -54,21 +54,21 @@ "shortShawwalLabel" : "쇼.", "shortDhualqiLabel" : "둘큐", "shortDhualhiLabel" : "둘-H", -"daySpanCountLabel" : "일", +"daySpanCountLabel" : "낮", "series" : "시리즈", "pdfHyperlinkLabel" : "웹 페이지 열기", -"pdfHyperlinkContentLabel" : "페이지를 열시겠습니까?", +"pdfHyperlinkContentLabel" : "에서 페이지를 열시겠습니까?", "pdfHyperlinkDialogOpenLabel" : "열려 있는", "pdfHyperlinkDialogCancelLabel" : "취소", "afterDataGridFilteringLabel" : "후에", -"afterOrEqualDataGridFilteringLabel" : "이후 또는 같음", +"afterOrEqualDataGridFilteringLabel" : "후 또는 같음", "beforeDataGridFilteringLabel" : "이전 또는 같음", "beforeOrEqualDataGridFilteringLabel" : "전에", -"beginsWithDataGridFilteringLabel" : "시작", +"beginsWithDataGridFilteringLabel" : "다음으로 시작", "containsDataGridFilteringLabel" : "포함", -"doesNotBeginWithDataGridFilteringLabel" : "로 시작하지 않음", +"doesNotBeginWithDataGridFilteringLabel" : "다음으로 시작하지 않음", "doesNotContainDataGridFilteringLabel" : "포함되어 있지 않다", -"doesNotEndWithDataGridFilteringLabel" : "로 끝나지 않음", +"doesNotEndWithDataGridFilteringLabel" : "다음으로 끝나지 않음", "doesNotEqualDataGridFilteringLabel" : "같지 않음", "emptyDataGridFilteringLabel" : "비어 있는", "endsWithDataGridFilteringLabel" : "로 끝나다", @@ -80,13 +80,12 @@ "notEmptyDataGridFilteringLabel" : "비어 있지 않음", "notNullDataGridFilteringLabel" : "널이 아님", "nullDataGridFilteringLabel" : "없는", -"sortSmallestToLargestDataGridFilteringLabel" : "작은 것부터 큰 것 순으로 정렬", -"sortLargestToSmallestDataGridFilteringLabel" : "큰 것부터 작은 것 순으로 정렬", -"sortAToZDataGridFilteringLabel" : "A에서 Z로 정렬", -"sortZToADataGridFilteringLabel" : "Z에서 A로 정렬", -"sortOldestToNewestDataGridFilteringLabel" : "가장 오래된 것을 최신으로 정렬", +"sortSmallestToLargestDataGridFilteringLabel" : "작은 것부터 큰 것까지 정렬", +"sortLargestToSmallestDataGridFilteringLabel" : "내림차순 정렬", +"sortAToZDataGridFilteringLabel" : "A부터 Z까지 정렬", +"sortZToADataGridFilteringLabel" : "Z를 A로 정렬", +"sortOldestToNewestDataGridFilteringLabel" : "가장 오래된 것부터 최신순으로 정렬", "sortNewestToOldestDataGridFilteringLabel" : "최신순으로 정렬", -"clearFilterFromDataGridFilteringLabel" : "필터 지우기", "textFiltersDataGridFilteringLabel" : "텍스트 필터", "numberFiltersDataGridFilteringLabel" : "숫자 필터", "dateFiltersDataGridFilteringLabel" : "날짜 필터", @@ -94,9 +93,11 @@ "noMatchesDataGridFilteringLabel" : "맞지 않는다", "okDataGridFilteringLabel" : "확인", "cancelDataGridFilteringLabel" : "취소", -"showRowsWhereDataGridFilteringLabel" : "행 표시", +"showRowsWhereDataGridFilteringLabel" : "어디에 행 표시", "andDataGridFilteringLabel" : "그리고", "orDataGridFilteringLabel" : "또는", "selectAllDataGridFilteringLabel" : "모두 선택", -"sortAndFilterDataGridFilteringLabel" : "정렬 및 필터링" +"sortAndFilterDataGridFilteringLabel" : "정렬 및 필터링", +"clearFilterDataGridFilteringLabel" : "필터 지우기", +"fromDataGridFilteringLabel" : "에서" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ky.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ky.arb index b388e15ba..9c3c32812 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ky.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ky.arb @@ -18,14 +18,14 @@ "passwordDialogInvalidPasswordLabel" : "туура эмес пароль", "pdfPasswordDialogOpenLabel" : "АЧУУ", "pdfPasswordDialogCancelLabel" : "ЖОК КЫЛУУ", -"allowedViewDayLabel" : "Күн", +"allowedViewDayLabel" : "күн", "allowedViewWeekLabel" : "Апта", "allowedViewWorkWeekLabel" : "Жумуш аптасы", "allowedViewMonthLabel" : "Ай", "allowedViewScheduleLabel" : "График", "allowedViewTimelineDayLabel" : "Timeline Day", "allowedViewTimelineWeekLabel" : "Timeline Week", -"allowedViewTimelineWorkWeekLabel" : "Иш жумалыгы", +"allowedViewTimelineWorkWeekLabel" : "Хронология иш жумасы", "allowedViewTimelineMonthLabel" : "Убакыт тилкеси айы", "todayLabel" : "Бүгүн", "weeknumberLabel" : "Апта", @@ -38,7 +38,7 @@ "jumada2Label" : "Жумада ал-Тани", "rajabLabel" : "Ражаб", "shaabanLabel" : "Шаабан", -"ramadanLabel" : "Рамазан", +"ramadanLabel" : "Орозо айт", "shawwalLabel" : "Шаввал", "dhualqiLabel" : "Зул кыда", "dhualhiLabel" : "Зул Хижжа", @@ -54,7 +54,7 @@ "shortShawwalLabel" : "Шоу.", "shortDhualqiLabel" : "Зуль-К", "shortDhualhiLabel" : "Зул-Х", -"daySpanCountLabel" : "Күн", +"daySpanCountLabel" : "күн", "series" : "Сериялар", "pdfHyperlinkLabel" : "Веб баракчаны ачуу", "pdfHyperlinkContentLabel" : "Баракчаны ачкыңыз келеби?", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Zдан Ага чейин сорттоо", "sortOldestToNewestDataGridFilteringLabel" : "Эң эскиден эң жаңысына иреттөө", "sortNewestToOldestDataGridFilteringLabel" : "Эң жаңыдан эң эскиге иреттөө", -"clearFilterFromDataGridFilteringLabel" : "Чыпканы тазалоо", "textFiltersDataGridFilteringLabel" : "Текст чыпкалары", "numberFiltersDataGridFilteringLabel" : "Сан чыпкалары", "dateFiltersDataGridFilteringLabel" : "Дата чыпкалары", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Жана", "orDataGridFilteringLabel" : "Же", "selectAllDataGridFilteringLabel" : "Баарын тандаңыз", -"sortAndFilterDataGridFilteringLabel" : "Сорттоо жана чыпкалоо" +"sortAndFilterDataGridFilteringLabel" : "Сорттоо жана чыпкалоо", +"clearFilterDataGridFilteringLabel" : "Чыпканы тазалоо", +"fromDataGridFilteringLabel" : "From" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_lo.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_lo.arb index 977cd67b1..632866b93 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_lo.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_lo.arb @@ -1,5 +1,5 @@ { -"noSelectedDateCalendarLabel" : "ບໍ່ມີວັນທີທີ່ເລືອກ", +"noSelectedDateCalendarLabel" : "ບໍ່ມີວັນທີເລືອກ", "noEventsCalendarLabel" : "ບໍ່ມີເຫດການ", "ofDataPagerLabel" : "ຂອງ", "pagesDataPagerLabel" : "ໜ້າ", @@ -39,7 +39,7 @@ "rajabLabel" : "Rajab", "shaabanLabel" : "ຊາອາບານ", "ramadanLabel" : "ຣາມາດານ", -"shawwalLabel" : "ຊວາວ", +"shawwalLabel" : "ຊະວາວ", "dhualqiLabel" : "Dhu al-Qi'dah", "dhualhiLabel" : "Dhu al-Hijjah", "shortMuharramLabel" : "ມ.", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "ຈັດຮຽງ Z ຫາ A", "sortOldestToNewestDataGridFilteringLabel" : "ຈັດຮຽງເກົ່າສຸດຫາໃໝ່ສຸດ", "sortNewestToOldestDataGridFilteringLabel" : "ຈັດຮຽງໃໝ່ສຸດຫາເກົ່າທີ່ສຸດ", -"clearFilterFromDataGridFilteringLabel" : "ລຶບການກັ່ນຕອງຈາກ", "textFiltersDataGridFilteringLabel" : "ຕົວກອງຂໍ້ຄວາມ", "numberFiltersDataGridFilteringLabel" : "ຕົວກອງຕົວເລກ", "dateFiltersDataGridFilteringLabel" : "ການກັ່ນຕອງວັນທີ", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "ແລະ", "orDataGridFilteringLabel" : "ຫຼື", "selectAllDataGridFilteringLabel" : "ເລືອກ​ທັງ​ຫມົດ", -"sortAndFilterDataGridFilteringLabel" : "ຄັດແລະການກັ່ນຕອງ" +"sortAndFilterDataGridFilteringLabel" : "ຄັດແລະການກັ່ນຕອງ", +"clearFilterDataGridFilteringLabel" : "ລ້າງການກັ່ນຕອງ", +"fromDataGridFilteringLabel" : "ຈາກ" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_lt.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_lt.arb index 932e62447..ccf968c7c 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_lt.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_lt.arb @@ -42,7 +42,7 @@ "shawwalLabel" : "Shawwal", "dhualqiLabel" : "Dhu al-Qi'dah", "dhualhiLabel" : "Dhu al-Hijjah", -"shortMuharramLabel" : "aha.", +"shortMuharramLabel" : "Muh.", "shortSafarLabel" : "Saf.", "shortRabi1Label" : "Rabi. aš", "shortRabi2Label" : "Rabi. II", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Rūšiuoti nuo Z iki A", "sortOldestToNewestDataGridFilteringLabel" : "Rūšiuoti nuo seniausių iki naujausių", "sortNewestToOldestDataGridFilteringLabel" : "Rūšiuoti nuo naujausių iki seniausių", -"clearFilterFromDataGridFilteringLabel" : "Išvalyti filtrą iš", "textFiltersDataGridFilteringLabel" : "Teksto filtrai", "numberFiltersDataGridFilteringLabel" : "Skaičių filtrai", "dateFiltersDataGridFilteringLabel" : "Datos filtrai", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Ir", "orDataGridFilteringLabel" : "Arba", "selectAllDataGridFilteringLabel" : "Pasirinkti viską", -"sortAndFilterDataGridFilteringLabel" : "Rūšiuoti ir filtruoti" +"sortAndFilterDataGridFilteringLabel" : "Rūšiuoti ir filtruoti", +"clearFilterDataGridFilteringLabel" : "Išvalyti filtrą", +"fromDataGridFilteringLabel" : "Iš" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_lv.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_lv.arb index bfa171010..6f8037ea1 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_lv.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_lv.arb @@ -41,7 +41,7 @@ "ramadanLabel" : "Ramadāns", "shawwalLabel" : "Šovals", "dhualqiLabel" : "Dhu al-Qi'dah", -"dhualhiLabel" : "Dhu al-Hijjah", +"dhualhiLabel" : "Dhu al-Hidžja", "shortMuharramLabel" : "Muh.", "shortSafarLabel" : "Saf.", "shortRabi1Label" : "Rabi. es", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Kārtot no Z līdz A", "sortOldestToNewestDataGridFilteringLabel" : "Kārtot no vecāko uz jaunāko", "sortNewestToOldestDataGridFilteringLabel" : "Kārtot no jaunākajiem uz vecākajiem", -"clearFilterFromDataGridFilteringLabel" : "Notīrīt filtru no", "textFiltersDataGridFilteringLabel" : "Teksta filtri", "numberFiltersDataGridFilteringLabel" : "Skaitļu filtri", "dateFiltersDataGridFilteringLabel" : "Datumu filtri", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Un", "orDataGridFilteringLabel" : "Or", "selectAllDataGridFilteringLabel" : "Izvēlēties visus", -"sortAndFilterDataGridFilteringLabel" : "Kārtot un filtrēt" +"sortAndFilterDataGridFilteringLabel" : "Kārtot un filtrēt", +"clearFilterDataGridFilteringLabel" : "Notīrīt filtru", +"fromDataGridFilteringLabel" : "No" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_mk.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_mk.arb index 524c9ad30..94301a586 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_mk.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_mk.arb @@ -9,7 +9,7 @@ "pdfScrollStatusOfLabel" : "на", "pdfGoToPageLabel" : "Оди на страна", "pdfEnterPageNumberLabel" : "Внесете го бројот на страницата", -"pdfInvalidPageNumberLabel" : "Ве молиме внесете важечки број", +"pdfInvalidPageNumberLabel" : "Внесете важечки број", "pdfPaginationDialogOkLabel" : "добро", "pdfPaginationDialogCancelLabel" : "ОТКАЖИ", "passwordDialogHeaderTextLabel" : "Заштитено со лозинка", @@ -26,8 +26,8 @@ "allowedViewTimelineDayLabel" : "Ден на времеплов", "allowedViewTimelineWeekLabel" : "Недела на времеплов", "allowedViewTimelineWorkWeekLabel" : "Временска рамка Работна недела", -"allowedViewTimelineMonthLabel" : "Времеплов месец", -"todayLabel" : "Денеска", +"allowedViewTimelineMonthLabel" : "Месец на времеплов", +"todayLabel" : "Денес", "weeknumberLabel" : "Недела", "allDayLabel" : "Цел ден", "muharramLabel" : "Мухарам", @@ -41,7 +41,7 @@ "ramadanLabel" : "Рамазан", "shawwalLabel" : "Шавал", "dhualqiLabel" : "Зу ал-Кида", -"dhualhiLabel" : "Зу ал-Хиџа", +"dhualhiLabel" : "Зу ал Хиџа", "shortMuharramLabel" : "Мух.", "shortSafarLabel" : "Саф.", "shortRabi1Label" : "Раби. Јас", @@ -50,13 +50,13 @@ "shortJumada2Label" : "Џум. II", "shortRajabLabel" : "Раџ.", "shortShaabanLabel" : "Ша.", -"shortRamadanLabel" : "Рам.", +"shortRamadanLabel" : "Овен.", "shortShawwalLabel" : "Шо.", -"shortDhualqiLabel" : "Дул-К", +"shortDhualqiLabel" : "Ду'л-К", "shortDhualhiLabel" : "Дул-Х", "daySpanCountLabel" : "Ден", "series" : "Серии", -"pdfHyperlinkLabel" : "Отворете веб-страница", +"pdfHyperlinkLabel" : "Отворете ја веб-страницата", "pdfHyperlinkContentLabel" : "Дали сакате да ја отворите страницата на", "pdfHyperlinkDialogOpenLabel" : "ОТВОРЕНО", "pdfHyperlinkDialogCancelLabel" : "ОТКАЖИ", @@ -83,10 +83,9 @@ "sortSmallestToLargestDataGridFilteringLabel" : "Подреди од најмал до најголем", "sortLargestToSmallestDataGridFilteringLabel" : "Подреди од најголем до најмал", "sortAToZDataGridFilteringLabel" : "Подреди од А до Ш", -"sortZToADataGridFilteringLabel" : "Подреди од Ш во А", +"sortZToADataGridFilteringLabel" : "Подреди од Ш до А", "sortOldestToNewestDataGridFilteringLabel" : "Подреди од најстарото до најновото", "sortNewestToOldestDataGridFilteringLabel" : "Подреди најновото до најстарото", -"clearFilterFromDataGridFilteringLabel" : "Избриши го филтерот од", "textFiltersDataGridFilteringLabel" : "Филтри за текст", "numberFiltersDataGridFilteringLabel" : "Филтри за броеви", "dateFiltersDataGridFilteringLabel" : "Филтри за датум", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "И", "orDataGridFilteringLabel" : "Или", "selectAllDataGridFilteringLabel" : "Селектирај се", -"sortAndFilterDataGridFilteringLabel" : "Сортирање и филтрирање" +"sortAndFilterDataGridFilteringLabel" : "Сортирање и филтрирање", +"clearFilterDataGridFilteringLabel" : "Исчистете го филтерот", +"fromDataGridFilteringLabel" : "Од" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ml.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ml.arb index 776dff2e3..418b4b8ef 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ml.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ml.arb @@ -73,7 +73,7 @@ "emptyDataGridFilteringLabel" : "ശൂന്യം", "endsWithDataGridFilteringLabel" : "കൂടെ അവസാനിക്കുന്നു", "equalsDataGridFilteringLabel" : "തുല്യമാണ്", -"greaterThanDataGridFilteringLabel" : "ഇതിലും വലുത്", +"greaterThanDataGridFilteringLabel" : "അതിലും വലുത്", "greaterThanOrEqualDataGridFilteringLabel" : "വലുത് അല്ലെങ്കിൽ തുല്യം", "lessThanDataGridFilteringLabel" : "അതിൽ കുറവ്", "lessThanOrEqualDataGridFilteringLabel" : "കുറവ് അല്ലെങ്കിൽ തുല്യം", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z മുതൽ A വരെ അടുക്കുക", "sortOldestToNewestDataGridFilteringLabel" : "ഏറ്റവും പഴയത് മുതൽ പുതിയത് വരെ അടുക്കുക", "sortNewestToOldestDataGridFilteringLabel" : "ഏറ്റവും പുതിയത് മുതൽ പഴയത് വരെ അടുക്കുക", -"clearFilterFromDataGridFilteringLabel" : "ഇതിൽ നിന്ന് ഫിൽട്ടർ മായ്‌ക്കുക", "textFiltersDataGridFilteringLabel" : "ടെക്സ്റ്റ് ഫിൽട്ടറുകൾ", "numberFiltersDataGridFilteringLabel" : "നമ്പർ ഫിൽട്ടറുകൾ", "dateFiltersDataGridFilteringLabel" : "തീയതി ഫിൽട്ടറുകൾ", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "ഒപ്പം", "orDataGridFilteringLabel" : "അഥവാ", "selectAllDataGridFilteringLabel" : "എല്ലാം തിരഞ്ഞെടുക്കുക", -"sortAndFilterDataGridFilteringLabel" : "അടുക്കി ഫിൽട്ടർ ചെയ്യുക" +"sortAndFilterDataGridFilteringLabel" : "അടുക്കി ഫിൽട്ടർ ചെയ്യുക", +"clearFilterDataGridFilteringLabel" : "ഫിൽട്ടർ മായ്‌ക്കുക", +"fromDataGridFilteringLabel" : "നിന്ന്" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_mn.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_mn.arb index 9276632b7..e8f8b6e41 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_mn.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_mn.arb @@ -41,7 +41,7 @@ "ramadanLabel" : "Рамадан", "shawwalLabel" : "Шаввал", "dhualqiLabel" : "Зу аль-Кида", -"dhualhiLabel" : "Зу аль-Хижа", +"dhualhiLabel" : "Зул Хижжа", "shortMuharramLabel" : "Мух.", "shortSafarLabel" : "Saf.", "shortRabi1Label" : "Раби. I", @@ -53,7 +53,7 @@ "shortRamadanLabel" : "Рам.", "shortShawwalLabel" : "Шоу.", "shortDhualqiLabel" : "Зуль-К", -"shortDhualhiLabel" : "Зуль-Х", +"shortDhualhiLabel" : "Зуль-Х", "daySpanCountLabel" : "Өдөр", "series" : "Цуврал", "pdfHyperlinkLabel" : "Вэб хуудсыг нээх", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z-ээс А хүртэл эрэмбэлэх", "sortOldestToNewestDataGridFilteringLabel" : "Хамгийн хуучинаас шинэ рүү эрэмбэлэх", "sortNewestToOldestDataGridFilteringLabel" : "Хамгийн шинэээс хамгийн хуучин руу эрэмбэлэх", -"clearFilterFromDataGridFilteringLabel" : "Шүүлтүүрийг арилгах", "textFiltersDataGridFilteringLabel" : "Текст шүүлтүүрүүд", "numberFiltersDataGridFilteringLabel" : "Тооны шүүлтүүрүүд", "dateFiltersDataGridFilteringLabel" : "Огноо шүүлтүүрүүд", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Тэгээд", "orDataGridFilteringLabel" : "Эсвэл", "selectAllDataGridFilteringLabel" : "Бүгдийг сонгох", -"sortAndFilterDataGridFilteringLabel" : "Ангилах, шүүх" +"sortAndFilterDataGridFilteringLabel" : "Ангилах, шүүх", +"clearFilterDataGridFilteringLabel" : "Шүүлтүүрийг арилгах", +"fromDataGridFilteringLabel" : "-аас" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_mr.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_mr.arb index 2b7ff7f4a..eea52bdbb 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_mr.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_mr.arb @@ -33,8 +33,8 @@ "muharramLabel" : "मोहरम", "safarLabel" : "सफर", "rabi1Label" : "रबी अल अव्वल", -"rabi2Label" : "रबी अल-थानी", -"jumada1Label" : "जुमदा अल-अव्वल", +"rabi2Label" : "रबी अल थानी", +"jumada1Label" : "जुमदा अल-अव्वाल", "jumada2Label" : "जुमादा अल-थानी", "rajabLabel" : "रजब", "shaabanLabel" : "शाबान", @@ -46,8 +46,8 @@ "shortSafarLabel" : "सफ.", "shortRabi1Label" : "रबी. आय", "shortRabi2Label" : "रबी. II", -"shortJumada1Label" : "जम. आय", -"shortJumada2Label" : "जम. II", +"shortJumada1Label" : "जुम. आय", +"shortJumada2Label" : "जुम. II", "shortRajabLabel" : "राज.", "shortShaabanLabel" : "शा.", "shortRamadanLabel" : "रॅम.", @@ -84,9 +84,8 @@ "sortLargestToSmallestDataGridFilteringLabel" : "सर्वात मोठ्या ते सर्वात लहान क्रमवारी लावा", "sortAToZDataGridFilteringLabel" : "A ते Z क्रमवारी लावा", "sortZToADataGridFilteringLabel" : "Z ते A क्रमवारी लावा", -"sortOldestToNewestDataGridFilteringLabel" : "सर्वात जुने ते नवीनतम क्रमवारी लावा", +"sortOldestToNewestDataGridFilteringLabel" : "सर्वात जुनी ते नवीनतम क्रमवारी लावा", "sortNewestToOldestDataGridFilteringLabel" : "सर्वात नवीन ते सर्वात जुने क्रमवारी लावा", -"clearFilterFromDataGridFilteringLabel" : "पासून फिल्टर साफ करा", "textFiltersDataGridFilteringLabel" : "मजकूर फिल्टर", "numberFiltersDataGridFilteringLabel" : "संख्या फिल्टर", "dateFiltersDataGridFilteringLabel" : "तारीख फिल्टर", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "आणि", "orDataGridFilteringLabel" : "किंवा", "selectAllDataGridFilteringLabel" : "सर्व निवडा", -"sortAndFilterDataGridFilteringLabel" : "क्रमवारी लावा आणि फिल्टर करा" +"sortAndFilterDataGridFilteringLabel" : "क्रमवारी लावा आणि फिल्टर करा", +"clearFilterDataGridFilteringLabel" : "फिल्टर साफ करा", +"fromDataGridFilteringLabel" : "पासून" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ms.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ms.arb index dd66cade4..a37b87045 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ms.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ms.arb @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Isih Z Hingga A", "sortOldestToNewestDataGridFilteringLabel" : "Isih Terlama Kepada Terbaharu", "sortNewestToOldestDataGridFilteringLabel" : "Susun Terbaharu Hingga Terlama", -"clearFilterFromDataGridFilteringLabel" : "Kosongkan Penapis Daripada", "textFiltersDataGridFilteringLabel" : "Penapis Teks", "numberFiltersDataGridFilteringLabel" : "Penapis Nombor", "dateFiltersDataGridFilteringLabel" : "Penapis Tarikh", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Dan", "orDataGridFilteringLabel" : "Ataupun", "selectAllDataGridFilteringLabel" : "Pilih semua", -"sortAndFilterDataGridFilteringLabel" : "Isih dan Tapis" +"sortAndFilterDataGridFilteringLabel" : "Isih dan Tapis", +"clearFilterDataGridFilteringLabel" : "Kosongkan Penapis", +"fromDataGridFilteringLabel" : "daripada" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_my.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_my.arb index 82d7470f4..aaa35542b 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_my.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_my.arb @@ -10,11 +10,11 @@ "pdfGoToPageLabel" : "စာမျက်နှာသို့သွားပါ", "pdfEnterPageNumberLabel" : "စာမျက်နှာနံပါတ်ထည့်ပါ။", "pdfInvalidPageNumberLabel" : "ကျေးဇူးပြု၍ တရားဝင်နံပါတ်တစ်ခုထည့်ပါ။", -"pdfPaginationDialogOkLabel" : "အိုကေတယ်နော်", +"pdfPaginationDialogOkLabel" : "အဆင်ပြေလား", "pdfPaginationDialogCancelLabel" : "မလုပ်တော့ပါ။", "passwordDialogHeaderTextLabel" : "စကားဝှက်ကို ကာကွယ်ထားသည်။", "passwordDialogContentLabel" : "ဤ PDF ဖိုင်ကိုဖွင့်ရန် စကားဝှက်ကို ထည့်ပါ။", -"passwordDialogHintTextLabel" : "စကားဝှက်ထည့်ပါ။", +"passwordDialogHintTextLabel" : "Password ရိုက်ထည့်ပါ။", "passwordDialogInvalidPasswordLabel" : "မမှန်ကန်သော စကားဝှက်", "pdfPasswordDialogOpenLabel" : "ဖွင့်ပါ။", "pdfPasswordDialogCancelLabel" : "မလုပ်တော့ပါ။", @@ -26,7 +26,7 @@ "allowedViewTimelineDayLabel" : "Timeline နေ့", "allowedViewTimelineWeekLabel" : "Timeline Week", "allowedViewTimelineWorkWeekLabel" : "Timeline အလုပ်ရက်သတ္တပတ်", -"allowedViewTimelineMonthLabel" : "အချိန်စာရင်းလ", +"allowedViewTimelineMonthLabel" : "Timeline လ", "todayLabel" : "ဒီနေ့", "weeknumberLabel" : "အေးလေ", "allDayLabel" : "တနေကုန်", @@ -38,7 +38,7 @@ "jumada2Label" : "Jumada al-thani", "rajabLabel" : "ရာဂျပ်", "shaabanLabel" : "Sha'aban", -"ramadanLabel" : "ရမ်ဇာန်", +"ramadanLabel" : "ရမဿွာန်", "shawwalLabel" : "Shawwal", "dhualqiLabel" : "Dhu al-Qi'dah", "dhualhiLabel" : "Dhu al-Hijjah", @@ -59,12 +59,12 @@ "pdfHyperlinkLabel" : "ဝဘ်စာမျက်နှာကိုဖွင့်ပါ။", "pdfHyperlinkContentLabel" : "စာမျက်နှာမှာ ဖွင့်ချင်ပါသလား။", "pdfHyperlinkDialogOpenLabel" : "ဖွင့်ပါ။", -"pdfHyperlinkDialogCancelLabel" : "မလုပ်တော့ပါ။", +"pdfHyperlinkDialogCancelLabel" : "မလုပ်တော့ပါ။", "afterDataGridFilteringLabel" : "ပြီးနောက်", "afterOrEqualDataGridFilteringLabel" : "ပြီးနောက် သို့မဟုတ် အနှိုင်းမဲ့", "beforeDataGridFilteringLabel" : "မီ သို့မဟုတ် သာတူညီမျှ", "beforeOrEqualDataGridFilteringLabel" : "မီ", -"beginsWithDataGridFilteringLabel" : "ဖြင့် စတင်သည်။", +"beginsWithDataGridFilteringLabel" : "ဖြင့်စတင်သည်။", "containsDataGridFilteringLabel" : "ပါရှိသည်။", "doesNotBeginWithDataGridFilteringLabel" : "ဖြင့် မစတင်ပါ။", "doesNotContainDataGridFilteringLabel" : "မပါဝင်ပါ။", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z မှ A ကိုစီပါ။", "sortOldestToNewestDataGridFilteringLabel" : "အဟောင်းဆုံးမှ အသစ်ဆုံးသို့ စီပါ။", "sortNewestToOldestDataGridFilteringLabel" : "အသစ်ဆုံးမှ အဟောင်းဆုံးသို့ စီပါ။", -"clearFilterFromDataGridFilteringLabel" : "Filter မှရှင်းလင်းပါ။", "textFiltersDataGridFilteringLabel" : "စာသားစစ်ထုတ်မှုများ", "numberFiltersDataGridFilteringLabel" : "နံပါတ် စစ်ထုတ်မှုများ", "dateFiltersDataGridFilteringLabel" : "ရက်စွဲ စစ်ထုတ်မှုများ", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "နှင့်", "orDataGridFilteringLabel" : "သို့မဟုတ်", "selectAllDataGridFilteringLabel" : "အားလုံးကို ရွေးပါ။", -"sortAndFilterDataGridFilteringLabel" : "စီစစ်ပြီး စစ်ထုတ်ပါ။" +"sortAndFilterDataGridFilteringLabel" : "စီစစ်ပြီး စစ်ထုတ်ပါ။", +"clearFilterDataGridFilteringLabel" : "Filter ကိုရှင်းလင်းပါ။", +"fromDataGridFilteringLabel" : "ထံမှ" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_nb.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_nb.arb index 65b5db5a3..07e4ff759 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_nb.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_nb.arb @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Sorter Z til A", "sortOldestToNewestDataGridFilteringLabel" : "Sorter eldste til nyeste", "sortNewestToOldestDataGridFilteringLabel" : "Sorter nyeste til eldste", -"clearFilterFromDataGridFilteringLabel" : "Tøm filter fra", "textFiltersDataGridFilteringLabel" : "Tekstfiltre", "numberFiltersDataGridFilteringLabel" : "Nummerfiltre", "dateFiltersDataGridFilteringLabel" : "Datofiltre", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Og", "orDataGridFilteringLabel" : "Eller", "selectAllDataGridFilteringLabel" : "Velg alle", -"sortAndFilterDataGridFilteringLabel" : "Sorter og filtrer" +"sortAndFilterDataGridFilteringLabel" : "Sorter og filtrer", +"clearFilterDataGridFilteringLabel" : "Tøm filter", +"fromDataGridFilteringLabel" : "Fra" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ne.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ne.arb index 8860b2405..e1509e827 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ne.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ne.arb @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z मा A क्रमबद्ध गर्नुहोस्", "sortOldestToNewestDataGridFilteringLabel" : "सबैभन्दा पुरानो देखि नयाँ क्रमबद्ध गर्नुहोस्", "sortNewestToOldestDataGridFilteringLabel" : "सबैभन्दा नयाँ देखि पुरानो क्रमबद्ध गर्नुहोस्", -"clearFilterFromDataGridFilteringLabel" : "बाट फिल्टर खाली गर्नुहोस्", "textFiltersDataGridFilteringLabel" : "पाठ फिल्टरहरू", "numberFiltersDataGridFilteringLabel" : "नम्बर फिल्टरहरू", "dateFiltersDataGridFilteringLabel" : "मिति फिल्टरहरू", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "र", "orDataGridFilteringLabel" : "वा", "selectAllDataGridFilteringLabel" : "सबै छान्नु", -"sortAndFilterDataGridFilteringLabel" : "क्रमबद्ध र फिल्टर" +"sortAndFilterDataGridFilteringLabel" : "क्रमबद्ध र फिल्टर", +"clearFilterDataGridFilteringLabel" : "फिल्टर खाली गर्नुहोस्", +"fromDataGridFilteringLabel" : "बाट" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_nl.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_nl.arb index b3a50fd15..99a30a89c 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_nl.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_nl.arb @@ -8,9 +8,9 @@ "pdfNoBookmarksLabel" : "Geen bladwijzers gevonden", "pdfScrollStatusOfLabel" : "van", "pdfGoToPageLabel" : "Ga naar pagina", -"pdfEnterPageNumberLabel" : "Voer paginanummer in", +"pdfEnterPageNumberLabel" : "Voer het paginanummer in", "pdfInvalidPageNumberLabel" : "Gelieve een geldig nummer invoeren", -"pdfPaginationDialogOkLabel" : "Oke", +"pdfPaginationDialogOkLabel" : "Oké", "pdfPaginationDialogCancelLabel" : "ANNULEREN", "passwordDialogHeaderTextLabel" : "Beschermd met een wachtwoord", "passwordDialogContentLabel" : "Voer het wachtwoord in om dit PDF-bestand te openen", @@ -22,18 +22,18 @@ "allowedViewWeekLabel" : "Week", "allowedViewWorkWeekLabel" : "Werkweek", "allowedViewMonthLabel" : "Maand", -"allowedViewScheduleLabel" : "Schema", -"allowedViewTimelineDayLabel" : "Tijdlijn Dag", -"allowedViewTimelineWeekLabel" : "Tijdlijnweek", +"allowedViewScheduleLabel" : "Schema", +"allowedViewTimelineDayLabel" : "Tijdlijn dag", +"allowedViewTimelineWeekLabel" : "Tijdlijn week", "allowedViewTimelineWorkWeekLabel" : "Tijdlijn Werkweek", "allowedViewTimelineMonthLabel" : "Tijdlijn maand", "todayLabel" : "Vandaag", "weeknumberLabel" : "Week", "allDayLabel" : "De hele dag", "muharramLabel" : "Muharram", -"safarLabel" : "Safari", -"rabi1Label" : "Rabi' al-awwali", -"rabi2Label" : "Rabi' al Thani", +"safarLabel" : "Safar", +"rabi1Label" : "Rabi' al-Awwal", +"rabi2Label" : "Rabi' al-thani", "jumada1Label" : "Jumada al-awwal", "jumada2Label" : "Jumada al-thani", "rajabLabel" : "Rajab", @@ -43,29 +43,29 @@ "dhualqiLabel" : "Dhu al-Qi'dah", "dhualhiLabel" : "Dhu al-Hijjah", "shortMuharramLabel" : "Muh.", -"shortSafarLabel" : "saf.", +"shortSafarLabel" : "Veilig", "shortRabi1Label" : "Rabi. l", "shortRabi2Label" : "Rabi. II", -"shortJumada1Label" : "jum. l", -"shortJumada2Label" : "jum. II", +"shortJumada1Label" : "Jum. l", +"shortJumada2Label" : "Jum. II", "shortRajabLabel" : "Raj.", -"shortShaabanLabel" : "scha.", +"shortShaabanLabel" : "Sha.", "shortRamadanLabel" : "RAM.", -"shortShawwalLabel" : "Sjaa.", +"shortShawwalLabel" : "Shaw.", "shortDhualqiLabel" : "Dhu'l-Q", -"shortDhualhiLabel" : "Dhu'l-H", +"shortDhualhiLabel" : "Dhul-H", "daySpanCountLabel" : "Dag", "series" : "Serie", "pdfHyperlinkLabel" : "Webpagina openen", -"pdfHyperlinkContentLabel" : "Wil je de pagina openen op", +"pdfHyperlinkContentLabel" : "Wilt u de pagina openen op", "pdfHyperlinkDialogOpenLabel" : "OPEN", "pdfHyperlinkDialogCancelLabel" : "ANNULEREN", "afterDataGridFilteringLabel" : "Na", -"afterOrEqualDataGridFilteringLabel" : "Na of gelijk aan", -"beforeDataGridFilteringLabel" : "Voor of gelijk aan", +"afterOrEqualDataGridFilteringLabel" : "Na of gelijk", +"beforeDataGridFilteringLabel" : "Voor of gelijk", "beforeOrEqualDataGridFilteringLabel" : "Voordat", "beginsWithDataGridFilteringLabel" : "Begint met", -"containsDataGridFilteringLabel" : "bevat", +"containsDataGridFilteringLabel" : "Bevat", "doesNotBeginWithDataGridFilteringLabel" : "Begint niet met", "doesNotContainDataGridFilteringLabel" : "Bevat geen", "doesNotEndWithDataGridFilteringLabel" : "Eindigt niet met", @@ -80,13 +80,12 @@ "notEmptyDataGridFilteringLabel" : "Niet leeg", "notNullDataGridFilteringLabel" : "Niet nul", "nullDataGridFilteringLabel" : "Nul", -"sortSmallestToLargestDataGridFilteringLabel" : "Sorteer van klein naar groot", +"sortSmallestToLargestDataGridFilteringLabel" : "Sorteer klein naar groot", "sortLargestToSmallestDataGridFilteringLabel" : "Sorteer van groot naar klein", -"sortAToZDataGridFilteringLabel" : "Sorteer A tot Z", +"sortAToZDataGridFilteringLabel" : "Sorteer van A tot Z", "sortZToADataGridFilteringLabel" : "Sorteer Z naar A", -"sortOldestToNewestDataGridFilteringLabel" : "Sorteer van oud naar nieuw", -"sortNewestToOldestDataGridFilteringLabel" : "Sorteer van nieuwste naar oudste", -"clearFilterFromDataGridFilteringLabel" : "Filter wissen van", +"sortOldestToNewestDataGridFilteringLabel" : "Sorteer oudste naar nieuwste", +"sortNewestToOldestDataGridFilteringLabel" : "Sorteer nieuwste naar oudste", "textFiltersDataGridFilteringLabel" : "Tekstfilters", "numberFiltersDataGridFilteringLabel" : "Nummerfilters", "dateFiltersDataGridFilteringLabel" : "Datumfilters", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "En", "orDataGridFilteringLabel" : "Of", "selectAllDataGridFilteringLabel" : "Selecteer alles", -"sortAndFilterDataGridFilteringLabel" : "Sorteren en filteren" +"sortAndFilterDataGridFilteringLabel" : "Sorteren en filteren", +"clearFilterDataGridFilteringLabel" : "Filter wissen", +"fromDataGridFilteringLabel" : "Van" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_no.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_no.arb index 65b5db5a3..07e4ff759 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_no.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_no.arb @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Sorter Z til A", "sortOldestToNewestDataGridFilteringLabel" : "Sorter eldste til nyeste", "sortNewestToOldestDataGridFilteringLabel" : "Sorter nyeste til eldste", -"clearFilterFromDataGridFilteringLabel" : "Tøm filter fra", "textFiltersDataGridFilteringLabel" : "Tekstfiltre", "numberFiltersDataGridFilteringLabel" : "Nummerfiltre", "dateFiltersDataGridFilteringLabel" : "Datofiltre", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Og", "orDataGridFilteringLabel" : "Eller", "selectAllDataGridFilteringLabel" : "Velg alle", -"sortAndFilterDataGridFilteringLabel" : "Sorter og filtrer" +"sortAndFilterDataGridFilteringLabel" : "Sorter og filtrer", +"clearFilterDataGridFilteringLabel" : "Tøm filter", +"fromDataGridFilteringLabel" : "Fra" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_or.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_or.arb index e7e15fa9b..4dbc6b91a 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_or.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_or.arb @@ -4,7 +4,7 @@ "ofDataPagerLabel" : "ର", "pagesDataPagerLabel" : "ପୃଷ୍ଠାଗୁଡ଼ିକ |", "rowsPerPageDataPagerLabel" : "ପ୍ରତି ପୃଷ୍ଠାରେ ଧାଡି |", -"pdfBookmarksLabel" : "ବୁକମାର୍କସ୍", +"pdfBookmarksLabel" : "ବୁକମାର୍କଗୁଡିକ", "pdfNoBookmarksLabel" : "କ book ଣସି ବୁକମାର୍କ ମିଳିଲା ନାହିଁ |", "pdfScrollStatusOfLabel" : "ର", "pdfGoToPageLabel" : "ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ |", @@ -30,9 +30,9 @@ "todayLabel" : "ଆଜି |", "weeknumberLabel" : "ସପ୍ତାହ", "allDayLabel" : "ଦିନ ସାରା", -"muharramLabel" : "ମୁହରାମ |", +"muharramLabel" : "ମୁହରାମ", "safarLabel" : "ସଫର |", -"rabi1Label" : "ରବି 'ଅଲ-ଆୱାଲ୍ |", +"rabi1Label" : "ରବି 'ଅଲ-ଅୱାଲ୍ |", "rabi2Label" : "ରବି 'ଅଲ-ଥାନି |", "jumada1Label" : "ଜୁମାଡା ଅଲ-ଅୱାଲ |", "jumada2Label" : "ଜୁମାଡା ଅଲ-ଥାନି |", @@ -57,7 +57,7 @@ "daySpanCountLabel" : "ଦିନ", "series" : "ସିରିଜ୍", "pdfHyperlinkLabel" : "ୱେବ୍ ପୃଷ୍ଠା ଖୋଲନ୍ତୁ |", -"pdfHyperlinkContentLabel" : "ଆପଣ ପେଜ୍ ଖୋଲିବାକୁ ଚାହୁଁଛନ୍ତି କି?", +"pdfHyperlinkContentLabel" : "ଆପଣ ପୃଷ୍ଠା ଖୋଲିବାକୁ ଚାହୁଁଛନ୍ତି କି?", "pdfHyperlinkDialogOpenLabel" : "ଖୋଲନ୍ତୁ |", "pdfHyperlinkDialogCancelLabel" : "ବାତିଲ୍", "afterDataGridFilteringLabel" : "ପରେ", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z ରୁ A ସର୍ଟ କରନ୍ତୁ |", "sortOldestToNewestDataGridFilteringLabel" : "ପୁରାତନରୁ ନୂତନକୁ ସର୍ଟ କରନ୍ତୁ |", "sortNewestToOldestDataGridFilteringLabel" : "ପୁରାତନରୁ ନୂତନକୁ ସର୍ଟ କରନ୍ତୁ |", -"clearFilterFromDataGridFilteringLabel" : "ଠାରୁ ଫିଲ୍ଟର୍ ସଫା କରନ୍ତୁ |", "textFiltersDataGridFilteringLabel" : "ପାଠ୍ୟ ଫିଲ୍ଟର୍ |", "numberFiltersDataGridFilteringLabel" : "ସଂଖ୍ୟା ଫିଲ୍ଟର୍ |", "dateFiltersDataGridFilteringLabel" : "ତାରିଖ ଫିଲ୍ଟର୍ |", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "ଏବଂ", "orDataGridFilteringLabel" : "କିମ୍ବା", "selectAllDataGridFilteringLabel" : "ସବୁ ବାଛ", -"sortAndFilterDataGridFilteringLabel" : "ସର୍ଟ ଏବଂ ଫିଲ୍ଟର୍ |" +"sortAndFilterDataGridFilteringLabel" : "ସର୍ଟ ଏବଂ ଫିଲ୍ଟର୍ |", +"clearFilterDataGridFilteringLabel" : "ଫିଲ୍ଟର୍ ସଫା କରନ୍ତୁ |", +"fromDataGridFilteringLabel" : "ଠାରୁ" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pa.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pa.arb index 848fcf526..817b7b2dc 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pa.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pa.arb @@ -25,7 +25,7 @@ "allowedViewScheduleLabel" : "ਸਮਾਸੂਚੀ, ਕਾਰਜ - ਕ੍ਰਮ", "allowedViewTimelineDayLabel" : "ਸਮਾਂਰੇਖਾ ਦਿਨ", "allowedViewTimelineWeekLabel" : "ਸਮਾਂਰੇਖਾ ਹਫ਼ਤਾ", -"allowedViewTimelineWorkWeekLabel" : "ਸਮਾਂਰੇਖਾ ਕਾਰਜ ਹਫ਼ਤਾ", +"allowedViewTimelineWorkWeekLabel" : "ਟਾਈਮਲਾਈਨ ਕੰਮ ਹਫ਼ਤਾ", "allowedViewTimelineMonthLabel" : "ਸਮਾਂਰੇਖਾ ਮਹੀਨਾ", "todayLabel" : "ਅੱਜ", "weeknumberLabel" : "ਹਫ਼ਤਾ", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z ਤੋਂ A ਨੂੰ ਕ੍ਰਮਬੱਧ ਕਰੋ", "sortOldestToNewestDataGridFilteringLabel" : "ਸਭ ਤੋਂ ਪੁਰਾਣੇ ਤੋਂ ਨਵੀਨਤਮ ਕ੍ਰਮਬੱਧ ਕਰੋ", "sortNewestToOldestDataGridFilteringLabel" : "ਸਭ ਤੋਂ ਨਵੇਂ ਤੋਂ ਪੁਰਾਣੇ ਨੂੰ ਕ੍ਰਮਬੱਧ ਕਰੋ", -"clearFilterFromDataGridFilteringLabel" : "ਤੋਂ ਫਿਲਟਰ ਸਾਫ਼ ਕਰੋ", "textFiltersDataGridFilteringLabel" : "ਟੈਕਸਟ ਫਿਲਟਰ", "numberFiltersDataGridFilteringLabel" : "ਨੰਬਰ ਫਿਲਟਰ", "dateFiltersDataGridFilteringLabel" : "ਮਿਤੀ ਫਿਲਟਰ", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "ਅਤੇ", "orDataGridFilteringLabel" : "ਜਾਂ", "selectAllDataGridFilteringLabel" : "ਸਾਰਿਆ ਨੂੰ ਚੁਣੋ", -"sortAndFilterDataGridFilteringLabel" : "ਕ੍ਰਮਬੱਧ ਅਤੇ ਫਿਲਟਰ" +"sortAndFilterDataGridFilteringLabel" : "ਕ੍ਰਮਬੱਧ ਅਤੇ ਫਿਲਟਰ", +"clearFilterDataGridFilteringLabel" : "ਫਿਲਟਰ ਸਾਫ਼ ਕਰੋ", +"fromDataGridFilteringLabel" : "ਤੋਂ" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pl.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pl.arb index 2582765ee..b39592b6c 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pl.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pl.arb @@ -1,5 +1,5 @@ { -"noSelectedDateCalendarLabel" : "Nie wybrano daty", +"noSelectedDateCalendarLabel" : "Brak wybranej daty", "noEventsCalendarLabel" : "Brak wydarzeń", "ofDataPagerLabel" : "z", "pagesDataPagerLabel" : "strony", @@ -8,61 +8,61 @@ "pdfNoBookmarksLabel" : "Nie znaleziono zakładek", "pdfScrollStatusOfLabel" : "z", "pdfGoToPageLabel" : "Idź do strony", -"pdfEnterPageNumberLabel" : "Wpisz numer strony", +"pdfEnterPageNumberLabel" : "Wprowadź numer strony", "pdfInvalidPageNumberLabel" : "Proszę wprowadzić poprawny numer", -"pdfPaginationDialogOkLabel" : "ok", -"pdfPaginationDialogCancelLabel" : "ANULUJ", +"pdfPaginationDialogOkLabel" : "OK", +"pdfPaginationDialogCancelLabel" : "ANULOWAĆ", "passwordDialogHeaderTextLabel" : "Hasło chronione", "passwordDialogContentLabel" : "Wprowadź hasło, aby otworzyć ten plik PDF", "passwordDialogHintTextLabel" : "Wprowadź hasło", "passwordDialogInvalidPasswordLabel" : "nieprawidłowe hasło", "pdfPasswordDialogOpenLabel" : "OTWARTY", -"pdfPasswordDialogCancelLabel" : "ANULUJ", +"pdfPasswordDialogCancelLabel" : "ANULOWAĆ", "allowedViewDayLabel" : "Dzień", "allowedViewWeekLabel" : "Tydzień", "allowedViewWorkWeekLabel" : "Tydzień pracy", "allowedViewMonthLabel" : "Miesiąc", "allowedViewScheduleLabel" : "Harmonogram", "allowedViewTimelineDayLabel" : "Dzień osi czasu", -"allowedViewTimelineWeekLabel" : "Tydzień na osi czasu", +"allowedViewTimelineWeekLabel" : "Tydzień osi czasu", "allowedViewTimelineWorkWeekLabel" : "Tydzień pracy na osi czasu", "allowedViewTimelineMonthLabel" : "Miesiąc osi czasu", "todayLabel" : "Dziś", "weeknumberLabel" : "Tydzień", "allDayLabel" : "Cały dzień", -"muharramLabel" : "Muharram", +"muharramLabel" : "muharrama", "safarLabel" : "Safar", -"rabi1Label" : "Rabi' al-awwal", -"rabi2Label" : "Rabi’ al-thani", +"rabi1Label" : "Rabi al-awwal", +"rabi2Label" : "Rabi' al-thani", "jumada1Label" : "Jumada al-awwal", -"jumada2Label" : "Jumada al-thani", -"rajabLabel" : "Rajab", -"shaabanLabel" : "Szaaban", +"jumada2Label" : "Jumada al Thani", +"rajabLabel" : "Radżab", +"shaabanLabel" : "Sha'aban", "ramadanLabel" : "Ramadan", "shawwalLabel" : "Shawwal", -"dhualqiLabel" : "Zu al-Qi'dah", -"dhualhiLabel" : "Zu al-Hidżdżah", +"dhualqiLabel" : "Dhu al-Qi'dah", +"dhualhiLabel" : "Du al-Hijjah", "shortMuharramLabel" : "Muh.", -"shortSafarLabel" : "Saf.", -"shortRabi1Label" : "Rabi. i", +"shortSafarLabel" : "bezpieczny", +"shortRabi1Label" : "Rabi. I", "shortRabi2Label" : "Rabi. II", -"shortJumada1Label" : "Skok. i", -"shortJumada2Label" : "Skok. II", +"shortJumada1Label" : "sok. I", +"shortJumada2Label" : "sok. II", "shortRajabLabel" : "Raj.", "shortShaabanLabel" : "Sha.", "shortRamadanLabel" : "Baran.", -"shortShawwalLabel" : "Shaw.", +"shortShawwalLabel" : "Shawa.", "shortDhualqiLabel" : "Dhu'l-Q", "shortDhualhiLabel" : "Dhu'l-H", "daySpanCountLabel" : "Dzień", "series" : "Seria", "pdfHyperlinkLabel" : "Otwórz stronę internetową", -"pdfHyperlinkContentLabel" : "Czy chcesz otworzyć stronę pod adresem?", +"pdfHyperlinkContentLabel" : "Czy chcesz otworzyć stronę o godz", "pdfHyperlinkDialogOpenLabel" : "OTWARTY", -"pdfHyperlinkDialogCancelLabel" : "ANULUJ", +"pdfHyperlinkDialogCancelLabel" : "ANULOWAĆ", "afterDataGridFilteringLabel" : "Później", "afterOrEqualDataGridFilteringLabel" : "Po lub równe", -"beforeDataGridFilteringLabel" : "Przed lub Równe", +"beforeDataGridFilteringLabel" : "Przed Lub Równy", "beforeOrEqualDataGridFilteringLabel" : "Zanim", "beginsWithDataGridFilteringLabel" : "Zaczyna się z", "containsDataGridFilteringLabel" : "Zawiera", @@ -76,27 +76,28 @@ "greaterThanDataGridFilteringLabel" : "Lepszy niż", "greaterThanOrEqualDataGridFilteringLabel" : "Większe lub równe", "lessThanDataGridFilteringLabel" : "Mniej niż", -"lessThanOrEqualDataGridFilteringLabel" : "Mniej niż lub równe", +"lessThanOrEqualDataGridFilteringLabel" : "Mniej niż lub równo", "notEmptyDataGridFilteringLabel" : "Nie pusty", "notNullDataGridFilteringLabel" : "Nie jest zerem", "nullDataGridFilteringLabel" : "Zero", "sortSmallestToLargestDataGridFilteringLabel" : "Sortuj od najmniejszego do największego", "sortLargestToSmallestDataGridFilteringLabel" : "Sortuj od największego do najmniejszego", "sortAToZDataGridFilteringLabel" : "Sortuj od A do Z", -"sortZToADataGridFilteringLabel" : "Sortuj Z do A", -"sortOldestToNewestDataGridFilteringLabel" : "Sortuj od najstarszego do najnowszego", +"sortZToADataGridFilteringLabel" : "Sortuj od Z do A", +"sortOldestToNewestDataGridFilteringLabel" : "Sortuj od najstarszych do najnowszych", "sortNewestToOldestDataGridFilteringLabel" : "Sortuj od najnowszych do najstarszych", -"clearFilterFromDataGridFilteringLabel" : "Wyczyść filtr z", "textFiltersDataGridFilteringLabel" : "Filtry tekstowe", -"numberFiltersDataGridFilteringLabel" : "Filtry liczb", +"numberFiltersDataGridFilteringLabel" : "Filtry liczbowe", "dateFiltersDataGridFilteringLabel" : "Filtry daty", "searchDataGridFilteringLabel" : "Szukaj", "noMatchesDataGridFilteringLabel" : "Brak wyników", "okDataGridFilteringLabel" : "OK", "cancelDataGridFilteringLabel" : "Anulować", -"showRowsWhereDataGridFilteringLabel" : "Pokaż wiersze, w których", +"showRowsWhereDataGridFilteringLabel" : "Pokaż wiersze gdzie", "andDataGridFilteringLabel" : "I", "orDataGridFilteringLabel" : "Lub", "selectAllDataGridFilteringLabel" : "Zaznacz wszystko", -"sortAndFilterDataGridFilteringLabel" : "Sortuj i filtruj" +"sortAndFilterDataGridFilteringLabel" : "Sortuj i filtruj", +"clearFilterDataGridFilteringLabel" : "Czysty filtr", +"fromDataGridFilteringLabel" : "Z" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ps.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ps.arb index 779523639..9b96133a7 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ps.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ps.arb @@ -7,17 +7,17 @@ "pdfBookmarksLabel" : "بک مارکونه", "pdfNoBookmarksLabel" : "هیڅ بک مارک ونه موندل شو", "pdfScrollStatusOfLabel" : "د", -"pdfGoToPageLabel" : "پاڼې ته لاړ شئ", +"pdfGoToPageLabel" : "مخ ته لاړ شئ", "pdfEnterPageNumberLabel" : "د پاڼې شمیره دننه کړئ", "pdfInvalidPageNumberLabel" : "مهرباني وکړئ یو باوري شمیره دننه کړئ", "pdfPaginationDialogOkLabel" : "سمه ده", -"pdfPaginationDialogCancelLabel" : "لغوه کول", +"pdfPaginationDialogCancelLabel" : "فسخه کول", "passwordDialogHeaderTextLabel" : "پټنوم خوندي شوی", "passwordDialogContentLabel" : "د دې پی ډی ایف فایل خلاصولو لپاره پاسورډ دننه کړئ", "passwordDialogHintTextLabel" : "پاسورډ دننه کړئ", "passwordDialogInvalidPasswordLabel" : "بې اعتباره پټنوم", "pdfPasswordDialogOpenLabel" : "خلاص", -"pdfPasswordDialogCancelLabel" : "لغوه کول", +"pdfPasswordDialogCancelLabel" : "فسخه کول", "allowedViewDayLabel" : "ورځ", "allowedViewWeekLabel" : "اونۍ", "allowedViewWorkWeekLabel" : "کاري اونۍ", @@ -34,7 +34,7 @@ "safarLabel" : "صفر", "rabi1Label" : "ربیع الاول", "rabi2Label" : "ربیع الثاني", -"jumada1Label" : "جمادی الاول", +"jumada1Label" : "جمعه الاول", "jumada2Label" : "جمعه الثاني", "rajabLabel" : "رجب", "shaabanLabel" : "شعبان", @@ -44,8 +44,8 @@ "dhualhiLabel" : "ذوالحجې", "shortMuharramLabel" : "Muh.", "shortSafarLabel" : "سف", -"shortRabi1Label" : "ربیع زه", -"shortRabi2Label" : "ربیع II", +"shortRabi1Label" : "ربیع. زه", +"shortRabi2Label" : "ربیع. II", "shortJumada1Label" : "جم. زه", "shortJumada2Label" : "جم. II", "shortRajabLabel" : "راج.", @@ -57,9 +57,9 @@ "daySpanCountLabel" : "ورځ", "series" : "لړۍ", "pdfHyperlinkLabel" : "ویب پاڼه پرانیزئ", -"pdfHyperlinkContentLabel" : "ایا تاسو غواړئ چې پاڼه پرانیزئ", +"pdfHyperlinkContentLabel" : "ایا تاسو غواړئ پاڼه پرانیزئ", "pdfHyperlinkDialogOpenLabel" : "خلاص", -"pdfHyperlinkDialogCancelLabel" : "فسخه کول", +"pdfHyperlinkDialogCancelLabel" : "فسخه کول", "afterDataGridFilteringLabel" : "وروسته", "afterOrEqualDataGridFilteringLabel" : "وروسته یا مساوي", "beforeDataGridFilteringLabel" : "مخکې یا مساوي", @@ -77,7 +77,7 @@ "greaterThanOrEqualDataGridFilteringLabel" : "په پرتله لوی یا مساوي", "lessThanDataGridFilteringLabel" : "په پرتله لږ", "lessThanOrEqualDataGridFilteringLabel" : "لږ یا مساوي", -"notEmptyDataGridFilteringLabel" : "خالي نه", +"notEmptyDataGridFilteringLabel" : "نه خالي", "notNullDataGridFilteringLabel" : "نه نول", "nullDataGridFilteringLabel" : "نول", "sortSmallestToLargestDataGridFilteringLabel" : "له کوچنی څخه تر ټولو لوی ترتیب کړئ", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "له Z څخه A ترتیب کړئ", "sortOldestToNewestDataGridFilteringLabel" : "له زاړه څخه تر نوي پورې ترتیب کړئ", "sortNewestToOldestDataGridFilteringLabel" : "له نوي څخه تر ټولو زوړ ترتیب کړئ", -"clearFilterFromDataGridFilteringLabel" : "له دې څخه فلټر پاک کړئ", "textFiltersDataGridFilteringLabel" : "د متن فلټرونه", "numberFiltersDataGridFilteringLabel" : "د شمیر فلټرونه", "dateFiltersDataGridFilteringLabel" : "د نیټې فلټرونه", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "او", "orDataGridFilteringLabel" : "یا", "selectAllDataGridFilteringLabel" : "ټول وټاکئ", -"sortAndFilterDataGridFilteringLabel" : "ترتیب او فلټر کړئ" +"sortAndFilterDataGridFilteringLabel" : "ترتیب او فلټر کړئ", +"clearFilterDataGridFilteringLabel" : "فلټر پاک کړئ", +"fromDataGridFilteringLabel" : "څخه" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pt.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pt.arb index 6a8d712d3..f1f5ecc21 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pt.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pt.arb @@ -1,14 +1,14 @@ { "noSelectedDateCalendarLabel" : "Nenhuma data selecionada", "noEventsCalendarLabel" : "Sem eventos", -"ofDataPagerLabel" : "do", +"ofDataPagerLabel" : "do", "pagesDataPagerLabel" : "Páginas", "rowsPerPageDataPagerLabel" : "Linhas por página", "pdfBookmarksLabel" : "Favoritos", "pdfNoBookmarksLabel" : "Nenhum favorito encontrado", -"pdfScrollStatusOfLabel" : "do", +"pdfScrollStatusOfLabel" : "do", "pdfGoToPageLabel" : "Vá para página", -"pdfEnterPageNumberLabel" : "Digite o número da página", +"pdfEnterPageNumberLabel" : "Insira o número da página", "pdfInvalidPageNumberLabel" : "Por favor insira um número válido", "pdfPaginationDialogOkLabel" : "OK", "pdfPaginationDialogCancelLabel" : "CANCELAR", @@ -22,11 +22,11 @@ "allowedViewWeekLabel" : "Semana", "allowedViewWorkWeekLabel" : "Semana de trabalho", "allowedViewMonthLabel" : "Mês", -"allowedViewScheduleLabel" : "Agendar", +"allowedViewScheduleLabel" : "Cronograma", "allowedViewTimelineDayLabel" : "Dia da linha do tempo", -"allowedViewTimelineWeekLabel" : "Semana da linha do tempo", -"allowedViewTimelineWorkWeekLabel" : "Semana de trabalho da linha do tempo", -"allowedViewTimelineMonthLabel" : "Mês da linha do tempo", +"allowedViewTimelineWeekLabel" : "Semana Cronológica", +"allowedViewTimelineWorkWeekLabel" : "Cronograma Semana de Trabalho", +"allowedViewTimelineMonthLabel" : "Cronograma Mês", "todayLabel" : "Hoje", "weeknumberLabel" : "Semana", "allDayLabel" : "Dia todo", @@ -43,10 +43,10 @@ "dhualqiLabel" : "Dhu al-Qi'dah", "dhualhiLabel" : "Dhu al-Hijjah", "shortMuharramLabel" : "Muh.", -"shortSafarLabel" : "Saf.", -"shortRabi1Label" : "Rabino. eu", -"shortRabi2Label" : "Rabino. II", -"shortJumada1Label" : "Jum. eu", +"shortSafarLabel" : "seguro", +"shortRabi1Label" : "Rabi. EU", +"shortRabi2Label" : "Rabi. II", +"shortJumada1Label" : "Jum. EU", "shortJumada2Label" : "Jum. II", "shortRajabLabel" : "Raj.", "shortShaabanLabel" : "Sha.", @@ -61,11 +61,11 @@ "pdfHyperlinkDialogOpenLabel" : "ABRIR", "pdfHyperlinkDialogCancelLabel" : "CANCELAR", "afterDataGridFilteringLabel" : "Depois", -"afterOrEqualDataGridFilteringLabel" : "Depois ou igual", -"beforeDataGridFilteringLabel" : "Antes ou igual", +"afterOrEqualDataGridFilteringLabel" : "Depois Ou Igual", +"beforeDataGridFilteringLabel" : "Antes Ou Igual", "beforeOrEqualDataGridFilteringLabel" : "Antes da", "beginsWithDataGridFilteringLabel" : "Começa com", -"containsDataGridFilteringLabel" : "Contém", +"containsDataGridFilteringLabel" : "contém", "doesNotBeginWithDataGridFilteringLabel" : "Não começa com", "doesNotContainDataGridFilteringLabel" : "Não contém", "doesNotEndWithDataGridFilteringLabel" : "Não termina com", @@ -81,15 +81,14 @@ "notNullDataGridFilteringLabel" : "Não nulo", "nullDataGridFilteringLabel" : "Nulo", "sortSmallestToLargestDataGridFilteringLabel" : "Classificar do menor para o maior", -"sortLargestToSmallestDataGridFilteringLabel" : "Classificar do maior para o menor", -"sortAToZDataGridFilteringLabel" : "Classificar de A a Z", -"sortZToADataGridFilteringLabel" : "Ordenar Z para A", +"sortLargestToSmallestDataGridFilteringLabel" : "Ordenar do maior para o menor", +"sortAToZDataGridFilteringLabel" : "Ordenar de A a Z", +"sortZToADataGridFilteringLabel" : "Ordenar de Z a A", "sortOldestToNewestDataGridFilteringLabel" : "Classificar do mais antigo para o mais recente", -"sortNewestToOldestDataGridFilteringLabel" : "Classificar do mais novo para o mais antigo", -"clearFilterFromDataGridFilteringLabel" : "Limpar filtro de", +"sortNewestToOldestDataGridFilteringLabel" : "Ordenar do mais recente ao mais antigo", "textFiltersDataGridFilteringLabel" : "Filtros de texto", "numberFiltersDataGridFilteringLabel" : "Filtros de número", -"dateFiltersDataGridFilteringLabel" : "Filtros de data", +"dateFiltersDataGridFilteringLabel" : "Filtros de Data", "searchDataGridFilteringLabel" : "Procurar", "noMatchesDataGridFilteringLabel" : "Sem combinações", "okDataGridFilteringLabel" : "OK", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "E", "orDataGridFilteringLabel" : "Ou", "selectAllDataGridFilteringLabel" : "Selecionar tudo", -"sortAndFilterDataGridFilteringLabel" : "Classificar e filtrar" +"sortAndFilterDataGridFilteringLabel" : "Classificar e Filtrar", +"clearFilterDataGridFilteringLabel" : "Filtro limpo", +"fromDataGridFilteringLabel" : "A partir de" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pt_PT.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pt_PT.arb index 07c58a283..4150bcff2 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pt_PT.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_pt_PT.arb @@ -1,22 +1,22 @@ { "noSelectedDateCalendarLabel" : "Nenhuma data selecionada", -"noEventsCalendarLabel" : "Nenhum evento", -"ofDataPagerLabel" : "de", -"pagesDataPagerLabel" : "páginas", +"noEventsCalendarLabel" : "Sem eventos", +"ofDataPagerLabel" : "do", +"pagesDataPagerLabel" : "Páginas", "rowsPerPageDataPagerLabel" : "Linhas por página", -"pdfBookmarksLabel" : "Marcadores", +"pdfBookmarksLabel" : "Favoritos", "pdfNoBookmarksLabel" : "Nenhum favorito encontrado", -"pdfScrollStatusOfLabel" : "de", -"pdfGoToPageLabel" : "Ir para a página", +"pdfScrollStatusOfLabel" : "do", +"pdfGoToPageLabel" : "Vá para página", "pdfEnterPageNumberLabel" : "Digite o número da página", -"pdfInvalidPageNumberLabel" : "Insira um número válido", +"pdfInvalidPageNumberLabel" : "Por favor insira um número válido", "pdfPaginationDialogOkLabel" : "OK", "pdfPaginationDialogCancelLabel" : "CANCELAR", "passwordDialogHeaderTextLabel" : "Protegido por senha", "passwordDialogContentLabel" : "Digite a senha para abrir este arquivo PDF", "passwordDialogHintTextLabel" : "Digite a senha", -"passwordDialogInvalidPasswordLabel" : "Senha inválida", -"pdfPasswordDialogOpenLabel" : "ABERTO", +"passwordDialogInvalidPasswordLabel" : "senha inválida", +"pdfPasswordDialogOpenLabel" : "ABRIR", "pdfPasswordDialogCancelLabel" : "CANCELAR", "allowedViewDayLabel" : "Dia", "allowedViewWeekLabel" : "Semana", @@ -24,12 +24,12 @@ "allowedViewMonthLabel" : "Mês", "allowedViewScheduleLabel" : "Cronograma", "allowedViewTimelineDayLabel" : "Dia da linha do tempo", -"allowedViewTimelineWeekLabel" : "Semana da linha do tempo", -"allowedViewTimelineWorkWeekLabel" : "Semana de trabalho da linha do tempo", -"allowedViewTimelineMonthLabel" : "Mês da linha do tempo", +"allowedViewTimelineWeekLabel" : "Semana Cronológica", +"allowedViewTimelineWorkWeekLabel" : "Cronograma Semana de Trabalho", +"allowedViewTimelineMonthLabel" : "Cronograma Mês", "todayLabel" : "Hoje", "weeknumberLabel" : "Semana", -"allDayLabel" : "Todo o dia", +"allDayLabel" : "Dia todo", "muharramLabel" : "Muharram", "safarLabel" : "Safar", "rabi1Label" : "Rabi' al-awwal", @@ -43,14 +43,14 @@ "dhualqiLabel" : "Dhu al-Qi'dah", "dhualhiLabel" : "Dhu al-Hijjah", "shortMuharramLabel" : "Muh.", -"shortSafarLabel" : "Saf.", -"shortRabi1Label" : "Rabino. eu", -"shortRabi2Label" : "Rabino. II", -"shortJumada1Label" : "Jum. eu", +"shortSafarLabel" : "seguro", +"shortRabi1Label" : "Rabi. EU", +"shortRabi2Label" : "Rabi. II", +"shortJumada1Label" : "Jum. EU", "shortJumada2Label" : "Jum. II", "shortRajabLabel" : "Raj.", "shortShaabanLabel" : "Sha.", -"shortRamadanLabel" : "Carneiro.", +"shortRamadanLabel" : "RAM.", "shortShawwalLabel" : "Shaw.", "shortDhualqiLabel" : "Dhu'l-Q", "shortDhualhiLabel" : "Dhu'l-H", @@ -61,11 +61,11 @@ "pdfHyperlinkDialogOpenLabel" : "ABRIR", "pdfHyperlinkDialogCancelLabel" : "CANCELAR", "afterDataGridFilteringLabel" : "Depois", -"afterOrEqualDataGridFilteringLabel" : "Depois ou igual", -"beforeDataGridFilteringLabel" : "Antes ou igual", +"afterOrEqualDataGridFilteringLabel" : "Depois Ou Igual", +"beforeDataGridFilteringLabel" : "Antes Ou Igual", "beforeOrEqualDataGridFilteringLabel" : "Antes da", "beginsWithDataGridFilteringLabel" : "Começa com", -"containsDataGridFilteringLabel" : "Contém", +"containsDataGridFilteringLabel" : "contém", "doesNotBeginWithDataGridFilteringLabel" : "Não começa com", "doesNotContainDataGridFilteringLabel" : "Não contém", "doesNotEndWithDataGridFilteringLabel" : "Não termina com", @@ -81,15 +81,14 @@ "notNullDataGridFilteringLabel" : "Não nulo", "nullDataGridFilteringLabel" : "Nulo", "sortSmallestToLargestDataGridFilteringLabel" : "Classificar do menor para o maior", -"sortLargestToSmallestDataGridFilteringLabel" : "Classificar do maior para o menor", -"sortAToZDataGridFilteringLabel" : "Classificar de A a Z", -"sortZToADataGridFilteringLabel" : "Ordenar Z para A", +"sortLargestToSmallestDataGridFilteringLabel" : "Ordenar do maior para o menor", +"sortAToZDataGridFilteringLabel" : "Ordenar de A a Z", +"sortZToADataGridFilteringLabel" : "Ordenar de Z a A", "sortOldestToNewestDataGridFilteringLabel" : "Classificar do mais antigo para o mais recente", -"sortNewestToOldestDataGridFilteringLabel" : "Classificar do mais novo para o mais antigo", -"clearFilterFromDataGridFilteringLabel" : "Limpar filtro de", +"sortNewestToOldestDataGridFilteringLabel" : "Ordenar do mais recente ao mais antigo", "textFiltersDataGridFilteringLabel" : "Filtros de texto", "numberFiltersDataGridFilteringLabel" : "Filtros de número", -"dateFiltersDataGridFilteringLabel" : "Filtros de data", +"dateFiltersDataGridFilteringLabel" : "Filtros de Data", "searchDataGridFilteringLabel" : "Procurar", "noMatchesDataGridFilteringLabel" : "Sem combinações", "okDataGridFilteringLabel" : "OK", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "E", "orDataGridFilteringLabel" : "Ou", "selectAllDataGridFilteringLabel" : "Selecionar tudo", -"sortAndFilterDataGridFilteringLabel" : "Classificar e filtrar" +"sortAndFilterDataGridFilteringLabel" : "Classificar e Filtrar", +"clearFilterDataGridFilteringLabel" : "Filtro limpo", +"fromDataGridFilteringLabel" : "A partir de" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ro.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ro.arb index db9cb0d34..063493089 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ro.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ro.arb @@ -10,7 +10,7 @@ "pdfGoToPageLabel" : "Mergi la pagina", "pdfEnterPageNumberLabel" : "Introduceți numărul paginii", "pdfInvalidPageNumberLabel" : "Vă rugăm să introduceți un număr valid", -"pdfPaginationDialogOkLabel" : "Bine", +"pdfPaginationDialogOkLabel" : "O.K", "pdfPaginationDialogCancelLabel" : "ANULARE", "passwordDialogHeaderTextLabel" : "Protectie cu parola", "passwordDialogContentLabel" : "Introduceți parola pentru a deschide acest fișier PDF", @@ -27,7 +27,7 @@ "allowedViewTimelineWeekLabel" : "Săptămâna cronologică", "allowedViewTimelineWorkWeekLabel" : "Cronologie Săptămâna de lucru", "allowedViewTimelineMonthLabel" : "Cronologie Luna", -"todayLabel" : "Azi", +"todayLabel" : "Astăzi", "weeknumberLabel" : "Săptămână", "allDayLabel" : "Toată ziua", "muharramLabel" : "Muharram", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Sortați de la Z la A", "sortOldestToNewestDataGridFilteringLabel" : "Sortați de la cel mai vechi la cel mai nou", "sortNewestToOldestDataGridFilteringLabel" : "Sortați de la cel mai nou la cel mai vechi", -"clearFilterFromDataGridFilteringLabel" : "Ștergeți Filtrul de la", "textFiltersDataGridFilteringLabel" : "Filtre de text", "numberFiltersDataGridFilteringLabel" : "Filtre de numere", "dateFiltersDataGridFilteringLabel" : "Filtre de dată", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Și", "orDataGridFilteringLabel" : "Sau", "selectAllDataGridFilteringLabel" : "Selectează tot", -"sortAndFilterDataGridFilteringLabel" : "Sortați și filtrați" +"sortAndFilterDataGridFilteringLabel" : "Sortați și filtrați", +"clearFilterDataGridFilteringLabel" : "Șterge filtrul", +"fromDataGridFilteringLabel" : "Din" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ru.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ru.arb index 9c968a782..9f10d9f31 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ru.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ru.arb @@ -10,16 +10,16 @@ "pdfGoToPageLabel" : "Перейти на страницу", "pdfEnterPageNumberLabel" : "Введите номер страницы", "pdfInvalidPageNumberLabel" : "пожалуйста введите правильное число", -"pdfPaginationDialogOkLabel" : "Ok", +"pdfPaginationDialogOkLabel" : "ХОРОШО", "pdfPaginationDialogCancelLabel" : "ОТМЕНИТЬ", "passwordDialogHeaderTextLabel" : "Пароль защищен", "passwordDialogContentLabel" : "Введите пароль, чтобы открыть этот файл PDF", "passwordDialogHintTextLabel" : "Введите пароль", -"passwordDialogInvalidPasswordLabel" : "неправильный пароль", +"passwordDialogInvalidPasswordLabel" : "Неверный пароль", "pdfPasswordDialogOpenLabel" : "ОТКРЫТЫМ", -"pdfPasswordDialogCancelLabel" : "ОТМЕНИТЬ", +"pdfPasswordDialogCancelLabel" : "ОТМЕНИТЬ", "allowedViewDayLabel" : "День", -"allowedViewWeekLabel" : "Неделю", +"allowedViewWeekLabel" : "Неделя", "allowedViewWorkWeekLabel" : "Рабочая неделя", "allowedViewMonthLabel" : "Месяц", "allowedViewScheduleLabel" : "Расписание", @@ -28,7 +28,7 @@ "allowedViewTimelineWorkWeekLabel" : "Рабочая неделя", "allowedViewTimelineMonthLabel" : "Месяц", "todayLabel" : "Сегодня", -"weeknumberLabel" : "Неделю", +"weeknumberLabel" : "Неделя", "allDayLabel" : "Весь день", "muharramLabel" : "Мухаррам", "safarLabel" : "Сафар", @@ -50,19 +50,19 @@ "shortJumada2Label" : "Джум. II", "shortRajabLabel" : "Радж.", "shortShaabanLabel" : "Ша.", -"shortRamadanLabel" : "ОЗУ.", +"shortRamadanLabel" : "Баран.", "shortShawwalLabel" : "Шоу.", "shortDhualqiLabel" : "Зуль-Кью", "shortDhualhiLabel" : "Зуль-Х", "daySpanCountLabel" : "День", -"series" : "Ряд", +"series" : "Серии", "pdfHyperlinkLabel" : "Открыть веб-страницу", "pdfHyperlinkContentLabel" : "Вы хотите открыть страницу в", "pdfHyperlinkDialogOpenLabel" : "ОТКРЫТЫМ", -"pdfHyperlinkDialogCancelLabel" : "ОТМЕНА", +"pdfHyperlinkDialogCancelLabel" : "ОТМЕНИТЬ", "afterDataGridFilteringLabel" : "После", "afterOrEqualDataGridFilteringLabel" : "После или равно", -"beforeDataGridFilteringLabel" : "Раньше или равно", +"beforeDataGridFilteringLabel" : "Перед или равным", "beforeOrEqualDataGridFilteringLabel" : "До", "beginsWithDataGridFilteringLabel" : "Начинается с", "containsDataGridFilteringLabel" : "Содержит", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Сортировать от Я до А", "sortOldestToNewestDataGridFilteringLabel" : "Сортировать от старых к новым", "sortNewestToOldestDataGridFilteringLabel" : "Сортировать от новых к старым", -"clearFilterFromDataGridFilteringLabel" : "Очистить фильтр от", "textFiltersDataGridFilteringLabel" : "Текстовые фильтры", "numberFiltersDataGridFilteringLabel" : "Числовые фильтры", "dateFiltersDataGridFilteringLabel" : "Фильтры даты", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "А также", "orDataGridFilteringLabel" : "Или же", "selectAllDataGridFilteringLabel" : "Выбрать все", -"sortAndFilterDataGridFilteringLabel" : "Сортировка и фильтрация" +"sortAndFilterDataGridFilteringLabel" : "Сортировка и фильтрация", +"clearFilterDataGridFilteringLabel" : "Очистить фильтр", +"fromDataGridFilteringLabel" : "Из" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_si.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_si.arb index d405ed3fc..52edcc2e3 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_si.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_si.arb @@ -18,7 +18,7 @@ "passwordDialogInvalidPasswordLabel" : "වලංගු නොවන මුරපදය", "pdfPasswordDialogOpenLabel" : "විවෘත", "pdfPasswordDialogCancelLabel" : "අවලංගු කරන්න", -"allowedViewDayLabel" : "දිනය", +"allowedViewDayLabel" : "දින", "allowedViewWeekLabel" : "සතිය", "allowedViewWorkWeekLabel" : "වැඩ සතිය", "allowedViewMonthLabel" : "මාසික", @@ -41,7 +41,7 @@ "ramadanLabel" : "රාමසාන්", "shawwalLabel" : "ෂව්වාල්", "dhualqiLabel" : "Dhu al-Qi'dah", -"dhualhiLabel" : "Dhu al-Hijjah", +"dhualhiLabel" : "ඩු අල්-හිජ්ජා", "shortMuharramLabel" : "මුහ්", "shortSafarLabel" : "Saf.", "shortRabi1Label" : "රබී. මම", @@ -54,7 +54,7 @@ "shortShawwalLabel" : "ෂෝ.", "shortDhualqiLabel" : "දුල්-කිව්", "shortDhualhiLabel" : "දුල්-එච්", -"daySpanCountLabel" : "දිනය", +"daySpanCountLabel" : "දින", "series" : "මාලාවක්", "pdfHyperlinkLabel" : "වෙබ් පිටුව විවෘත කරන්න", "pdfHyperlinkContentLabel" : "ඔබට පිටුව විවෘත කිරීමට අවශ්‍යද", @@ -81,12 +81,11 @@ "notNullDataGridFilteringLabel" : "Null නොවේ", "nullDataGridFilteringLabel" : "ශුන්‍ය", "sortSmallestToLargestDataGridFilteringLabel" : "කුඩාම සිට විශාල දක්වා වර්ග කරන්න", -"sortLargestToSmallestDataGridFilteringLabel" : "ලොකුම සිට කුඩාම දක්වා වර්ග කරන්න", +"sortLargestToSmallestDataGridFilteringLabel" : "විශාලතම සිට කුඩාම දක්වා වර්ග කරන්න", "sortAToZDataGridFilteringLabel" : "A සිට Z දක්වා වර්ග කරන්න", "sortZToADataGridFilteringLabel" : "Z සිට A දක්වා වර්ග කරන්න", "sortOldestToNewestDataGridFilteringLabel" : "පැරණිතම සිට අලුත්ම දක්වා වර්ග කරන්න", "sortNewestToOldestDataGridFilteringLabel" : "අලුත්ම සිට පැරණිම දක්වා වර්ග කරන්න", -"clearFilterFromDataGridFilteringLabel" : "වෙතින් පෙරහන ඉවත් කරන්න", "textFiltersDataGridFilteringLabel" : "පෙළ පෙරහන්", "numberFiltersDataGridFilteringLabel" : "අංක පෙරහන්", "dateFiltersDataGridFilteringLabel" : "දින පෙරහන්", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "හා", "orDataGridFilteringLabel" : "හෝ", "selectAllDataGridFilteringLabel" : "සියල්ල තෝරන්න", -"sortAndFilterDataGridFilteringLabel" : "වර්ග කිරීම සහ පෙරීම" +"sortAndFilterDataGridFilteringLabel" : "වර්ග කිරීම සහ පෙරීම", +"clearFilterDataGridFilteringLabel" : "පෙරහන හිස් කරන්න", +"fromDataGridFilteringLabel" : "සිට" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sk.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sk.arb index 55e8df4c2..9d5753ea4 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sk.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sk.arb @@ -1,5 +1,5 @@ { -"noSelectedDateCalendarLabel" : "Nie je vybraný dátum", +"noSelectedDateCalendarLabel" : "Žiadny vybratý dátum", "noEventsCalendarLabel" : "Žiadne udalosti", "ofDataPagerLabel" : "z", "pagesDataPagerLabel" : "stránky", @@ -9,7 +9,7 @@ "pdfScrollStatusOfLabel" : "z", "pdfGoToPageLabel" : "Chod na stranu", "pdfEnterPageNumberLabel" : "Zadajte číslo strany", -"pdfInvalidPageNumberLabel" : "Prosím zadajte platné číslo", +"pdfInvalidPageNumberLabel" : "Prosím vložte platné číslo", "pdfPaginationDialogOkLabel" : "OK", "pdfPaginationDialogCancelLabel" : "ZRUŠIŤ", "passwordDialogHeaderTextLabel" : "Chránené heslom", @@ -27,7 +27,7 @@ "allowedViewTimelineWeekLabel" : "Časová os týždeň", "allowedViewTimelineWorkWeekLabel" : "Časová os Pracovný týždeň", "allowedViewTimelineMonthLabel" : "Mesiac časovej osi", -"todayLabel" : "dnes", +"todayLabel" : "Dnes", "weeknumberLabel" : "týždeň", "allDayLabel" : "Celý deň", "muharramLabel" : "Muharram", @@ -74,7 +74,7 @@ "endsWithDataGridFilteringLabel" : "Končí s", "equalsDataGridFilteringLabel" : "Rovná sa", "greaterThanDataGridFilteringLabel" : "Väčší než", -"greaterThanOrEqualDataGridFilteringLabel" : "Väčšie než alebo rovné", +"greaterThanOrEqualDataGridFilteringLabel" : "Väčšie alebo rovné", "lessThanDataGridFilteringLabel" : "Menej ako", "lessThanOrEqualDataGridFilteringLabel" : "Menej než alebo rovné", "notEmptyDataGridFilteringLabel" : "Nie prázdny", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Zoradiť od Z po A", "sortOldestToNewestDataGridFilteringLabel" : "Zoradiť od najstarších po najnovšie", "sortNewestToOldestDataGridFilteringLabel" : "Zoradiť od najnovších po najstaršie", -"clearFilterFromDataGridFilteringLabel" : "Vymazať filter z", "textFiltersDataGridFilteringLabel" : "Textové filtre", "numberFiltersDataGridFilteringLabel" : "Filtre čísel", "dateFiltersDataGridFilteringLabel" : "Dátumové filtre", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "A", "orDataGridFilteringLabel" : "Alebo", "selectAllDataGridFilteringLabel" : "Vybrať všetko", -"sortAndFilterDataGridFilteringLabel" : "Triediť a filtrovať" +"sortAndFilterDataGridFilteringLabel" : "Triediť a filtrovať", +"clearFilterDataGridFilteringLabel" : "Vymazať filter", +"fromDataGridFilteringLabel" : "Od" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sl.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sl.arb index 6616582e0..be1c8e96c 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sl.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sl.arb @@ -1,11 +1,11 @@ { "noSelectedDateCalendarLabel" : "Ni izbranega datuma", -"noEventsCalendarLabel" : "Brez dogodkov", +"noEventsCalendarLabel" : "Ni dogodkov", "ofDataPagerLabel" : "od", "pagesDataPagerLabel" : "strani", -"rowsPerPageDataPagerLabel" : "Vrstice na stran", +"rowsPerPageDataPagerLabel" : "Vrstic na stran", "pdfBookmarksLabel" : "Zaznamki", -"pdfNoBookmarksLabel" : "Najden ni bil noben zaznamek", +"pdfNoBookmarksLabel" : "Ni najdenih zaznamkov", "pdfScrollStatusOfLabel" : "od", "pdfGoToPageLabel" : "Pojdi na stran", "pdfEnterPageNumberLabel" : "Vnesite številko strani", @@ -13,12 +13,12 @@ "pdfPaginationDialogOkLabel" : "v redu", "pdfPaginationDialogCancelLabel" : "PREKLIC", "passwordDialogHeaderTextLabel" : "Zaščiteno z geslom", -"passwordDialogContentLabel" : "Vnesite geslo za odpiranje te datoteke PDF", +"passwordDialogContentLabel" : "Vnesite geslo, da odprete to datoteko PDF", "passwordDialogHintTextLabel" : "Vnesite geslo", "passwordDialogInvalidPasswordLabel" : "Neveljavno geslo", "pdfPasswordDialogOpenLabel" : "ODPRTO", "pdfPasswordDialogCancelLabel" : "PREKLIC", -"allowedViewDayLabel" : "dan", +"allowedViewDayLabel" : "Dan", "allowedViewWeekLabel" : "teden", "allowedViewWorkWeekLabel" : "Delovni teden", "allowedViewMonthLabel" : "mesec", @@ -27,7 +27,7 @@ "allowedViewTimelineWeekLabel" : "Teden časovnice", "allowedViewTimelineWorkWeekLabel" : "Časovnica Delovni teden", "allowedViewTimelineMonthLabel" : "Mesec časovnice", -"todayLabel" : "danes", +"todayLabel" : "Danes", "weeknumberLabel" : "teden", "allDayLabel" : "Ves dan", "muharramLabel" : "Muharram", @@ -36,7 +36,7 @@ "rabi2Label" : "Rabi' al-thani", "jumada1Label" : "Jumada al-awwal", "jumada2Label" : "Jumada al-thani", -"rajabLabel" : "Radžab", +"rajabLabel" : "Rajab", "shaabanLabel" : "Sha'aban", "ramadanLabel" : "Ramadan", "shawwalLabel" : "Shawwal", @@ -49,17 +49,17 @@ "shortJumada1Label" : "Jum. jaz", "shortJumada2Label" : "Jum. II", "shortRajabLabel" : "Raj.", -"shortShaabanLabel" : "Sha", +"shortShaabanLabel" : "Sha.", "shortRamadanLabel" : "Oven.", "shortShawwalLabel" : "Shaw.", "shortDhualqiLabel" : "Dhu'l-Q", "shortDhualhiLabel" : "Dhu'l-H", -"daySpanCountLabel" : "dan", -"series" : "Serija", -"pdfHyperlinkLabel" : "Odprite spletno stran", +"daySpanCountLabel" : "Dan", +"series" : "serija", +"pdfHyperlinkLabel" : "Odpri spletno stran", "pdfHyperlinkContentLabel" : "Ali želite odpreti stran na", "pdfHyperlinkDialogOpenLabel" : "ODPRTO", -"pdfHyperlinkDialogCancelLabel" : "PREKLIC", +"pdfHyperlinkDialogCancelLabel" : "PREKLIC", "afterDataGridFilteringLabel" : "Po", "afterOrEqualDataGridFilteringLabel" : "Po ali enako", "beforeDataGridFilteringLabel" : "Pred ali enako", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Razvrsti od Ž do A", "sortOldestToNewestDataGridFilteringLabel" : "Razvrsti od starejšega do najnovejšega", "sortNewestToOldestDataGridFilteringLabel" : "Razvrsti od najnovejšega do najstarejšega", -"clearFilterFromDataGridFilteringLabel" : "Počisti filter iz", "textFiltersDataGridFilteringLabel" : "Besedilni filtri", "numberFiltersDataGridFilteringLabel" : "Številčni filtri", "dateFiltersDataGridFilteringLabel" : "Datumski filtri", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "in", "orDataGridFilteringLabel" : "oz", "selectAllDataGridFilteringLabel" : "Izberi vse", -"sortAndFilterDataGridFilteringLabel" : "Razvrsti in filtriraj" +"sortAndFilterDataGridFilteringLabel" : "Razvrsti in filtriraj", +"clearFilterDataGridFilteringLabel" : "Počisti filter", +"fromDataGridFilteringLabel" : "Od" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sq.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sq.arb index fd1e673be..cd447d7eb 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sq.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sq.arb @@ -18,7 +18,7 @@ "passwordDialogInvalidPasswordLabel" : "Fjalëkalim i pavlefshëm", "pdfPasswordDialogOpenLabel" : "HAPUR", "pdfPasswordDialogCancelLabel" : "ANULON", -"allowedViewDayLabel" : "ditë", +"allowedViewDayLabel" : "Dita", "allowedViewWeekLabel" : "javë", "allowedViewWorkWeekLabel" : "Java e punës", "allowedViewMonthLabel" : "Muaj", @@ -34,13 +34,13 @@ "safarLabel" : "Safar", "rabi1Label" : "Rabi'ul-evvel", "rabi2Label" : "Rabi' al-thani", -"jumada1Label" : "Xhumada el-evvel", +"jumada1Label" : "Xhumade el-evvel", "jumada2Label" : "Xhumada al-thani", "rajabLabel" : "Rexheb", -"shaabanLabel" : "Sha'ban", +"shaabanLabel" : "Shaban", "ramadanLabel" : "Ramazani", "shawwalLabel" : "Shevali", -"dhualqiLabel" : "Dhul Kida", +"dhualqiLabel" : "Dhul-Kida", "dhualhiLabel" : "Dhul Hixhe", "shortMuharramLabel" : "Muh.", "shortSafarLabel" : "Saf.", @@ -54,7 +54,7 @@ "shortShawwalLabel" : "Shaw.", "shortDhualqiLabel" : "Dhu'l-K", "shortDhualhiLabel" : "Dhul-H", -"daySpanCountLabel" : "ditë", +"daySpanCountLabel" : "Dita", "series" : "Seria", "pdfHyperlinkLabel" : "Hapni faqen e internetit", "pdfHyperlinkContentLabel" : "Dëshironi të hapni faqen në", @@ -84,9 +84,8 @@ "sortLargestToSmallestDataGridFilteringLabel" : "Rendit nga më i madhi tek më i vogli", "sortAToZDataGridFilteringLabel" : "Rendit nga A në Z", "sortZToADataGridFilteringLabel" : "Rendit Z në A", -"sortOldestToNewestDataGridFilteringLabel" : "Rendit më të vjetrën në më të renë", +"sortOldestToNewestDataGridFilteringLabel" : "Rendit nga më i vjetri tek më i riu", "sortNewestToOldestDataGridFilteringLabel" : "Rendit nga më i riu tek më i vjetri", -"clearFilterFromDataGridFilteringLabel" : "Pastro filtrin nga", "textFiltersDataGridFilteringLabel" : "Filtrat e tekstit", "numberFiltersDataGridFilteringLabel" : "Filtrat e numrave", "dateFiltersDataGridFilteringLabel" : "Filtrat e datës", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Dhe", "orDataGridFilteringLabel" : "Ose", "selectAllDataGridFilteringLabel" : "Selektoj të gjitha", -"sortAndFilterDataGridFilteringLabel" : "Rendit dhe filtro" +"sortAndFilterDataGridFilteringLabel" : "Rendit dhe filtro", +"clearFilterDataGridFilteringLabel" : "Pastro filtrin", +"fromDataGridFilteringLabel" : "Nga" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sr.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sr.arb index 0a9cdc0bb..1b198adfa 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sr.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sr.arb @@ -55,7 +55,7 @@ "shortDhualqiLabel" : "Дху'л-К", "shortDhualhiLabel" : "Дху'л-Х", "daySpanCountLabel" : "Дан", -"series" : "Серије", +"series" : "Сериес", "pdfHyperlinkLabel" : "Отворите веб страницу", "pdfHyperlinkContentLabel" : "Да ли желите да отворите страницу на", "pdfHyperlinkDialogOpenLabel" : "ОПЕН", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Сортирај од З до А", "sortOldestToNewestDataGridFilteringLabel" : "Сортирај од најстаријих до најновијих", "sortNewestToOldestDataGridFilteringLabel" : "Сортирај од најновијег до најстаријег", -"clearFilterFromDataGridFilteringLabel" : "Обриши филтер из", "textFiltersDataGridFilteringLabel" : "Филтери за текст", "numberFiltersDataGridFilteringLabel" : "Бројчани филтери", "dateFiltersDataGridFilteringLabel" : "Дате Филтерс", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "И", "orDataGridFilteringLabel" : "Ор", "selectAllDataGridFilteringLabel" : "Изабери све", -"sortAndFilterDataGridFilteringLabel" : "Сортирај и филтрирај" +"sortAndFilterDataGridFilteringLabel" : "Сортирај и филтрирај", +"clearFilterDataGridFilteringLabel" : "Обриши филтер", +"fromDataGridFilteringLabel" : "Од" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sv.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sv.arb index 612702db5..eab1365b9 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sv.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sv.arb @@ -11,13 +11,13 @@ "pdfEnterPageNumberLabel" : "Ange sidnummer", "pdfInvalidPageNumberLabel" : "var vänlig skriv in ett giltigt nummer", "pdfPaginationDialogOkLabel" : "OK", -"pdfPaginationDialogCancelLabel" : "ANNULLERA", +"pdfPaginationDialogCancelLabel" : "AVBRYT", "passwordDialogHeaderTextLabel" : "Lösenord skyddat", "passwordDialogContentLabel" : "Ange lösenordet för att öppna denna PDF-fil", "passwordDialogHintTextLabel" : "Skriv in lösenord", "passwordDialogInvalidPasswordLabel" : "felaktigt lösenord", -"pdfPasswordDialogOpenLabel" : "ÖPPET", -"pdfPasswordDialogCancelLabel" : "ANNULLERA", +"pdfPasswordDialogOpenLabel" : "ÖPPNA", +"pdfPasswordDialogCancelLabel" : "AVBRYT", "allowedViewDayLabel" : "Dag", "allowedViewWeekLabel" : "Vecka", "allowedViewWorkWeekLabel" : "Arbetsvecka", @@ -25,7 +25,7 @@ "allowedViewScheduleLabel" : "Schema", "allowedViewTimelineDayLabel" : "Tidslinjedagen", "allowedViewTimelineWeekLabel" : "Tidslinjevecka", -"allowedViewTimelineWorkWeekLabel" : "Tidslinje Arbetsvecka", +"allowedViewTimelineWorkWeekLabel" : "Tidslinje arbetsvecka", "allowedViewTimelineMonthLabel" : "Tidslinje månad", "todayLabel" : "I dag", "weeknumberLabel" : "Vecka", @@ -58,7 +58,7 @@ "series" : "Serier", "pdfHyperlinkLabel" : "Öppna webbsidan", "pdfHyperlinkContentLabel" : "Vill du öppna sidan på", -"pdfHyperlinkDialogOpenLabel" : "ÖPPEN", +"pdfHyperlinkDialogOpenLabel" : "ÖPPNA", "pdfHyperlinkDialogCancelLabel" : "AVBRYT", "afterDataGridFilteringLabel" : "Efter", "afterOrEqualDataGridFilteringLabel" : "Efter Eller Lika", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Sortera från Z till A", "sortOldestToNewestDataGridFilteringLabel" : "Sortera äldst till nyaste", "sortNewestToOldestDataGridFilteringLabel" : "Sortera Nyast Till Äldst", -"clearFilterFromDataGridFilteringLabel" : "Rensa filter från", "textFiltersDataGridFilteringLabel" : "Textfilter", "numberFiltersDataGridFilteringLabel" : "Nummerfilter", "dateFiltersDataGridFilteringLabel" : "Datumfilter", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Och", "orDataGridFilteringLabel" : "Eller", "selectAllDataGridFilteringLabel" : "Välj alla", -"sortAndFilterDataGridFilteringLabel" : "Sortera och filtrera" +"sortAndFilterDataGridFilteringLabel" : "Sortera och filtrera", +"clearFilterDataGridFilteringLabel" : "Rensa filtret", +"fromDataGridFilteringLabel" : "Från" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sw.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sw.arb index 3aa816085..89d401fe6 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sw.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_sw.arb @@ -7,7 +7,7 @@ "pdfBookmarksLabel" : "Alamisho", "pdfNoBookmarksLabel" : "Hakuna alamisho zilizopatikana", "pdfScrollStatusOfLabel" : "ya", -"pdfGoToPageLabel" : "Nenda kwa ukurasa", +"pdfGoToPageLabel" : "Nenda kwenye ukurasa", "pdfEnterPageNumberLabel" : "Ingiza nambari ya ukurasa", "pdfInvalidPageNumberLabel" : "Tafadhali weka nambari halali", "pdfPaginationDialogOkLabel" : "sawa", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Panga Z hadi A", "sortOldestToNewestDataGridFilteringLabel" : "Panga Kongwe Kwa Mpya Zaidi", "sortNewestToOldestDataGridFilteringLabel" : "Panga Mpya Zaidi Kwa Kongwe Zaidi", -"clearFilterFromDataGridFilteringLabel" : "Futa Kichujio Kutoka", "textFiltersDataGridFilteringLabel" : "Vichujio vya Maandishi", "numberFiltersDataGridFilteringLabel" : "Vichujio vya Nambari", "dateFiltersDataGridFilteringLabel" : "Vichujio vya Tarehe", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Na", "orDataGridFilteringLabel" : "Au", "selectAllDataGridFilteringLabel" : "Chagua Zote", -"sortAndFilterDataGridFilteringLabel" : "Panga na Chuja" +"sortAndFilterDataGridFilteringLabel" : "Panga na Chuja", +"clearFilterDataGridFilteringLabel" : "Futa Kichujio", +"fromDataGridFilteringLabel" : "Kutoka" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ta.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ta.arb index 012a40437..44da52395 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ta.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ta.arb @@ -23,7 +23,7 @@ "allowedViewWorkWeekLabel" : "வேலை வாரம்", "allowedViewMonthLabel" : "மாதம்", "allowedViewScheduleLabel" : "அட்டவணை", -"allowedViewTimelineDayLabel" : "காலவரிசை நாள்", +"allowedViewTimelineDayLabel" : "காலக்கெடு நாள்", "allowedViewTimelineWeekLabel" : "காலவரிசை வாரம்", "allowedViewTimelineWorkWeekLabel" : "காலக்கெடு வேலை வாரம்", "allowedViewTimelineMonthLabel" : "காலவரிசை மாதம்", @@ -40,7 +40,7 @@ "shaabanLabel" : "ஷஅபான்", "ramadanLabel" : "ரமலான்", "shawwalLabel" : "ஷவ்வால்", -"dhualqiLabel" : "து அல்-கிடா", +"dhualqiLabel" : "Dhu al-Qi'dah", "dhualhiLabel" : "து அல்-ஹிஜ்ஜா", "shortMuharramLabel" : "முஹ்.", "shortSafarLabel" : "Saf.", @@ -51,7 +51,7 @@ "shortRajabLabel" : "ராஜ்.", "shortShaabanLabel" : "ஷா.", "shortRamadanLabel" : "ரேம்.", -"shortShawwalLabel" : "ஷா.", +"shortShawwalLabel" : "ஷா", "shortDhualqiLabel" : "துல்-கே", "shortDhualhiLabel" : "துல்-எச்", "daySpanCountLabel" : "நாள்", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z முதல் A வரை வரிசைப்படுத்தவும்", "sortOldestToNewestDataGridFilteringLabel" : "பழமையானது முதல் புதியது வரை வரிசைப்படுத்தவும்", "sortNewestToOldestDataGridFilteringLabel" : "புதியது முதல் பழையது என வரிசைப்படுத்தவும்", -"clearFilterFromDataGridFilteringLabel" : "இதிலிருந்து வடிகட்டியை அழி", "textFiltersDataGridFilteringLabel" : "உரை வடிப்பான்கள்", "numberFiltersDataGridFilteringLabel" : "எண் வடிப்பான்கள்", "dateFiltersDataGridFilteringLabel" : "தேதி வடிகட்டிகள்", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "மற்றும்", "orDataGridFilteringLabel" : "அல்லது", "selectAllDataGridFilteringLabel" : "அனைத்தையும் தெரிவுசெய்", -"sortAndFilterDataGridFilteringLabel" : "வரிசைப்படுத்தி வடிகட்டவும்" +"sortAndFilterDataGridFilteringLabel" : "வரிசைப்படுத்தி வடிகட்டவும்", +"clearFilterDataGridFilteringLabel" : "வடிகட்டியை அழி", +"fromDataGridFilteringLabel" : "இருந்து" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_te.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_te.arb index 6f957c7f0..df431e5a4 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_te.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_te.arb @@ -40,7 +40,7 @@ "shaabanLabel" : "షాబాన్", "ramadanLabel" : "రంజాన్", "shawwalLabel" : "షవ్వాల్", -"dhualqiLabel" : "ధు అల్-ఖైదా", +"dhualqiLabel" : "ధు అల్-కి'దా", "dhualhiLabel" : "ధు అల్-హిజ్జా", "shortMuharramLabel" : "ముహ్.", "shortSafarLabel" : "సాఫ్.", @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z నుండి A వరకు క్రమబద్ధీకరించండి", "sortOldestToNewestDataGridFilteringLabel" : "పాతది నుండి కొత్తది వరకు క్రమబద్ధీకరించండి", "sortNewestToOldestDataGridFilteringLabel" : "సరికొత్తది నుండి పాతది వరకు క్రమబద్ధీకరించండి", -"clearFilterFromDataGridFilteringLabel" : "నుండి ఫిల్టర్‌ను క్లియర్ చేయండి", "textFiltersDataGridFilteringLabel" : "టెక్స్ట్ ఫిల్టర్లు", "numberFiltersDataGridFilteringLabel" : "సంఖ్య ఫిల్టర్లు", "dateFiltersDataGridFilteringLabel" : "తేదీ ఫిల్టర్లు", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "మరియు", "orDataGridFilteringLabel" : "లేదా", "selectAllDataGridFilteringLabel" : "అన్ని ఎంచుకోండి", -"sortAndFilterDataGridFilteringLabel" : "క్రమబద్ధీకరించండి మరియు ఫిల్టర్ చేయండి" +"sortAndFilterDataGridFilteringLabel" : "క్రమబద్ధీకరించండి మరియు ఫిల్టర్ చేయండి", +"clearFilterDataGridFilteringLabel" : "ఫిల్టర్‌ని క్లియర్ చేయండి", +"fromDataGridFilteringLabel" : "నుండి" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_th.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_th.arb index cc5653b81..d73bc15e2 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_th.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_th.arb @@ -1,15 +1,15 @@ { -"noSelectedDateCalendarLabel" : "ไม่ได้เลือกวันที่", +"noSelectedDateCalendarLabel" : "ไม่มีวันที่เลือก", "noEventsCalendarLabel" : "ไม่มีกิจกรรม", "ofDataPagerLabel" : "ของ", "pagesDataPagerLabel" : "หน้า", "rowsPerPageDataPagerLabel" : "แถวต่อหน้า", "pdfBookmarksLabel" : "ที่คั่นหนังสือ", -"pdfNoBookmarksLabel" : "ไม่พบบุ๊คมาร์ค", +"pdfNoBookmarksLabel" : "ไม่พบบุ๊กมาร์ก", "pdfScrollStatusOfLabel" : "ของ", "pdfGoToPageLabel" : "ไปที่หน้า", "pdfEnterPageNumberLabel" : "ใส่เลขหน้า", -"pdfInvalidPageNumberLabel" : "กรุณาใส่ตัวเลขที่ถูกต้อง", +"pdfInvalidPageNumberLabel" : "โปรดป้อนหมายเลขที่ถูกต้อง", "pdfPaginationDialogOkLabel" : "ตกลง", "pdfPaginationDialogCancelLabel" : "ยกเลิก", "passwordDialogHeaderTextLabel" : "ป้องกันด้วยพาสเวิร์ด", @@ -25,68 +25,67 @@ "allowedViewScheduleLabel" : "กำหนดการ", "allowedViewTimelineDayLabel" : "วันไทม์ไลน์", "allowedViewTimelineWeekLabel" : "ไทม์ไลน์สัปดาห์", -"allowedViewTimelineWorkWeekLabel" : "ไทม์ไลน์งานสัปดาห์", +"allowedViewTimelineWorkWeekLabel" : "ไทม์ไลน์สัปดาห์การทำงาน", "allowedViewTimelineMonthLabel" : "ไทม์ไลน์เดือน", "todayLabel" : "วันนี้", "weeknumberLabel" : "สัปดาห์", "allDayLabel" : "ทั้งวัน", -"muharramLabel" : "มูฮัรรอม", +"muharramLabel" : "มุฮัรรอม", "safarLabel" : "ซาฟาร์", -"rabi1Label" : "เราะบี อัลเอาวัล", -"rabi2Label" : "รอบีอัล-ธานี", +"rabi1Label" : "รอบิอัลเอาวัล", +"rabi2Label" : "รอบิอัล-ธานี", "jumada1Label" : "ญุมาดา อัลเอาวัล", -"jumada2Label" : "Jumada al-thani", -"rajabLabel" : "ราชภัฏ", +"jumada2Label" : "ญุมาดา อัล-ธานี", +"rajabLabel" : "ราชาบ", "shaabanLabel" : "ชะอฺบาน", -"ramadanLabel" : "รอมฎอน", +"ramadanLabel" : "เดือนรอมฎอน", "shawwalLabel" : "เชาวาล", -"dhualqiLabel" : "ญุมาดา อัล-ธานี", -"dhualhiLabel" : "ดูอัลฮิจญะฮ์", -"shortMuharramLabel" : "มุ้ย.", -"shortSafarLabel" : "เซฟ.", -"shortRabi1Label" : "รบี. ฉัน", -"shortRabi2Label" : "รบี. II", -"shortJumada1Label" : "จั้ม. ฉัน", -"shortJumada2Label" : "จั้ม. II", -"shortRajabLabel" : "ราช.", -"shortShaabanLabel" : "ชา.", +"dhualqiLabel" : "ดุอัลกิดาห์", +"dhualhiLabel" : "ดุอัลฮิจญะห์", +"shortMuharramLabel" : "มึ.", +"shortSafarLabel" : "ปลอดภัย", +"shortRabi1Label" : "ระบี. ฉัน", +"shortRabi2Label" : "ระบี. ครั้งที่สอง", +"shortJumada1Label" : "จุ๋ม. ฉัน", +"shortJumada2Label" : "จุ๋ม. ครั้งที่สอง", +"shortRajabLabel" : "ราชา", +"shortShaabanLabel" : "ชา", "shortRamadanLabel" : "แกะ.", -"shortShawwalLabel" : "ชอว์.", +"shortShawwalLabel" : "ชอว์", "shortDhualqiLabel" : "ดุล-คิว", -"shortDhualhiLabel" : "ดุลฮัก", +"shortDhualhiLabel" : "ดุอัล-เอช", "daySpanCountLabel" : "วัน", "series" : "ชุด", "pdfHyperlinkLabel" : "เปิดหน้าเว็บ", -"pdfHyperlinkContentLabel" : "ต้องการเปิดเพจที่", +"pdfHyperlinkContentLabel" : "คุณต้องการเปิดเพจที่", "pdfHyperlinkDialogOpenLabel" : "เปิด", "pdfHyperlinkDialogCancelLabel" : "ยกเลิก", "afterDataGridFilteringLabel" : "หลังจาก", -"afterOrEqualDataGridFilteringLabel" : "หลังหรือเท่ากับ", +"afterOrEqualDataGridFilteringLabel" : "หลังจากหรือเท่ากับ", "beforeDataGridFilteringLabel" : "ก่อนหรือเท่ากับ", "beforeOrEqualDataGridFilteringLabel" : "ก่อน", "beginsWithDataGridFilteringLabel" : "เริ่มต้นด้วย", "containsDataGridFilteringLabel" : "ประกอบด้วย", -"doesNotBeginWithDataGridFilteringLabel" : "ไม่ขึ้นต้นด้วย", +"doesNotBeginWithDataGridFilteringLabel" : "ไม่ได้ขึ้นต้นด้วย", "doesNotContainDataGridFilteringLabel" : "ไม่มี", -"doesNotEndWithDataGridFilteringLabel" : "ไม่จบด้วย", -"doesNotEqualDataGridFilteringLabel" : "ไม่เท่ากัน", +"doesNotEndWithDataGridFilteringLabel" : "ไม่สิ้นสุดด้วย", +"doesNotEqualDataGridFilteringLabel" : "ไม่เท่าเทียมกัน", "emptyDataGridFilteringLabel" : "ว่างเปล่า", "endsWithDataGridFilteringLabel" : "ลงท้ายด้วย", "equalsDataGridFilteringLabel" : "เท่ากับ", "greaterThanDataGridFilteringLabel" : "มากกว่า", "greaterThanOrEqualDataGridFilteringLabel" : "มากกว่าหรือเท่ากับ", "lessThanDataGridFilteringLabel" : "น้อยกว่า", -"lessThanOrEqualDataGridFilteringLabel" : "น้อยกว่าหรือเท่ากัน", -"notEmptyDataGridFilteringLabel" : "ไม่ว่าง", +"lessThanOrEqualDataGridFilteringLabel" : "น้อยกว่าหรือเท่ากับ", +"notEmptyDataGridFilteringLabel" : "ไม่ว่างเปล่า", "notNullDataGridFilteringLabel" : "ไม่เป็นโมฆะ", "nullDataGridFilteringLabel" : "โมฆะ", -"sortSmallestToLargestDataGridFilteringLabel" : "เรียงจากน้อยไปหามาก", -"sortLargestToSmallestDataGridFilteringLabel" : "เรียงจากมากไปหาน้อย", +"sortSmallestToLargestDataGridFilteringLabel" : "เรียงลำดับจากน้อยไปมาก", +"sortLargestToSmallestDataGridFilteringLabel" : "เรียงจากมากไปน้อย", "sortAToZDataGridFilteringLabel" : "เรียง A ถึง Z", "sortZToADataGridFilteringLabel" : "เรียง Z ถึง A", -"sortOldestToNewestDataGridFilteringLabel" : "เรียงลำดับจากเก่าไปใหม่สุด", -"sortNewestToOldestDataGridFilteringLabel" : "เรียงลำดับจากใหม่ไปเก่าสุด", -"clearFilterFromDataGridFilteringLabel" : "ล้างตัวกรองจาก", +"sortOldestToNewestDataGridFilteringLabel" : "เรียงจากเก่าสุดไปใหม่สุด", +"sortNewestToOldestDataGridFilteringLabel" : "เรียงลำดับใหม่ที่สุดไปเก่าที่สุด", "textFiltersDataGridFilteringLabel" : "ตัวกรองข้อความ", "numberFiltersDataGridFilteringLabel" : "ตัวกรองตัวเลข", "dateFiltersDataGridFilteringLabel" : "ตัวกรองวันที่", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "และ", "orDataGridFilteringLabel" : "หรือ", "selectAllDataGridFilteringLabel" : "เลือกทั้งหมด", -"sortAndFilterDataGridFilteringLabel" : "จัดเรียงและกรอง" +"sortAndFilterDataGridFilteringLabel" : "จัดเรียงและกรอง", +"clearFilterDataGridFilteringLabel" : "ล้างตัวกรอง", +"fromDataGridFilteringLabel" : "จาก" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_tl.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_tl.arb index ed4a7830e..928e3b3a1 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_tl.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_tl.arb @@ -84,9 +84,8 @@ "sortLargestToSmallestDataGridFilteringLabel" : "Pagbukud-bukurin ang Pinakamalaki Hanggang Pinakamaliit", "sortAToZDataGridFilteringLabel" : "Pagbukud-bukurin A hanggang Z", "sortZToADataGridFilteringLabel" : "Pagbukud-bukurin ang Z Hanggang A", -"sortOldestToNewestDataGridFilteringLabel" : "Pagbukud-bukurin ang Pinakaluma Hanggang Pinakabago", +"sortOldestToNewestDataGridFilteringLabel" : "Pagbukud-bukurin ang Pinakamatanda Hanggang Pinakabago", "sortNewestToOldestDataGridFilteringLabel" : "Pagbukud-bukurin ang Pinakabago Hanggang sa Pinakaluma", -"clearFilterFromDataGridFilteringLabel" : "I-clear ang Filter Mula sa", "textFiltersDataGridFilteringLabel" : "Mga Filter ng Teksto", "numberFiltersDataGridFilteringLabel" : "Mga Filter ng Numero", "dateFiltersDataGridFilteringLabel" : "Mga Filter ng Petsa", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "At", "orDataGridFilteringLabel" : "O kaya", "selectAllDataGridFilteringLabel" : "Piliin lahat", -"sortAndFilterDataGridFilteringLabel" : "Pagbukud-bukurin at Salain" +"sortAndFilterDataGridFilteringLabel" : "Pagbukud-bukurin at Salain", +"clearFilterDataGridFilteringLabel" : "I-clear ang Filter", +"fromDataGridFilteringLabel" : "Mula sa" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_tr.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_tr.arb index c381c2650..bdc0d3461 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_tr.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_tr.arb @@ -1,23 +1,23 @@ { -"noSelectedDateCalendarLabel" : "Seçili tarih yok", +"noSelectedDateCalendarLabel" : "tarih seçilmedi", "noEventsCalendarLabel" : "Olay yok", -"ofDataPagerLabel" : "ile ilgili", +"ofDataPagerLabel" : "nın-nin", "pagesDataPagerLabel" : "sayfalar", -"rowsPerPageDataPagerLabel" : "Sayfa başına satır sayısı", +"rowsPerPageDataPagerLabel" : "Sayfa başına satır", "pdfBookmarksLabel" : "Yer imleri", "pdfNoBookmarksLabel" : "Yer işareti bulunamadı", -"pdfScrollStatusOfLabel" : "ile ilgili", +"pdfScrollStatusOfLabel" : "nın-nin", "pdfGoToPageLabel" : "Sayfaya git", -"pdfEnterPageNumberLabel" : "Sayfa numarasını girin", -"pdfInvalidPageNumberLabel" : "Lütfen geçerli bir numara girin", -"pdfPaginationDialogOkLabel" : "Tamam", +"pdfEnterPageNumberLabel" : "sayfa numarasını girin", +"pdfInvalidPageNumberLabel" : "Lütfen geçerli bir sayı girin", +"pdfPaginationDialogOkLabel" : "TAMAM", "pdfPaginationDialogCancelLabel" : "İPTAL ETMEK", "passwordDialogHeaderTextLabel" : "Şifre korumalı", "passwordDialogContentLabel" : "Bu PDF dosyasını açmak için şifreyi girin", -"passwordDialogHintTextLabel" : "Parolanı Gir", +"passwordDialogHintTextLabel" : "Şifre girin", "passwordDialogInvalidPasswordLabel" : "geçersiz şifre", "pdfPasswordDialogOpenLabel" : "AÇIK", -"pdfPasswordDialogCancelLabel" : "İPTAL ETMEK", +"pdfPasswordDialogCancelLabel" : "İPTAL ETMEK", "allowedViewDayLabel" : "Gün", "allowedViewWeekLabel" : "Hafta", "allowedViewWorkWeekLabel" : "Çalışma haftası", @@ -31,62 +31,61 @@ "weeknumberLabel" : "Hafta", "allDayLabel" : "Tüm gün", "muharramLabel" : "Muharrem", -"safarLabel" : "Safar", -"rabi1Label" : "Rebiülevvel", +"safarLabel" : "safar", +"rabi1Label" : "Rabi'ul-evvel", "rabi2Label" : "Rabi' al-thani", -"jumada1Label" : "Cumada el-evvel", +"jumada1Label" : "Jumada al-evvel", "jumada2Label" : "Jumada al-thani", "rajabLabel" : "Recep", "shaabanLabel" : "Şaban", "ramadanLabel" : "Ramazan", "shawwalLabel" : "Şevval", -"dhualqiLabel" : "Zil Qi'dah", +"dhualqiLabel" : "Dhu al-Qi'dah", "dhualhiLabel" : "Zilhicce", -"shortMuharramLabel" : "Müh.", +"shortMuharramLabel" : "Muh.", "shortSafarLabel" : "Saf.", -"shortRabi1Label" : "Rabi. i", -"shortRabi2Label" : "Rabi. II", -"shortJumada1Label" : "Jum. i", -"shortJumada2Label" : "Jum. II", +"shortRabi1Label" : "Rabi. ben", +"shortRabi2Label" : "Rabi. III", +"shortJumada1Label" : "Cuma. ben", +"shortJumada2Label" : "Cuma. III", "shortRajabLabel" : "Raj.", -"shortShaabanLabel" : "Sha.", +"shortShaabanLabel" : "Şa.", "shortRamadanLabel" : "Veri deposu.", "shortShawwalLabel" : "Shaw.", -"shortDhualqiLabel" : "Zil-Q", +"shortDhualqiLabel" : "Zül-Q", "shortDhualhiLabel" : "Zül-H", "daySpanCountLabel" : "Gün", -"series" : "Seri", +"series" : "Diziler", "pdfHyperlinkLabel" : "Web Sayfasını Aç", -"pdfHyperlinkContentLabel" : "Sayfayı açmak ister misin?", +"pdfHyperlinkContentLabel" : "Sayfayı şu adreste açmak istiyor musunuz?", "pdfHyperlinkDialogOpenLabel" : "AÇIK", -"pdfHyperlinkDialogCancelLabel" : "İPTAL ET", +"pdfHyperlinkDialogCancelLabel" : "İPTAL ETMEK", "afterDataGridFilteringLabel" : "Sonrasında", -"afterOrEqualDataGridFilteringLabel" : "Sonra veya Eşit", +"afterOrEqualDataGridFilteringLabel" : "Sonra Veya Eşittir", "beforeDataGridFilteringLabel" : "Önce veya Eşit", "beforeOrEqualDataGridFilteringLabel" : "Önceki", "beginsWithDataGridFilteringLabel" : "İle başlar", "containsDataGridFilteringLabel" : "içerir", -"doesNotBeginWithDataGridFilteringLabel" : "ile Başlamıyor", +"doesNotBeginWithDataGridFilteringLabel" : "İle Başlamıyor", "doesNotContainDataGridFilteringLabel" : "İçermiyor", -"doesNotEndWithDataGridFilteringLabel" : "ile bitmez", +"doesNotEndWithDataGridFilteringLabel" : "ile bitmiyor", "doesNotEqualDataGridFilteringLabel" : "Eşit değil", "emptyDataGridFilteringLabel" : "Boş", "endsWithDataGridFilteringLabel" : "ile biter", "equalsDataGridFilteringLabel" : "eşittir", -"greaterThanDataGridFilteringLabel" : "Büyüktür", -"greaterThanOrEqualDataGridFilteringLabel" : "Büyük veya Eşit", +"greaterThanDataGridFilteringLabel" : "Daha büyük", +"greaterThanOrEqualDataGridFilteringLabel" : "Büyüktür veya Eşittir", "lessThanDataGridFilteringLabel" : "Daha az", "lessThanOrEqualDataGridFilteringLabel" : "Az veya eşit", "notEmptyDataGridFilteringLabel" : "Boş değil", "notNullDataGridFilteringLabel" : "Geçersiz değil", "nullDataGridFilteringLabel" : "Hükümsüz", -"sortSmallestToLargestDataGridFilteringLabel" : "En Küçükten En Büyüğe Sırala", -"sortLargestToSmallestDataGridFilteringLabel" : "En Büyükten En Küçüğe Sırala", +"sortSmallestToLargestDataGridFilteringLabel" : "Küçükten Büyüğe Sırala", +"sortLargestToSmallestDataGridFilteringLabel" : "Büyükten Küçüğe Sırala", "sortAToZDataGridFilteringLabel" : "A'dan Z'ye Sırala", "sortZToADataGridFilteringLabel" : "Z'den A'ya Sırala", -"sortOldestToNewestDataGridFilteringLabel" : "Eskiden En Yeniye Sırala", -"sortNewestToOldestDataGridFilteringLabel" : "En Yeniden En Eskiye Sırala", -"clearFilterFromDataGridFilteringLabel" : "Filtreyi Temizle", +"sortOldestToNewestDataGridFilteringLabel" : "Eskiden Yeniye Sırala", +"sortNewestToOldestDataGridFilteringLabel" : "Yeniden En Eskiye Sırala", "textFiltersDataGridFilteringLabel" : "Metin Filtreleri", "numberFiltersDataGridFilteringLabel" : "Sayı Filtreleri", "dateFiltersDataGridFilteringLabel" : "Tarih Filtreleri", @@ -94,9 +93,11 @@ "noMatchesDataGridFilteringLabel" : "Eşleşme yok", "okDataGridFilteringLabel" : "TAMAM", "cancelDataGridFilteringLabel" : "İptal", -"showRowsWhereDataGridFilteringLabel" : "Satırları göster nerede", +"showRowsWhereDataGridFilteringLabel" : "satırları göster", "andDataGridFilteringLabel" : "Ve", "orDataGridFilteringLabel" : "Veya", "selectAllDataGridFilteringLabel" : "Hepsini seç", -"sortAndFilterDataGridFilteringLabel" : "Sırala ve Filtrele" +"sortAndFilterDataGridFilteringLabel" : "Sırala ve Filtrele", +"clearFilterDataGridFilteringLabel" : "Temiz filtre", +"fromDataGridFilteringLabel" : "İtibaren" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_uk.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_uk.arb index d471ca3df..0ac68d91b 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_uk.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_uk.arb @@ -1,6 +1,6 @@ { -"noSelectedDateCalendarLabel" : "Немає вибраної дати", -"noEventsCalendarLabel" : "Жодних подій", +"noSelectedDateCalendarLabel" : "Дата не вибрана", +"noEventsCalendarLabel" : "Подій немає", "ofDataPagerLabel" : "з", "pagesDataPagerLabel" : "сторінки", "rowsPerPageDataPagerLabel" : "Рядків на сторінці", @@ -9,55 +9,55 @@ "pdfScrollStatusOfLabel" : "з", "pdfGoToPageLabel" : "Перейти на сторінку", "pdfEnterPageNumberLabel" : "Введіть номер сторінки", -"pdfInvalidPageNumberLabel" : "Введіть дійсне число", -"pdfPaginationDialogOkLabel" : "гаразд", +"pdfInvalidPageNumberLabel" : "Введіть дійсний номер", +"pdfPaginationDialogOkLabel" : "в порядку", "pdfPaginationDialogCancelLabel" : "СКАСУВАТИ", "passwordDialogHeaderTextLabel" : "Захищено паролем", -"passwordDialogContentLabel" : "Введіть пароль, щоб відкрити цей PDF-файл", +"passwordDialogContentLabel" : "Введіть пароль, щоб відкрити цей файл PDF", "passwordDialogHintTextLabel" : "Введіть пароль", -"passwordDialogInvalidPasswordLabel" : "Недійсний пароль", +"passwordDialogInvalidPasswordLabel" : "Невірний пароль", "pdfPasswordDialogOpenLabel" : "ВІДЧИНЕНО", "pdfPasswordDialogCancelLabel" : "СКАСУВАТИ", "allowedViewDayLabel" : "День", "allowedViewWeekLabel" : "тиждень", -"allowedViewWorkWeekLabel" : "Робочий тиждень", -"allowedViewMonthLabel" : "Місяць", -"allowedViewScheduleLabel" : "Розклад", +"allowedViewWorkWeekLabel" : "робочий тиждень", +"allowedViewMonthLabel" : "місяць", +"allowedViewScheduleLabel" : "розклад", "allowedViewTimelineDayLabel" : "День хронології", "allowedViewTimelineWeekLabel" : "Тиждень хронології", -"allowedViewTimelineWorkWeekLabel" : "Розклад робочого тижня", -"allowedViewTimelineMonthLabel" : "Хронологічний місяць", +"allowedViewTimelineWorkWeekLabel" : "Графік робочого тижня", +"allowedViewTimelineMonthLabel" : "Місяць хронології", "todayLabel" : "Сьогодні", "weeknumberLabel" : "тиждень", "allDayLabel" : "Весь день", "muharramLabel" : "Мухаррам", "safarLabel" : "Сафар", "rabi1Label" : "Рабі аль-авваль", -"rabi2Label" : "Рабі аль-Тані", +"rabi2Label" : "Рабі аль-тані", "jumada1Label" : "Джумада аль-авваль", -"jumada2Label" : "Джумада аль-Тані", +"jumada2Label" : "Джумада аль-тані", "rajabLabel" : "Раджаб", "shaabanLabel" : "Шаабан", "ramadanLabel" : "Рамадан", -"shawwalLabel" : "Shawwal", +"shawwalLabel" : "Шавваль", "dhualqiLabel" : "Зу аль-Кіда", "dhualhiLabel" : "Зу аль-Хіджа", -"shortMuharramLabel" : "Мух", -"shortSafarLabel" : "Saf.", +"shortMuharramLabel" : "мух", +"shortSafarLabel" : "Саф.", "shortRabi1Label" : "Рабі. я", "shortRabi2Label" : "Рабі. II", -"shortJumada1Label" : "Jum. я", -"shortJumada2Label" : "Jum. II", +"shortJumada1Label" : "стрибати я", +"shortJumada2Label" : "стрибати II", "shortRajabLabel" : "Радж.", "shortShaabanLabel" : "Ша.", "shortRamadanLabel" : "ОЗП.", "shortShawwalLabel" : "Шоу.", -"shortDhualqiLabel" : "Dhu'l-Q", -"shortDhualhiLabel" : "Dhu'l-H", +"shortDhualqiLabel" : "Зу'л-К'ю", +"shortDhualhiLabel" : "Зу'л-Х", "daySpanCountLabel" : "День", "series" : "Серія", -"pdfHyperlinkLabel" : "Відкрийте веб-сторінку", -"pdfHyperlinkContentLabel" : "Бажаєте відкрити сторінку за адресою", +"pdfHyperlinkLabel" : "Відкрити веб-сторінку", +"pdfHyperlinkContentLabel" : "Хочете відкрити сторінку за адресою", "pdfHyperlinkDialogOpenLabel" : "ВІДЧИНЕНО", "pdfHyperlinkDialogCancelLabel" : "СКАСУВАТИ", "afterDataGridFilteringLabel" : "після", @@ -86,10 +86,9 @@ "sortZToADataGridFilteringLabel" : "Сортувати від Я до А", "sortOldestToNewestDataGridFilteringLabel" : "Сортувати від найстарішого до найновішого", "sortNewestToOldestDataGridFilteringLabel" : "Сортування від найновіших до найстаріших", -"clearFilterFromDataGridFilteringLabel" : "Очистити фільтр від", "textFiltersDataGridFilteringLabel" : "Текстові фільтри", "numberFiltersDataGridFilteringLabel" : "Числові фільтри", -"dateFiltersDataGridFilteringLabel" : "Фільтри дат", +"dateFiltersDataGridFilteringLabel" : "Фільтри дати", "searchDataGridFilteringLabel" : "Пошук", "noMatchesDataGridFilteringLabel" : "Немає збігів", "okDataGridFilteringLabel" : "в порядку", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "І", "orDataGridFilteringLabel" : "Або", "selectAllDataGridFilteringLabel" : "Вибрати все", -"sortAndFilterDataGridFilteringLabel" : "Сортування та фільтр" +"sortAndFilterDataGridFilteringLabel" : "Сортування та фільтр", +"clearFilterDataGridFilteringLabel" : "Очистити фільтр", +"fromDataGridFilteringLabel" : "Від" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ur.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ur.arb index 51bb120ac..73a33d0ce 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ur.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_ur.arb @@ -1,12 +1,12 @@ { "noSelectedDateCalendarLabel" : "کوئی تاریخ منتخب نہیں ہے۔", "noEventsCalendarLabel" : "کوئی واقعات نہیں۔", -"ofDataPagerLabel" : "کا", +"ofDataPagerLabel" : "کی", "pagesDataPagerLabel" : "صفحات", "rowsPerPageDataPagerLabel" : "قطار فی صفحہ", "pdfBookmarksLabel" : "بک مارکس", "pdfNoBookmarksLabel" : "کوئی بک مارکس نہیں ملے", -"pdfScrollStatusOfLabel" : "کا", +"pdfScrollStatusOfLabel" : "کی", "pdfGoToPageLabel" : "صفحے پر جائیں", "pdfEnterPageNumberLabel" : "صفحہ نمبر درج کریں۔", "pdfInvalidPageNumberLabel" : "براہ مہربانی ایک درست نمبر درج کریں", @@ -16,7 +16,7 @@ "passwordDialogContentLabel" : "اس پی ڈی ایف فائل کو کھولنے کے لیے پاس ورڈ درج کریں۔", "passwordDialogHintTextLabel" : "پاس ورڈ درج کریں", "passwordDialogInvalidPasswordLabel" : "غلط پاسورڈ", -"pdfPasswordDialogOpenLabel" : "کھولیں", +"pdfPasswordDialogOpenLabel" : "کھولیں۔", "pdfPasswordDialogCancelLabel" : "منسوخ کریں۔", "allowedViewDayLabel" : "دن", "allowedViewWeekLabel" : "ہفتہ", @@ -58,8 +58,8 @@ "series" : "سلسلہ", "pdfHyperlinkLabel" : "ویب صفحہ کھولیں۔", "pdfHyperlinkContentLabel" : "کیا آپ صفحہ کو کھولنا چاہتے ہیں۔", -"pdfHyperlinkDialogOpenLabel" : "کھولیں", -"pdfHyperlinkDialogCancelLabel" : "منسوخ کریں۔", +"pdfHyperlinkDialogOpenLabel" : "کھولیں۔", +"pdfHyperlinkDialogCancelLabel" : "منسوخ کریں۔", "afterDataGridFilteringLabel" : "کے بعد", "afterOrEqualDataGridFilteringLabel" : "کے بعد یا برابر", "beforeDataGridFilteringLabel" : "پہلے یا برابر", @@ -81,12 +81,11 @@ "notNullDataGridFilteringLabel" : "کالعدم نہیں۔", "nullDataGridFilteringLabel" : "خالی", "sortSmallestToLargestDataGridFilteringLabel" : "چھانٹیں سب سے چھوٹی سے بڑی", -"sortLargestToSmallestDataGridFilteringLabel" : "چھانٹیں بڑی سے چھوٹی", +"sortLargestToSmallestDataGridFilteringLabel" : "چھانٹیں بڑے سے چھوٹے", "sortAToZDataGridFilteringLabel" : "A سے Z ترتیب دیں۔", "sortZToADataGridFilteringLabel" : "Z سے ​​A ترتیب دیں۔", "sortOldestToNewestDataGridFilteringLabel" : "سب سے قدیم سے تازہ ترین ترتیب دیں۔", "sortNewestToOldestDataGridFilteringLabel" : "تازہ ترین سے قدیم ترین ترتیب دیں۔", -"clearFilterFromDataGridFilteringLabel" : "سے فلٹر صاف کریں۔", "textFiltersDataGridFilteringLabel" : "ٹیکسٹ فلٹرز", "numberFiltersDataGridFilteringLabel" : "نمبر فلٹرز", "dateFiltersDataGridFilteringLabel" : "تاریخ کے فلٹرز", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "اور", "orDataGridFilteringLabel" : "یا", "selectAllDataGridFilteringLabel" : "تمام منتخب کریں", -"sortAndFilterDataGridFilteringLabel" : "ترتیب دیں اور فلٹر کریں۔" +"sortAndFilterDataGridFilteringLabel" : "ترتیب دیں اور فلٹر کریں۔", +"clearFilterDataGridFilteringLabel" : "فلٹر صاف کریں۔", +"fromDataGridFilteringLabel" : "سے" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_uz.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_uz.arb index 8c07a0216..18db8fe05 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_uz.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_uz.arb @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Z dan A ga tartiblang", "sortOldestToNewestDataGridFilteringLabel" : "Eng eskidan eng yangisiga saralash", "sortNewestToOldestDataGridFilteringLabel" : "Eng yangidan eng eskiga saralash", -"clearFilterFromDataGridFilteringLabel" : "Filtrni tozalash", "textFiltersDataGridFilteringLabel" : "Matn filtrlari", "numberFiltersDataGridFilteringLabel" : "Raqamli filtrlar", "dateFiltersDataGridFilteringLabel" : "Sana filtrlari", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Va", "orDataGridFilteringLabel" : "Yoki", "selectAllDataGridFilteringLabel" : "Hammasini belgilash", -"sortAndFilterDataGridFilteringLabel" : "Saralash va filtrlash" +"sortAndFilterDataGridFilteringLabel" : "Saralash va filtrlash", +"clearFilterDataGridFilteringLabel" : "Filtrni tozalash", +"fromDataGridFilteringLabel" : "Kimdan" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_vi.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_vi.arb index da4892db9..6adcfcc08 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_vi.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_vi.arb @@ -5,12 +5,12 @@ "pagesDataPagerLabel" : "trang", "rowsPerPageDataPagerLabel" : "Hàng trên mỗi trang", "pdfBookmarksLabel" : "Dấu trang", -"pdfNoBookmarksLabel" : "Không tìm thấy dấu trang", +"pdfNoBookmarksLabel" : "Không tìm thấy dấu trang nào", "pdfScrollStatusOfLabel" : "của", "pdfGoToPageLabel" : "Đi tới trang", "pdfEnterPageNumberLabel" : "Nhập số trang", "pdfInvalidPageNumberLabel" : "Vui lòng nhập một số hợp lệ", -"pdfPaginationDialogOkLabel" : "VÂNG", +"pdfPaginationDialogOkLabel" : "ĐƯỢC RỒI", "pdfPaginationDialogCancelLabel" : "SỰ HỦY BỎ", "passwordDialogHeaderTextLabel" : "Mật khẩu được bảo vệ", "passwordDialogContentLabel" : "Nhập mật khẩu để mở tệp PDF này", @@ -23,70 +23,69 @@ "allowedViewWorkWeekLabel" : "Tuần làm việc", "allowedViewMonthLabel" : "Tháng", "allowedViewScheduleLabel" : "Lịch trình", -"allowedViewTimelineDayLabel" : "Ngày dòng thời gian", -"allowedViewTimelineWeekLabel" : "Dòng thời gian trong tuần", -"allowedViewTimelineWorkWeekLabel" : "Dòng thời gian làm việc trong tuần", +"allowedViewTimelineDayLabel" : "Dòng thời gian ngày", +"allowedViewTimelineWeekLabel" : "Dòng thời gian Tuần", +"allowedViewTimelineWorkWeekLabel" : "Thời gian biểu Tuần làm việc", "allowedViewTimelineMonthLabel" : "Dòng thời gian Tháng", "todayLabel" : "Hôm nay", "weeknumberLabel" : "Tuần", "allDayLabel" : "Cả ngày", "muharramLabel" : "Muharram", -"safarLabel" : "Safar", -"rabi1Label" : "Rabi 'al-awwal", -"rabi2Label" : "Rabi 'al-thani", +"safarLabel" : "safar", +"rabi1Label" : "Rabi' al-awwal", +"rabi2Label" : "Rabi' al-thani", "jumada1Label" : "Jumada al-awwal", "jumada2Label" : "Jumada al-thani", "rajabLabel" : "Rajab", "shaabanLabel" : "Sha'aban", -"ramadanLabel" : "Ramadan", +"ramadanLabel" : "lễ ramadan", "shawwalLabel" : "Shawwal", "dhualqiLabel" : "Dhu al-Qi'dah", "dhualhiLabel" : "Dhu al-Hijjah", -"shortMuharramLabel" : "Ờ.", -"shortSafarLabel" : "Két sắt.", -"shortRabi1Label" : "Rabi. tôi", +"shortMuharramLabel" : "ừm.", +"shortSafarLabel" : "an toàn.", +"shortRabi1Label" : "Rabi. Tôi", "shortRabi2Label" : "Rabi. II", -"shortJumada1Label" : "Jum. tôi", +"shortJumada1Label" : "Jum. Tôi", "shortJumada2Label" : "Jum. II", "shortRajabLabel" : "Raj.", "shortShaabanLabel" : "Sha.", -"shortRamadanLabel" : "Ram.", +"shortRamadanLabel" : "Đập.", "shortShawwalLabel" : "Shaw.", "shortDhualqiLabel" : "Dhu'l-Q", "shortDhualhiLabel" : "Dhu'l-H", "daySpanCountLabel" : "Ngày", -"series" : "Hàng loạt", +"series" : "Loạt", "pdfHyperlinkLabel" : "Mở trang web", -"pdfHyperlinkContentLabel" : "Bạn có muốn mở trang này tại", +"pdfHyperlinkContentLabel" : "Bạn có muốn mở trang tại", "pdfHyperlinkDialogOpenLabel" : "MỞ", "pdfHyperlinkDialogCancelLabel" : "SỰ HỦY BỎ", "afterDataGridFilteringLabel" : "Sau", -"afterOrEqualDataGridFilteringLabel" : "Sau hoặc bằng", -"beforeDataGridFilteringLabel" : "Trước hoặc bằng", +"afterOrEqualDataGridFilteringLabel" : "Sau Hoặc Bằng", +"beforeDataGridFilteringLabel" : "Trước Hoặc Bằng", "beforeOrEqualDataGridFilteringLabel" : "Trước", "beginsWithDataGridFilteringLabel" : "Bắt đầu với", "containsDataGridFilteringLabel" : "Chứa", -"doesNotBeginWithDataGridFilteringLabel" : "Không bắt đầu với", +"doesNotBeginWithDataGridFilteringLabel" : "không bắt đầu bằng", "doesNotContainDataGridFilteringLabel" : "Không chứa", -"doesNotEndWithDataGridFilteringLabel" : "Không kết thúc bằng", -"doesNotEqualDataGridFilteringLabel" : "Không bằng nhau", +"doesNotEndWithDataGridFilteringLabel" : "không kết thúc với", +"doesNotEqualDataGridFilteringLabel" : "không bằng", "emptyDataGridFilteringLabel" : "Trống rỗng", -"endsWithDataGridFilteringLabel" : "Kết thúc với", -"equalsDataGridFilteringLabel" : "Bằng", +"endsWithDataGridFilteringLabel" : "kết thúc với", +"equalsDataGridFilteringLabel" : "bằng", "greaterThanDataGridFilteringLabel" : "Lớn hơn", "greaterThanOrEqualDataGridFilteringLabel" : "Lớn hơn hoặc bằng", "lessThanDataGridFilteringLabel" : "Ít hơn", "lessThanOrEqualDataGridFilteringLabel" : "Nhỏ hơn hoặc bằng", -"notEmptyDataGridFilteringLabel" : "Không rỗng", +"notEmptyDataGridFilteringLabel" : "Không trống", "notNullDataGridFilteringLabel" : "Có giá trị", "nullDataGridFilteringLabel" : "Vô giá trị", "sortSmallestToLargestDataGridFilteringLabel" : "Sắp xếp từ nhỏ nhất đến lớn nhất", -"sortLargestToSmallestDataGridFilteringLabel" : "Sắp xếp Lớn nhất đến Nhỏ nhất", +"sortLargestToSmallestDataGridFilteringLabel" : "Sắp xếp lớn nhất đến nhỏ nhất", "sortAToZDataGridFilteringLabel" : "Sắp xếp từ A đến Z", -"sortZToADataGridFilteringLabel" : "Sắp xếp Z đến A", +"sortZToADataGridFilteringLabel" : "Sắp xếp từ Z đến A", "sortOldestToNewestDataGridFilteringLabel" : "Sắp xếp Cũ nhất đến Mới nhất", -"sortNewestToOldestDataGridFilteringLabel" : "Sắp xếp từ Mới nhất đến Cũ nhất", -"clearFilterFromDataGridFilteringLabel" : "Xóa bộ lọc khỏi", +"sortNewestToOldestDataGridFilteringLabel" : "Sắp xếp mới nhất đến cũ nhất", "textFiltersDataGridFilteringLabel" : "Bộ lọc văn bản", "numberFiltersDataGridFilteringLabel" : "Bộ lọc số", "dateFiltersDataGridFilteringLabel" : "Bộ lọc ngày", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Và", "orDataGridFilteringLabel" : "Hoặc", "selectAllDataGridFilteringLabel" : "Chọn tất cả", -"sortAndFilterDataGridFilteringLabel" : "Sắp xếp và lọc" +"sortAndFilterDataGridFilteringLabel" : "Sắp xếp và lọc", +"clearFilterDataGridFilteringLabel" : "LÀm sạch bộ lọc", +"fromDataGridFilteringLabel" : "Từ" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zh.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zh.arb index 2d21fd8fa..7f264153d 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zh.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zh.arb @@ -1,11 +1,11 @@ { -"noSelectedDateCalendarLabel" : "未选择日期", -"noEventsCalendarLabel" : "没有事件", +"noSelectedDateCalendarLabel" : "没有选择日期", +"noEventsCalendarLabel" : "没有活动", "ofDataPagerLabel" : "的", -"pagesDataPagerLabel" : "页面", +"pagesDataPagerLabel" : "页数", "rowsPerPageDataPagerLabel" : "每页行数", "pdfBookmarksLabel" : "书签", -"pdfNoBookmarksLabel" : "未找到书签", +"pdfNoBookmarksLabel" : "找不到书签", "pdfScrollStatusOfLabel" : "的", "pdfGoToPageLabel" : "转到页面", "pdfEnterPageNumberLabel" : "输入页码", @@ -13,62 +13,62 @@ "pdfPaginationDialogOkLabel" : "好的", "pdfPaginationDialogCancelLabel" : "取消", "passwordDialogHeaderTextLabel" : "密码保护", -"passwordDialogContentLabel" : "输入密码以打开此 PDF 文件", +"passwordDialogContentLabel" : "输入密码打开此 PDF 文件", "passwordDialogHintTextLabel" : "输入密码", "passwordDialogInvalidPasswordLabel" : "无效的密码", "pdfPasswordDialogOpenLabel" : "打开", "pdfPasswordDialogCancelLabel" : "取消", -"allowedViewDayLabel" : "日", +"allowedViewDayLabel" : "天", "allowedViewWeekLabel" : "星期", "allowedViewWorkWeekLabel" : "工作周", "allowedViewMonthLabel" : "月", "allowedViewScheduleLabel" : "日程", -"allowedViewTimelineDayLabel" : "时间表日", +"allowedViewTimelineDayLabel" : "时间轴日", "allowedViewTimelineWeekLabel" : "时间线周", "allowedViewTimelineWorkWeekLabel" : "时间表工作周", -"allowedViewTimelineMonthLabel" : "时间线月份", +"allowedViewTimelineMonthLabel" : "时间表月份", "todayLabel" : "今天", "weeknumberLabel" : "星期", "allDayLabel" : "一整天", -"muharramLabel" : "穆哈拉姆", +"muharramLabel" : "回历", "safarLabel" : "萨法尔", -"rabi1Label" : "拉比奥瓦尔", +"rabi1Label" : "拉比·奥瓦尔", "rabi2Label" : "拉比阿勒萨尼", -"jumada1Label" : "胡玛达·奥瓦尔", -"jumada2Label" : "朱马达·萨尼", -"rajabLabel" : "拉贾布", +"jumada1Label" : "朱马达·阿瓦瓦尔", +"jumada2Label" : "祖玛达·阿萨尼", +"rajabLabel" : "拉杰卜", "shaabanLabel" : "沙班", "ramadanLabel" : "斋月", "shawwalLabel" : "肖瓦尔", -"dhualqiLabel" : "杜阿尔-基达", -"dhualhiLabel" : "杜哈杰", +"dhualqiLabel" : "Dhu al-Qi'dah", +"dhualhiLabel" : "Dhu al-Hijjah", "shortMuharramLabel" : "嗯。", "shortSafarLabel" : "安全。", -"shortRabi1Label" : "拉比。一世", +"shortRabi1Label" : "拉比。我", "shortRabi2Label" : "拉比。二", -"shortJumada1Label" : "朱姆。一世", -"shortJumada2Label" : "朱姆。二", +"shortJumada1Label" : "滚。我", +"shortJumada2Label" : "滚。二", "shortRajabLabel" : "拉吉。", "shortShaabanLabel" : "沙。", "shortRamadanLabel" : "内存。", "shortShawwalLabel" : "肖。", -"shortDhualqiLabel" : "杜尔-Q", -"shortDhualhiLabel" : "杜尔-H", -"daySpanCountLabel" : "日", +"shortDhualqiLabel" : "Dhu'l-Q", +"shortDhualhiLabel" : "Dhu'l-H", +"daySpanCountLabel" : "天", "series" : "系列", "pdfHyperlinkLabel" : "打开网页", -"pdfHyperlinkContentLabel" : "您要在以下位置打开页面吗", +"pdfHyperlinkContentLabel" : "你想打开页面吗", "pdfHyperlinkDialogOpenLabel" : "打开", "pdfHyperlinkDialogCancelLabel" : "取消", "afterDataGridFilteringLabel" : "后", -"afterOrEqualDataGridFilteringLabel" : "之后或等于", -"beforeDataGridFilteringLabel" : "之前或等于", +"afterOrEqualDataGridFilteringLabel" : "等于或之后", +"beforeDataGridFilteringLabel" : "早于或等于", "beforeOrEqualDataGridFilteringLabel" : "前", "beginsWithDataGridFilteringLabel" : "开始于", "containsDataGridFilteringLabel" : "包含", -"doesNotBeginWithDataGridFilteringLabel" : "不以", +"doesNotBeginWithDataGridFilteringLabel" : "不以开头", "doesNotContainDataGridFilteringLabel" : "不含", -"doesNotEndWithDataGridFilteringLabel" : "不以", +"doesNotEndWithDataGridFilteringLabel" : "不结束于", "doesNotEqualDataGridFilteringLabel" : "不等于", "emptyDataGridFilteringLabel" : "空的", "endsWithDataGridFilteringLabel" : "以。。结束", @@ -83,10 +83,9 @@ "sortSmallestToLargestDataGridFilteringLabel" : "从小到大排序", "sortLargestToSmallestDataGridFilteringLabel" : "从大到小排序", "sortAToZDataGridFilteringLabel" : "从 A 到 Z 排序", -"sortZToADataGridFilteringLabel" : "从 Z 到 A 排序", +"sortZToADataGridFilteringLabel" : "将 Z 排序为 A", "sortOldestToNewestDataGridFilteringLabel" : "从旧到新排序", "sortNewestToOldestDataGridFilteringLabel" : "从最新到最旧排序", -"clearFilterFromDataGridFilteringLabel" : "清除过滤器", "textFiltersDataGridFilteringLabel" : "文本过滤器", "numberFiltersDataGridFilteringLabel" : "数字过滤器", "dateFiltersDataGridFilteringLabel" : "日期过滤器", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "和", "orDataGridFilteringLabel" : "或者", "selectAllDataGridFilteringLabel" : "全选", -"sortAndFilterDataGridFilteringLabel" : "排序和过滤" +"sortAndFilterDataGridFilteringLabel" : "排序和过滤", +"clearFilterDataGridFilteringLabel" : "清除过滤器", +"fromDataGridFilteringLabel" : "从" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zh_HK.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zh_HK.arb index 265bca4a9..91de6e83d 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zh_HK.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zh_HK.arb @@ -1,74 +1,74 @@ { -"noSelectedDateCalendarLabel" : "未選擇日期", -"noEventsCalendarLabel" : "沒有事件", +"noSelectedDateCalendarLabel" : "沒有選擇日期", +"noEventsCalendarLabel" : "沒有活動", "ofDataPagerLabel" : "的", -"pagesDataPagerLabel" : "頁面", +"pagesDataPagerLabel" : "頁數", "rowsPerPageDataPagerLabel" : "每頁行數", "pdfBookmarksLabel" : "書籤", -"pdfNoBookmarksLabel" : "未找到書籤", +"pdfNoBookmarksLabel" : "找不到書籤", "pdfScrollStatusOfLabel" : "的", "pdfGoToPageLabel" : "轉到頁面", "pdfEnterPageNumberLabel" : "輸入頁碼", -"pdfInvalidPageNumberLabel" : "請輸入有效號碼", +"pdfInvalidPageNumberLabel" : "請輸入有效號碼", "pdfPaginationDialogOkLabel" : "好的", "pdfPaginationDialogCancelLabel" : "取消", "passwordDialogHeaderTextLabel" : "密碼保護", -"passwordDialogContentLabel" : "輸入密碼以打開此 PDF 文件", +"passwordDialogContentLabel" : "輸入密碼打開此 PDF 文件", "passwordDialogHintTextLabel" : "輸入密碼", "passwordDialogInvalidPasswordLabel" : "無效的密碼", "pdfPasswordDialogOpenLabel" : "打開", "pdfPasswordDialogCancelLabel" : "取消", -"allowedViewDayLabel" : "日", +"allowedViewDayLabel" : "天", "allowedViewWeekLabel" : "星期", "allowedViewWorkWeekLabel" : "工作週", "allowedViewMonthLabel" : "月", "allowedViewScheduleLabel" : "日程", -"allowedViewTimelineDayLabel" : "時間表日", +"allowedViewTimelineDayLabel" : "時間軸日", "allowedViewTimelineWeekLabel" : "時間線週", "allowedViewTimelineWorkWeekLabel" : "時間表工作週", -"allowedViewTimelineMonthLabel" : "時間線月份", +"allowedViewTimelineMonthLabel" : "時間表月份", "todayLabel" : "今天", "weeknumberLabel" : "星期", "allDayLabel" : "一整天", -"muharramLabel" : "穆哈拉姆", +"muharramLabel" : "回曆", "safarLabel" : "薩法爾", -"rabi1Label" : "拉比奧瓦爾", +"rabi1Label" : "拉比·奧瓦爾", "rabi2Label" : "拉比阿勒薩尼", -"jumada1Label" : "胡瑪達·奧瓦爾", -"jumada2Label" : "朱馬達·薩尼", -"rajabLabel" : "拉賈布", +"jumada1Label" : "朱馬達·阿瓦瓦爾", +"jumada2Label" : "祖瑪達·阿薩尼", +"rajabLabel" : "拉傑卜", "shaabanLabel" : "沙班", "ramadanLabel" : "齋月", "shawwalLabel" : "肖瓦爾", -"dhualqiLabel" : "杜阿爾-基達", -"dhualhiLabel" : "杜哈傑", +"dhualqiLabel" : "Dhu al-Qi'dah", +"dhualhiLabel" : "Dhu al-Hijjah", "shortMuharramLabel" : "嗯。", "shortSafarLabel" : "安全。", -"shortRabi1Label" : "拉比。一世", +"shortRabi1Label" : "拉比。我", "shortRabi2Label" : "拉比。二", -"shortJumada1Label" : "朱姆。一世", -"shortJumada2Label" : "朱姆。二", +"shortJumada1Label" : "滾。我", +"shortJumada2Label" : "滾。二", "shortRajabLabel" : "拉吉。", "shortShaabanLabel" : "沙。", "shortRamadanLabel" : "內存。", "shortShawwalLabel" : "肖。", -"shortDhualqiLabel" : "杜爾-Q", -"shortDhualhiLabel" : "杜爾-H", -"daySpanCountLabel" : "日", +"shortDhualqiLabel" : "Dhu'l-Q", +"shortDhualhiLabel" : "Dhu'l-H", +"daySpanCountLabel" : "天", "series" : "系列", "pdfHyperlinkLabel" : "打開網頁", -"pdfHyperlinkContentLabel" : "您要在以下位置打開頁面嗎", +"pdfHyperlinkContentLabel" : "你想打開頁面嗎", "pdfHyperlinkDialogOpenLabel" : "打開", "pdfHyperlinkDialogCancelLabel" : "取消", "afterDataGridFilteringLabel" : "後", -"afterOrEqualDataGridFilteringLabel" : "之後或等於", -"beforeDataGridFilteringLabel" : "之前或等於", +"afterOrEqualDataGridFilteringLabel" : "等於或之後", +"beforeDataGridFilteringLabel" : "早於或等於", "beforeOrEqualDataGridFilteringLabel" : "前", "beginsWithDataGridFilteringLabel" : "開始於", "containsDataGridFilteringLabel" : "包含", -"doesNotBeginWithDataGridFilteringLabel" : "不以", +"doesNotBeginWithDataGridFilteringLabel" : "不以開頭", "doesNotContainDataGridFilteringLabel" : "不含", -"doesNotEndWithDataGridFilteringLabel" : "不以", +"doesNotEndWithDataGridFilteringLabel" : "不結束於", "doesNotEqualDataGridFilteringLabel" : "不等於", "emptyDataGridFilteringLabel" : "空的", "endsWithDataGridFilteringLabel" : "以。。結束", @@ -83,10 +83,9 @@ "sortSmallestToLargestDataGridFilteringLabel" : "從小到大排序", "sortLargestToSmallestDataGridFilteringLabel" : "從大到小排序", "sortAToZDataGridFilteringLabel" : "從 A 到 Z 排序", -"sortZToADataGridFilteringLabel" : "從 Z 到 A 排序", +"sortZToADataGridFilteringLabel" : "將 Z 排序為 A", "sortOldestToNewestDataGridFilteringLabel" : "從舊到新排序", "sortNewestToOldestDataGridFilteringLabel" : "從最新到最舊排序", -"clearFilterFromDataGridFilteringLabel" : "清除過濾器", "textFiltersDataGridFilteringLabel" : "文本過濾器", "numberFiltersDataGridFilteringLabel" : "數字過濾器", "dateFiltersDataGridFilteringLabel" : "日期過濾器", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "和", "orDataGridFilteringLabel" : "或者", "selectAllDataGridFilteringLabel" : "全選", -"sortAndFilterDataGridFilteringLabel" : "排序和過濾" +"sortAndFilterDataGridFilteringLabel" : "排序和過濾", +"clearFilterDataGridFilteringLabel" : "清除過濾器", +"fromDataGridFilteringLabel" : "從" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zh_TW.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zh_TW.arb index 294c79846..91de6e83d 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zh_TW.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zh_TW.arb @@ -1,74 +1,74 @@ { -"noSelectedDateCalendarLabel" : "未選擇日期", -"noEventsCalendarLabel" : "沒有事件", +"noSelectedDateCalendarLabel" : "沒有選擇日期", +"noEventsCalendarLabel" : "沒有活動", "ofDataPagerLabel" : "的", -"pagesDataPagerLabel" : "頁面", +"pagesDataPagerLabel" : "頁數", "rowsPerPageDataPagerLabel" : "每頁行數", "pdfBookmarksLabel" : "書籤", -"pdfNoBookmarksLabel" : "未找到書籤", +"pdfNoBookmarksLabel" : "找不到書籤", "pdfScrollStatusOfLabel" : "的", "pdfGoToPageLabel" : "轉到頁面", "pdfEnterPageNumberLabel" : "輸入頁碼", -"pdfInvalidPageNumberLabel" : "請輸入有效號碼", +"pdfInvalidPageNumberLabel" : "請輸入有效號碼", "pdfPaginationDialogOkLabel" : "好的", "pdfPaginationDialogCancelLabel" : "取消", "passwordDialogHeaderTextLabel" : "密碼保護", -"passwordDialogContentLabel" : "輸入密碼以打開此 PDF 文件", +"passwordDialogContentLabel" : "輸入密碼打開此 PDF 文件", "passwordDialogHintTextLabel" : "輸入密碼", "passwordDialogInvalidPasswordLabel" : "無效的密碼", "pdfPasswordDialogOpenLabel" : "打開", "pdfPasswordDialogCancelLabel" : "取消", -"allowedViewDayLabel" : "日", +"allowedViewDayLabel" : "天", "allowedViewWeekLabel" : "星期", "allowedViewWorkWeekLabel" : "工作週", "allowedViewMonthLabel" : "月", "allowedViewScheduleLabel" : "日程", -"allowedViewTimelineDayLabel" : "時間表日", +"allowedViewTimelineDayLabel" : "時間軸日", "allowedViewTimelineWeekLabel" : "時間線週", "allowedViewTimelineWorkWeekLabel" : "時間表工作週", -"allowedViewTimelineMonthLabel" : "時間線月份", +"allowedViewTimelineMonthLabel" : "時間表月份", "todayLabel" : "今天", "weeknumberLabel" : "星期", "allDayLabel" : "一整天", -"muharramLabel" : "穆哈拉姆", +"muharramLabel" : "回曆", "safarLabel" : "薩法爾", -"rabi1Label" : "拉比奧瓦爾", +"rabi1Label" : "拉比·奧瓦爾", "rabi2Label" : "拉比阿勒薩尼", -"jumada1Label" : "胡瑪達·奧瓦爾", -"jumada2Label" : "朱馬達·薩尼", -"rajabLabel" : "拉賈布", +"jumada1Label" : "朱馬達·阿瓦瓦爾", +"jumada2Label" : "祖瑪達·阿薩尼", +"rajabLabel" : "拉傑卜", "shaabanLabel" : "沙班", "ramadanLabel" : "齋月", "shawwalLabel" : "肖瓦爾", -"dhualqiLabel" : "杜阿爾-基達", -"dhualhiLabel" : "杜哈傑", +"dhualqiLabel" : "Dhu al-Qi'dah", +"dhualhiLabel" : "Dhu al-Hijjah", "shortMuharramLabel" : "嗯。", "shortSafarLabel" : "安全。", -"shortRabi1Label" : "拉比。一世", +"shortRabi1Label" : "拉比。我", "shortRabi2Label" : "拉比。二", -"shortJumada1Label" : "朱姆。一世", -"shortJumada2Label" : "朱姆。二", +"shortJumada1Label" : "滾。我", +"shortJumada2Label" : "滾。二", "shortRajabLabel" : "拉吉。", "shortShaabanLabel" : "沙。", "shortRamadanLabel" : "內存。", "shortShawwalLabel" : "肖。", -"shortDhualqiLabel" : "杜爾-Q", -"shortDhualhiLabel" : "杜爾-H", -"daySpanCountLabel" : "日", +"shortDhualqiLabel" : "Dhu'l-Q", +"shortDhualhiLabel" : "Dhu'l-H", +"daySpanCountLabel" : "天", "series" : "系列", "pdfHyperlinkLabel" : "打開網頁", -"pdfHyperlinkContentLabel" : "您要在以下位置打開頁面嗎", +"pdfHyperlinkContentLabel" : "你想打開頁面嗎", "pdfHyperlinkDialogOpenLabel" : "打開", "pdfHyperlinkDialogCancelLabel" : "取消", "afterDataGridFilteringLabel" : "後", -"afterOrEqualDataGridFilteringLabel" : "之後或等於", -"beforeDataGridFilteringLabel" : "之前或等於", +"afterOrEqualDataGridFilteringLabel" : "等於或之後", +"beforeDataGridFilteringLabel" : "早於或等於", "beforeOrEqualDataGridFilteringLabel" : "前", "beginsWithDataGridFilteringLabel" : "開始於", "containsDataGridFilteringLabel" : "包含", -"doesNotBeginWithDataGridFilteringLabel" : "不以", +"doesNotBeginWithDataGridFilteringLabel" : "不以開頭", "doesNotContainDataGridFilteringLabel" : "不含", -"doesNotEndWithDataGridFilteringLabel" : "不以", +"doesNotEndWithDataGridFilteringLabel" : "不結束於", "doesNotEqualDataGridFilteringLabel" : "不等於", "emptyDataGridFilteringLabel" : "空的", "endsWithDataGridFilteringLabel" : "以。。結束", @@ -83,10 +83,9 @@ "sortSmallestToLargestDataGridFilteringLabel" : "從小到大排序", "sortLargestToSmallestDataGridFilteringLabel" : "從大到小排序", "sortAToZDataGridFilteringLabel" : "從 A 到 Z 排序", -"sortZToADataGridFilteringLabel" : "從 Z 到 A 排序", +"sortZToADataGridFilteringLabel" : "將 Z 排序為 A", "sortOldestToNewestDataGridFilteringLabel" : "從舊到新排序", "sortNewestToOldestDataGridFilteringLabel" : "從最新到最舊排序", -"clearFilterFromDataGridFilteringLabel" : "清除過濾器", "textFiltersDataGridFilteringLabel" : "文本過濾器", "numberFiltersDataGridFilteringLabel" : "數字過濾器", "dateFiltersDataGridFilteringLabel" : "日期過濾器", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "和", "orDataGridFilteringLabel" : "或者", "selectAllDataGridFilteringLabel" : "全選", -"sortAndFilterDataGridFilteringLabel" : "排序和過濾" +"sortAndFilterDataGridFilteringLabel" : "排序和過濾", +"clearFilterDataGridFilteringLabel" : "清除過濾器", +"fromDataGridFilteringLabel" : "從" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zu.arb b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zu.arb index f6216d047..c33f9ad5d 100644 --- a/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zu.arb +++ b/packages/syncfusion_localizations/lib/src/l10n/syncfusion_zu.arb @@ -86,7 +86,6 @@ "sortZToADataGridFilteringLabel" : "Hlunga u-Z ukuya ku-A", "sortOldestToNewestDataGridFilteringLabel" : "Hlunga Okudala Kunazo Zonke", "sortNewestToOldestDataGridFilteringLabel" : "Hlunga Okusha Kwakudala", -"clearFilterFromDataGridFilteringLabel" : "Sula Isihlungi Kusuka", "textFiltersDataGridFilteringLabel" : "Izihlungi Zombhalo", "numberFiltersDataGridFilteringLabel" : "Izihlungi Zezinombolo", "dateFiltersDataGridFilteringLabel" : "Izihlungi Zedethi", @@ -98,5 +97,7 @@ "andDataGridFilteringLabel" : "Futhi", "orDataGridFilteringLabel" : "Noma", "selectAllDataGridFilteringLabel" : "Khetha konke", -"sortAndFilterDataGridFilteringLabel" : "Hlunga futhi Hlunga" +"sortAndFilterDataGridFilteringLabel" : "Hlunga futhi Hlunga", +"clearFilterDataGridFilteringLabel" : "Sula Isihlungi", +"fromDataGridFilteringLabel" : "Kusuka" } \ No newline at end of file diff --git a/packages/syncfusion_localizations/pubspec.yaml b/packages/syncfusion_localizations/pubspec.yaml index cbae173f7..f2e2c8e05 100644 --- a/packages/syncfusion_localizations/pubspec.yaml +++ b/packages/syncfusion_localizations/pubspec.yaml @@ -1,16 +1,16 @@ name: syncfusion_localizations description: Syncfusion Localizations package contains localized text for 77 cultures for all the applicable Syncfusion Flutter Widgets. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_localizations environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter intl: ">=0.15.0 <0.20.0" - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 dev_dependencies: flutter_test: diff --git a/packages/syncfusion_officechart/README.md b/packages/syncfusion_officechart/README.md index 0ff296ed0..379686135 100644 --- a/packages/syncfusion_officechart/README.md +++ b/packages/syncfusion_officechart/README.md @@ -46,15 +46,12 @@ Explore the full capability of our Flutter widgets on your device by installing

- - + +

- -

-

@@ -479,18 +476,11 @@ workbook.dispose(); ``` ## Support and feedback -* For any other queries, contact our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post the queries through the [Community forums](https://www.syncfusion.com/forums). You can also submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For any other queries, contact our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post the queries through the [Community forums](https://www.syncfusion.com/forums). You can also submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew the subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at sales@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to-deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. - - - - - - - +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to-deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_officechart/example/pubspec.yaml b/packages/syncfusion_officechart/example/pubspec.yaml index 12ec7b558..b88dfa223 100644 --- a/packages/syncfusion_officechart/example/pubspec.yaml +++ b/packages/syncfusion_officechart/example/pubspec.yaml @@ -2,7 +2,7 @@ name: officechart_example description: Demo for creating a Excel file with chart using syncfusion_officechart package. environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: diff --git a/packages/syncfusion_officechart/lib/officechart.dart b/packages/syncfusion_officechart/lib/officechart.dart index 78728c1dd..4dbe8817b 100644 --- a/packages/syncfusion_officechart/lib/officechart.dart +++ b/packages/syncfusion_officechart/lib/officechart.dart @@ -4,8 +4,7 @@ import 'dart:convert'; import 'dart:core'; import 'package:archive/archive.dart'; -// ignore: depend_on_referenced_packages -import 'package:flutter_test/flutter_test.dart'; + import 'package:syncfusion_flutter_xlsio/xlsio.dart'; import 'package:xml/xml.dart'; @@ -19,11 +18,11 @@ part 'src/chart/chart_impl.dart'; part 'src/chart/chart_legend.dart'; part 'src/chart/chart_plotarea.dart'; part 'src/chart/chart_serialization.dart'; +part 'src/chart/chart_format.dart'; +part 'src/chart/chart_fomat_impl.dart'; part 'src/chart/chart_serie.dart'; +part 'src/chart/chart_serie_dataformat.dart'; +part 'src/chart/chartserie_dataformat_impl.dart'; part 'src/chart/chart_series_collection.dart'; part 'src/chart/chart_text_area.dart'; part 'src/chart/chart_value_axis.dart'; -part 'src/test/chart.dart'; -part 'src/test/images.dart'; -//testing -part 'src/test/sample_browser_samples.dart'; diff --git a/packages/syncfusion_officechart/lib/src/chart/chart_enum.dart b/packages/syncfusion_officechart/lib/src/chart/chart_enum.dart index a81dff8cc..640a4ccef 100644 --- a/packages/syncfusion_officechart/lib/src/chart/chart_enum.dart +++ b/packages/syncfusion_officechart/lib/src/chart/chart_enum.dart @@ -5,12 +5,24 @@ enum ExcelChartType { /// Represents the clustered column chart. column, + /// Represnts the 3D column chart + column3D, + /// Represents the column stacked chart. columnStacked, /// Represents the 100% stacked column chart. columnStacked100, + /// Represents the 3D clustered column chart. + columnClustered3D, + + /// Represents the 3D stacked column chart. + columnStacked3D, + + /// Represents the 3D 100% stacked column chart. + columnStacked1003D, + /// Represents the clustered bar chart. bar, @@ -20,6 +32,15 @@ enum ExcelChartType { /// Represents the 100% stacked bar chart. barStacked100, + /// Represents the 3D stacked bar chart. + barStacked3D, + + /// Represents the 3D clustered bar chart. + barClustered3D, + + /// Represents the 3D 100% stacked bar chart. + barStacked1003D, + /// Represents the line chart. line, @@ -29,9 +50,30 @@ enum ExcelChartType { /// Represents the 100% stacked line chart. lineStacked100, + /// Represents the line chart with markers. + lineMarkers, + + /// Represents the stacked line chart with markers. + lineMarkersStacked, + + /// Represents the 100% stacked line chart with markers. + lineMarkersStacked100, + + /// Represents the 3D line chart. + line3D, + /// Represents the Pie chart. pie, + /// Represents the Pie chart. + pie3D, + + /// Represents the pie of pie chart. + pieOfPie, + + /// Represents the bar of pie chart. + pieBar, + /// Represents the area chart. area, @@ -39,7 +81,25 @@ enum ExcelChartType { areaStacked, /// Represents the 100% stacked area chart. - areaStacked100 + areaStacked100, + + /// Represents the stock chart with high, low and close values. + stockHighLowClose, + + /// Represents the stock chart with open, high, low and close values. + stockOpenHighLowClose, + + /// Represents the stock chart with volume, high, low and close values. + stockVolumeHighLowClose, + + /// Represents the stock chart with volume, open, high, low and close values. + stockVolumeOpenHighLowClose, + + /// Represents the doughnut chart. + doughnut, + + /// Represents the doughnut Exploded chart. + doughnutExploded, } /// Specifies the line pattern for the border. @@ -104,3 +164,36 @@ enum ExcelAxisType { /// Axis displays data series. serie, } + +/// Specifies the marker style for a point or series in a line chart, scatter chart, or radar chart. +enum ExcelChartMarkerType { + /// Represents no markers. + none, + + /// Represents square markers. + square, + + /// Represents circular marker + circle, + + /// Represents diamond shaped markers. + diamond, + + /// Represents triangle markers. + triangle, + + /// Represents square markers with X. + xSquare, + + /// Represents dow jones style custom marker + dowJones, + + /// Represents plus sign marker + plusSign, + + /// Represents square markers with asterisk + starSquare, + + /// Represents standard deviation style custome marker + standardDeviation, +} diff --git a/packages/syncfusion_officechart/lib/src/chart/chart_impl.dart b/packages/syncfusion_officechart/lib/src/chart/chart_impl.dart index bb333885a..625756297 100644 --- a/packages/syncfusion_officechart/lib/src/chart/chart_impl.dart +++ b/packages/syncfusion_officechart/lib/src/chart/chart_impl.dart @@ -49,7 +49,9 @@ class Chart { /// Represent the clustered chart collection. final List _chartsCluster = [ ExcelChartType.bar, - ExcelChartType.column + ExcelChartType.column, + ExcelChartType.columnClustered3D, + ExcelChartType.barClustered3D ]; /// Represent the stacked chart collection. @@ -57,7 +59,10 @@ class Chart { ExcelChartType.barStacked, ExcelChartType.columnStacked, ExcelChartType.lineStacked, + ExcelChartType.lineMarkersStacked, ExcelChartType.areaStacked, + ExcelChartType.columnStacked3D, + ExcelChartType.barStacked3D ]; /// Represent 100% charts.Here each value in a series is shown as a portion of 100%. @@ -65,12 +70,43 @@ class Chart { ExcelChartType.columnStacked100, ExcelChartType.barStacked100, ExcelChartType.lineStacked100, - ExcelChartType.areaStacked100 + ExcelChartType.areaStacked100, + ExcelChartType.columnStacked1003D, + ExcelChartType.barStacked1003D, + ExcelChartType.areaStacked100, + ExcelChartType.lineMarkersStacked100, ]; /// Chart type. ExcelChartType _chartType = ExcelChartType.column; + ///Indicated wheather chart type is 3D + bool _is3DChart = false; + + ///Indicates wheather chart type is bar/column + bool _isColumnOrBar = false; + + /// Indicates whether rotation has default value. + bool _isDefaultRotation = true; + + /// Indicates whether elevation has default value. + bool _isdefaultElevation = true; + + ///Represents rotation of 3D chart + int _rotation = 20; + + ///Represents perspective of 3D chart + int _perspective = 15; + + ///Represents elvation angle of 3D chart + int _elevationAngle = 15; + + /// Depth of points relative to width. + int _depthPercent = 100; + + ///Indicates whether the chart axes are at right angles, independent of chart rotation or elevation. + bool _rightAngleAxes = false; + /// Represent chart index. late int index; @@ -202,6 +238,13 @@ class Chart { if (!_chartType.toString().contains('area')) { _primaryCategoryAxis._isBetween = true; } + if (value.toString().endsWith('3D')) { + _is3DChart = true; + } + if (value.toString().contains('column') || + value.toString().contains('bar')) { + _isColumnOrBar = true; + } } /// Gets the boolean value to display the chart legend, True by default. @@ -645,6 +688,250 @@ class Chart { } } + /// sets the rotation of the 3D chart view + /// (the rotation of the plot area around the z-axis, in degrees)-(0 to 360 degrees). + /// The value of this property must be from 0 to 360, except for 3-D bar charts, + /// where the value must be from 0 to 44. The default value is 20. Applies only to 3-D charts. + /// The following code illustrates how to set for 3-D charts. + /// ```dart + /// final Workbook workbook = Workbook(); + /// final Worksheet sheet = workbook.worksheets[0]; + /// sheet.getRangeByName('A11').text = 'Venue'; + /// sheet.getRangeByName('A12').text = 'Seating & Decor'; + /// sheet.getRangeByName('A13').text = 'Technical Team'; + /// sheet.getRangeByName('A14').text = 'performers'; + /// sheet.getRangeByName('A15').text = "performer's Transport"; + /// sheet.getRangeByName('A16').text = "performer's stay"; + /// sheet.getRangeByName('A17').text = 'Marketing'; + /// sheet.getRangeByName('B11:B17').numberFormat = r'$#,##0_)'; + /// sheet.getRangeByName('B11').number = 17500; + /// sheet.getRangeByName('B12').number = 1828; + /// sheet.getRangeByName('B13').number = 800; + /// sheet.getRangeByName('B14').number = 14000; + /// sheet.getRangeByName('B15').number = 2600; + /// sheet.getRangeByName('B16').number = 4464; + /// sheet.getRangeByName('B17').number = 2700; + /// final ChartCollection charts = ChartCollection(sheet); + /// final Chart chart = charts.add(); + /// chart.chartType = ExcelChartType.line3D; + /// chart.dataRange = sheet.getRangeByName('A11:B17'); + /// chart.isSeriesInRows = false; + /// chart.chartTitle = 'Line Chart 3D'; + /// chart.rotation = 20; + /// chart.topRow = 8; + /// chart.leftColumn = 1; + /// chart.bottomRow = 23; + /// chart.rightColumn = 8; + /// sheet.charts = charts; + /// final List bytes = workbook.saveAsStream(); + /// saveAsExcel(bytes, 'FLUT_6975_3D_LineChart.xlsx'); + /// ``` + int get rotation { + return _rotation; + } + + ///Set the rotation of 3D view of chart. + set rotation(int value) { + if (value < 0 || value > 360) { + throw Exception('rotation'); + } + _rotation = value; + _isDefaultRotation = false; + } + + /// Get the perspective for the 3D chart view (0 to 100). + /// ```dart + /// final Workbook workbook = Workbook(); + /// final Worksheet sheet = workbook.worksheets[0]; + /// sheet.getRangeByName('A11').text = 'Venue'; + /// sheet.getRangeByName('A12').text = 'Seating & Decor'; + /// sheet.getRangeByName('A13').text = 'Technical Team'; + /// sheet.getRangeByName('A14').text = 'performers'; + /// sheet.getRangeByName('A15').text = "performer's Transport"; + /// sheet.getRangeByName('A16').text = "performer's stay"; + /// sheet.getRangeByName('A17').text = 'Marketing'; + /// sheet.getRangeByName('B11:B17').numberFormat = r'$#,##0_)'; + /// sheet.getRangeByName('B11').number = 17500; + /// sheet.getRangeByName('B12').number = 1828; + /// sheet.getRangeByName('B13').number = 800; + /// sheet.getRangeByName('B14').number = 14000; + /// sheet.getRangeByName('B15').number = 2600; + /// sheet.getRangeByName('B16').number = 4464; + /// sheet.getRangeByName('B17').number = 2700; + /// final ChartCollection charts = ChartCollection(sheet); + /// final Chart chart = charts.add(); + /// chart.chartType = ExcelChartType.line3D; + /// chart.dataRange = sheet.getRangeByName('A11:B17'); + /// chart.isSeriesInRows = false; + /// chart.chartTitle = 'Line Chart 3D'; + /// chart.perspective = 45; + /// chart.topRow = 8; + /// chart.leftColumn = 1; + /// chart.bottomRow = 23; + /// chart.rightColumn = 8; + /// sheet.charts = charts; + /// final List bytes = workbook.saveAsStream(); + /// saveAsExcel(bytes, 'FLUT_6975_3D_LineChart.xlsx'); + /// ``` + int get perspective { + return _perspective; + } + + ///set the persepective of 3D chart + set perspective(int value) { + if (value < 0 || value > 100) { + throw Exception('elevation'); + } + + _perspective = value; + } + + /// Get the elevation of the 3-D chart view, in degrees (-90 to +90 degrees). + /// ```dart + /// final Workbook workbook = Workbook(); + /// final Worksheet sheet = workbook.worksheets[0]; + /// sheet.getRangeByName('A11').text = 'Venue'; + /// sheet.getRangeByName('A12').text = 'Seating & Decor'; + /// sheet.getRangeByName('A13').text = 'Technical Team'; + /// sheet.getRangeByName('A14').text = 'performers'; + /// sheet.getRangeByName('A15').text = "performer's Transport"; + /// sheet.getRangeByName('A16').text = "performer's stay"; + /// sheet.getRangeByName('A17').text = 'Marketing'; + /// sheet.getRangeByName('B11:B17').numberFormat = r'$#,##0_)'; + /// sheet.getRangeByName('B11').number = 17500; + /// sheet.getRangeByName('B12').number = 1828; + /// sheet.getRangeByName('B13').number = 800; + /// sheet.getRangeByName('B14').number = 14000; + /// sheet.getRangeByName('B15').number = 2600; + /// sheet.getRangeByName('B16').number = 4464; + /// sheet.getRangeByName('B17').number = 2700; + /// final ChartCollection charts = ChartCollection(sheet); + /// final Chart chart = charts.add(); + /// chart.chartType = ExcelChartType.line3D; + /// chart.dataRange = sheet.getRangeByName('A11:B17'); + /// chart.isSeriesInRows = false; + /// chart.chartTitle = 'Line Chart 3D'; + /// chart.elevation = 15; + /// chart.topRow = 8; + /// chart.leftColumn = 1; + /// chart.bottomRow = 23; + /// chart.rightColumn = 8; + /// sheet.charts = charts; + /// final List bytes = workbook.saveAsStream(); + /// saveAsExcel(bytes, 'FLUT_6975_3D_LineChart.xlsx'); + /// ``` + int get elevation { + return _elevationAngle; + } + + ///set the elevation of 3D chart + set elevation(int value) { + if (value < -90 || value > 90) { + throw Exception('elevation'); + } + _elevationAngle = value; + _isdefaultElevation = false; + } + + /// Returns the depth of a 3-D chart as a percentage of the chart width + /// (between 20 and 2000 percent). + /// ```dart + /// final Workbook workbook = Workbook(); + /// final Worksheet sheet = workbook.worksheets[0]; + /// sheet.getRangeByName('A11').text = 'Venue'; + /// sheet.getRangeByName('A12').text = 'Seating & Decor'; + /// sheet.getRangeByName('A13').text = 'Technical Team'; + /// sheet.getRangeByName('A14').text = 'performers'; + /// sheet.getRangeByName('A15').text = "performer's Transport"; + /// sheet.getRangeByName('A16').text = "performer's stay"; + /// sheet.getRangeByName('A17').text = 'Marketing'; + /// sheet.getRangeByName('B11:B17').numberFormat = r'$#,##0_)'; + /// sheet.getRangeByName('B11').number = 17500; + /// sheet.getRangeByName('B12').number = 1828; + /// sheet.getRangeByName('B13').number = 800; + /// sheet.getRangeByName('B14').number = 14000; + /// sheet.getRangeByName('B15').number = 2600; + /// sheet.getRangeByName('B16').number = 4464; + /// sheet.getRangeByName('B17').number = 2700; + /// final ChartCollection charts = ChartCollection(sheet); + /// final Chart chart = charts.add(); + /// chart.chartType = ExcelChartType.line3D; + /// chart.dataRange = sheet.getRangeByName('A11:B17'); + /// chart.isSeriesInRows = false; + /// chart.chartTitle = 'Line Chart 3D'; + /// chart.depthPercent = 45; + /// chart.topRow = 8; + /// chart.leftColumn = 1; + /// chart.bottomRow = 23; + /// chart.rightColumn = 8; + /// sheet.charts = charts; + /// final List bytes = workbook.saveAsStream(); + /// saveAsExcel(bytes, 'FLUT_6975_3D_LineChart.xlsx'); + /// ``` + int get depthPercent { + return _depthPercent; + } + + ///set the elevation of 3D chart + set depthPercent(int value) { + if (value < -90 || value > 90) { + throw Exception('elevation'); + } + _depthPercent = value; + } + + /// True if the chart axes are at right angles, independent of chart rotation or elevation. otherwise False. + /// Returns the RightAngleAxes of a 3-D chart as a percentage of the chart width + /// (between 20 and 2000 percent). + /// ```dart + /// final Workbook workbook = Workbook(); + /// final Worksheet sheet = workbook.worksheets[0]; + /// sheet.getRangeByName('A11').text = 'Venue'; + /// sheet.getRangeByName('A12').text = 'Seating & Decor'; + /// sheet.getRangeByName('A13').text = 'Technical Team'; + /// sheet.getRangeByName('A14').text = 'performers'; + /// sheet.getRangeByName('A15').text = "performer's Transport"; + /// sheet.getRangeByName('A16').text = "performer's stay"; + /// sheet.getRangeByName('A17').text = 'Marketing'; + /// sheet.getRangeByName('B11:B17').numberFormat = r'$#,##0_)'; + /// sheet.getRangeByName('B11').number = 17500; + /// sheet.getRangeByName('B12').number = 1828; + /// sheet.getRangeByName('B13').number = 800; + /// sheet.getRangeByName('B14').number = 14000; + /// sheet.getRangeByName('B15').number = 2600; + /// sheet.getRangeByName('B16').number = 4464; + /// sheet.getRangeByName('B17').number = 2700; + /// final ChartCollection charts = ChartCollection(sheet); + /// final Chart chart = charts.add(); + /// chart.chartType = ExcelChartType.line3D; + /// chart.dataRange = sheet.getRangeByName('A11:B17'); + /// chart.isSeriesInRows = false; + /// chart.chartTitle = 'Line Chart 3D'; + /// chart.depthPercent = 45; + /// chart.topRow = 8; + /// chart.leftColumn = 1; + /// chart.bottomRow = 23; + /// chart.rightColumn = 8; + ///chart.rightAngleAxes=false; + /// sheet.charts = charts; + /// final List bytes = workbook.saveAsStream(); + /// saveAsExcel(bytes, 'FLUT_6975_3D_LineChart.xlsx'); + /// ``` + bool get rightAngleAxes { + if (_rightAngleAxes == null) { + return false; + } + return _rightAngleAxes; + } + + ///set the right angle axes of 3D chart + set rightAngleAxes(bool value) { + _rightAngleAxes = value; + if (!value) { + _isColumnOrBar = false; + } + } + /// Finds the category range in the specified chart range. // ignore: unused_element Range _getCategoryRange( @@ -737,8 +1024,12 @@ class Chart { ? range.worksheet.getRangeByIndex(iRowColumn, i) : range.worksheet.getRangeByIndex(i, iRowColumn); - bIsName = (curRange.number != null || - (curRange.dateTime == null && curRange.text == null)) || + bIsName = (curRange.number != null && + curRange.dateTime == null && + curRange.text == null) || + (curRange.dateTime == null && + curRange.text == null && + curRange.number == null) || curRange.formula != null; if (!bIsName) { diff --git a/packages/syncfusion_officechart/lib/src/chart/chart_serialization.dart b/packages/syncfusion_officechart/lib/src/chart/chart_serialization.dart index 9a96328ac..0b7fe02ed 100644 --- a/packages/syncfusion_officechart/lib/src/chart/chart_serialization.dart +++ b/packages/syncfusion_officechart/lib/src/chart/chart_serialization.dart @@ -43,6 +43,9 @@ class ChartSerialization { if (chart.hasTitle) { _serializeTitle(builder, chart.chartTitleArea); } + if (chart._is3DChart) { + _serializeView3D(builder, chart); + } _serializePlotArea(builder, chart); if (chart.series.count > 0 && chart.hasLegend) { _serializeLegend(builder, chart.legend!); @@ -303,7 +306,10 @@ class ChartSerialization { case ExcelChartType.line: case ExcelChartType.lineStacked: + case ExcelChartType.lineMarkers: case ExcelChartType.lineStacked100: + case ExcelChartType.lineMarkersStacked: + case ExcelChartType.lineMarkersStacked100: _serializeLineChart(builder, chart); break; @@ -316,11 +322,43 @@ class ChartSerialization { case ExcelChartType.pie: _serializePieChart(builder, chart); break; + + case ExcelChartType.pieBar: + case ExcelChartType.pieOfPie: + _serializeOfPieChart(builder, chart); + break; + case ExcelChartType.pie3D: + _serializeOfPie3DChart(builder, chart); + break; + case ExcelChartType.line3D: + _serializeLine3DChart(builder, chart); + break; + case ExcelChartType.barStacked1003D: + case ExcelChartType.barStacked3D: + case ExcelChartType.barClustered3D: + case ExcelChartType.columnClustered3D: + case ExcelChartType.columnStacked3D: + case ExcelChartType.columnStacked1003D: + case ExcelChartType.column3D: + _serializeBar3DChart(builder, chart); + break; + + case ExcelChartType.stockHighLowClose: + case ExcelChartType.stockOpenHighLowClose: + case ExcelChartType.stockVolumeHighLowClose: + case ExcelChartType.stockVolumeOpenHighLowClose: + _serializeStockChart(builder, chart); + break; + case ExcelChartType.doughnut: + case ExcelChartType.doughnutExploded: + _serializedoughnutchart(builder, chart); + break; } } /// serializes Line chart. void _serializeLineChart(XmlBuilder builder, Chart chart) { + final ExcelChartType type = chart.series[0]._serieType; builder.element('c:lineChart', nest: () { _serializeChartGrouping(builder, chart); builder.element('c:varyColors', nest: () { @@ -330,6 +368,13 @@ class ChartSerialization { final ChartSerie firstSerie = chart.series[i]; _serializeSerie(builder, firstSerie); } + if (type == ExcelChartType.lineMarkers || + type == ExcelChartType.lineMarkersStacked || + type == ExcelChartType.lineMarkersStacked100) { + builder.element('c:marker', nest: () { + builder.attribute('val', 1); + }); + } builder.element('c:axId', nest: () { builder.attribute('val', 59983360); }); @@ -342,6 +387,7 @@ class ChartSerialization { /// serializes Bar/ColumnClustered chart. void _serializeBarChart(XmlBuilder builder, Chart chart) { + late int gapwidth; builder.element('c:barChart', nest: () { final String strDirection = chart.chartType.toString().contains('bar') ? 'bar' : 'col'; @@ -355,9 +401,10 @@ class ChartSerialization { for (int i = 0; i < chart.series.count; i++) { final ChartSerie firstSerie = chart.series[i]; _serializeSerie(builder, firstSerie); + gapwidth = firstSerie.serieFormat.commonSerieOptions.gapWidth; } builder.element('c:gapWidth', nest: () { - builder.attribute('val', 150); + builder.attribute('val', gapwidth); }); if (chart._getIsStacked(chart.chartType) || chart._getIs100(chart.chartType)) { @@ -431,6 +478,7 @@ class ChartSerialization { /// serializes series of chart. void _serializeSerie(XmlBuilder builder, ChartSerie firstSerie) { + final ExcelChartType type = firstSerie._serieType; builder.element('c:ser', nest: () { builder.element('c:idx', nest: () { builder.attribute('val', firstSerie._index); @@ -447,17 +495,52 @@ class ChartSerialization { } }); } - if (firstSerie.linePattern != ExcelChartLinePattern.none) { - _serializeFill( - builder, firstSerie.linePattern, firstSerie.linePatternColor, true); + + if (firstSerie.serieFormat.pieExplosionPercent != 0 || + (type == ExcelChartType.doughnutExploded && + firstSerie._chart.series.count == 1)) { + builder.element('c:explosion', nest: () { + builder.attribute('val', firstSerie.serieFormat.pieExplosionPercent); + }); } - if (firstSerie._serieType == ExcelChartType.line) { - builder.element('c:marker', nest: () { - builder.element('c:symbol', nest: () { - builder.attribute('val', 'none'); + if (type == ExcelChartType.stockOpenHighLowClose || + type == ExcelChartType.stockVolumeHighLowClose || + type == ExcelChartType.stockVolumeOpenHighLowClose) { + builder.element('c:spPr', nest: () { + builder.element('a:ln', nest: () { + builder.element('a:noFill', nest: () {}); }); }); + } else if (type == ExcelChartType.stockHighLowClose) { + if (firstSerie._index == 2) { + builder.element('c:spPr', nest: () { + builder.element('a:ln', nest: () { + builder.attribute('w', '3175'); + builder.element('a:solidFill', nest: () { + builder.element('a:srgbClr', nest: () { + builder.attribute('val', '000000'); + }); + }); + builder.element('a:prstDash', nest: () { + builder.attribute('val', 'solid'); + }); + }); + }); + } else { + builder.element('c:spPr', nest: () { + builder.element('a:ln', nest: () { + builder.element('a:noFill', nest: () {}); + }); + }); + } + } + if (firstSerie.linePattern != ExcelChartLinePattern.none) { + _serializeFill( + builder, firstSerie.linePattern, firstSerie.linePatternColor, true); } + + _serializeMarker(builder, firstSerie); + if (firstSerie.dataLabels.isValue) { builder.element('c:dLbls', nest: () { if (firstSerie.dataLabels.numberFormat != null && @@ -579,7 +662,8 @@ class ChartSerialization { }); }); } - if (firstSerie._serieType == ExcelChartType.line) { + if (firstSerie._serieType.toString().contains('line') || + firstSerie._serieType.toString().contains('stock')) { builder.element('c:smooth', nest: () { builder.attribute('val', 0); }); @@ -935,4 +1019,562 @@ class ChartSerialization { final ArchiveFile item = ArchiveFile(fileName, data.length, data); _workbook.archive.addFile(item); } + + /// Serialize line 3D Chart. + void _serializeLine3DChart(XmlBuilder builder, Chart chart) { + late int gapdepth; + builder.element('c:line3DChart', nest: () { + _serializeChartGrouping(builder, chart); + builder.element('c:varyColors', nest: () { + builder.attribute('val', 0); + }); + for (int i = 0; i < chart.series.count; i++) { + final ChartSerie firstSerie = chart.series[i]; + _serializeSerie(builder, firstSerie); + gapdepth = firstSerie.serieFormat.commonSerieOptions.gapDepth; + } + builder.element('c:gapDepth', nest: () { + builder.attribute('val', gapdepth); + }); + builder.element('c:axId', nest: () { + builder.attribute('val', 59983360); + }); + builder.element('c:axId', nest: () { + builder.attribute('val', 57253888); + }); + builder.element('c:axId', nest: () { + builder.attribute('val', 63149376); + }); + }); + _serializeAxes(builder, chart); + } + + ///Serialize view 3D + void _serializeView3D(XmlBuilder builder, Chart chart) { + final ChartSeriesCollection firstSerie = chart.series; + + builder.element('c:view3D', nest: () { + if (firstSerie != null) { + if (!chart._isdefaultElevation) { + builder.element('c:rotX', nest: () { + builder.attribute('val', chart.elevation); + }); + } + if (firstSerie._innerList[0]._serieType == ExcelChartType.pie3D) { + for (int i = 0; i < chart.series.count; i++) { + chart.rotation = + chart.series[i].serieFormat.commonSerieOptions.firstSliceAngle; + } + } + if (!chart._isDefaultRotation) { + builder.element('c:rotY', nest: () { + builder.attribute('val', chart.rotation); + }); + } + builder.element('c:depthPercent', nest: () { + builder.attribute('val', chart.depthPercent); + }); + builder.element('c:rAngAx', nest: () { + int defaultValue = 0; + + if (chart.rightAngleAxes || chart._isColumnOrBar) { + defaultValue = 1; + } + + builder.attribute('val', defaultValue); + }); + builder.element('perspective', nest: () { + builder.attribute('val', chart.perspective * 2); + }); + } + }); + } + + /// Serialize bar3D chart. + void _serializeBar3DChart(XmlBuilder builder, Chart chart) { + late int gapdepth; + late int gapwidth; + builder.element('c:bar3DChart', nest: () { + final String strDirection = + chart.chartType.toString().contains('bar') ? 'bar' : 'col'; + + builder.element('c:barDir', nest: () { + builder.attribute('val', strDirection); + }); + + _serializeChartGrouping(builder, chart); + builder.element('c:varyColors', nest: () { + builder.attribute('val', 0); + }); + for (int i = 0; i < chart.series.count; i++) { + final ChartSerie firstSerie = chart.series[i]; + _serializeSerie(builder, firstSerie); + gapdepth = firstSerie.serieFormat.commonSerieOptions.gapDepth; + gapwidth = firstSerie.serieFormat.commonSerieOptions.gapWidth; + } + + builder.element('c:gapWidth', nest: () { + builder.attribute('val', gapwidth); + }); + builder.element('c:gapDepth', nest: () { + builder.attribute('val', gapdepth); + }); + builder.element('c:axId', nest: () { + builder.attribute('val', 59983360); + }); + builder.element('c:axId', nest: () { + builder.attribute('val', 57253888); + }); + }); + _serializeAxes(builder, chart); + } + + // Serializes pie of pie or pie of bar chart. + void _serializeOfPieChart(XmlBuilder builder, Chart chart) { + late int gapwidth; + late int pieSecondSize; + final ExcelChartType type = chart.series[0]._serieType; + late String isPieOrBar; + if (type == ExcelChartType.pieOfPie) { + isPieOrBar = 'pie'; + } else if (type == ExcelChartType.pieBar) { + isPieOrBar = 'bar'; + } + builder.element('c:ofPieChart', nest: () { + builder.element('c:ofPieType', nest: () { + builder.attribute('val', isPieOrBar); + }); + builder.element('c:varyColors', nest: () { + builder.attribute('val', 1); + }); + + for (int i = 0; i < chart.series.count; i++) { + final ChartSerie firstSerie = chart.series[i]; + _serializeSerie(builder, firstSerie); + pieSecondSize = firstSerie.serieFormat.commonSerieOptions.pieSecondSize; + gapwidth = firstSerie.serieFormat.commonSerieOptions.gapWidth; + } + + builder.element('c:gapWidth', nest: () { + builder.attribute('val', gapwidth); + }); + builder.element('c:secondPieSize', nest: () { + builder.attribute('val', pieSecondSize); + }); + builder.element('c:serLines', nest: () { + builder.element('c:spPr', nest: () { + builder.element('a:ln', nest: () {}); + }); + }); + }); + } + + ///Serialize pie 3D chart. + void _serializeOfPie3DChart(XmlBuilder builder, Chart chart) { + builder.element('c:pie3DChart', nest: () { + builder.element('c:varyColors', nest: () { + builder.attribute('val', 1); + }); + for (int i = 0; i < chart.series.count; i++) { + final ChartSerie firstSerie = chart.series[i]; + _serializeSerie(builder, firstSerie); + } + }); + } + + /// Serializes stock chart. + void _serializeStockChart(XmlBuilder builder, Chart chart) { + final ExcelChartType type = chart.series.innerList[0]._serieType; + if (type == ExcelChartType.stockVolumeOpenHighLowClose || + type == ExcelChartType.stockVolumeHighLowClose) { + builder.element('c:barChart', nest: () { + builder.element('c:barDir', nest: () { + builder.attribute('val', 'col'); + }); + builder.element('c:grouping', nest: () { + builder.attribute('val', 'clustered'); + }); + + builder.element('c:varyColors', nest: () { + builder.attribute('val', 0); + }); + + final ChartSerie firstSerie = chart.series[0]; + _serializeSerie(builder, firstSerie); + + builder.element('c:gapWidth', nest: () { + builder.attribute( + 'val', firstSerie.serieFormat.commonSerieOptions.gapWidth); + }); + builder.element('c:axId', nest: () { + builder.attribute('val', 59983360); + }); + builder.element('c:axId', nest: () { + builder.attribute('val', 57253888); + }); + }); + } + builder.element('c:stockChart', nest: () { + if (type == ExcelChartType.stockHighLowClose || + type == ExcelChartType.stockOpenHighLowClose) { + for (int i = 0; i < chart.series.count; i++) { + final ChartSerie firstSerie = chart.series[i]; + _serializeSerie(builder, firstSerie); + } + } else if (type == ExcelChartType.stockVolumeHighLowClose || + type == ExcelChartType.stockVolumeOpenHighLowClose) { + for (int i = 0; i < chart.series.count; i++) { + if ((type == ExcelChartType.stockVolumeOpenHighLowClose || + type == ExcelChartType.stockVolumeHighLowClose) && + chart.series.innerList[0] != chart.series.innerList[i]) { + final ChartSerie firstSerie = chart.series[i]; + _serializeSerie(builder, firstSerie); + } + } + } + + builder.element('c:hiLowLines', nest: () { + builder.element('c:spPr', nest: () { + builder.element('a:ln', nest: () { + builder.element('a:solidFill', nest: () { + builder.element('a:srgbClr', nest: () { + builder.attribute('val', '000000'); + }); + }); + builder.element('a:prstDash', nest: () { + builder.attribute('val', 'solid'); + }); + }); + }); + }); + if (type == ExcelChartType.stockOpenHighLowClose || + type == ExcelChartType.stockVolumeOpenHighLowClose) { + builder.element('c:upDownBars', nest: () { + builder.element('c:gapWidth', nest: () { + builder.attribute('val', '100'); + }); + builder.element('c:upBars', nest: () { + builder.element('c:spPr', nest: () { + builder.element('a:solidFill', nest: () { + builder.element('a:srgbClr', nest: () { + builder.attribute('val', 'FFFFFF'); + }); + }); + }); + }); + builder.element('c:downBars', nest: () { + builder.element('c:spPr', nest: () { + builder.element('a:solidFill', nest: () { + builder.element('a:srgbClr', nest: () { + builder.attribute('val', '000000'); + }); + }); + }); + }); + }); + } + if (chart.series[0].serieFormat.markerStyle != + ExcelChartMarkerType.none) { + builder.element('c:marker', nest: () { + builder.attribute('val', 1); + }); + } + + builder.element('c:axId', nest: () { + builder.attribute('val', 62908672); + }); + builder.element('c:axId', nest: () { + builder.attribute('val', 61870848); + }); + }); + if (type == ExcelChartType.stockVolumeOpenHighLowClose || + type == ExcelChartType.stockVolumeHighLowClose) { + _serializeAxesforStockChart(builder, chart, 59983360, 57253888, true); + _serializeAxesforStockChart(builder, chart, 62908672, 61870848, false); + } else { + _serializeAxesforStockChart(builder, chart, 62908672, 61870848, true); + } + } + + ///serialize stock axes + void _serializeAxesforStockChart( + XmlBuilder builder, Chart chart, int axisId, int crossAx, bool isBar) { + if (chart._isCategoryAxisAvail) { + _serializeCategoryAxisForStock( + builder, chart.primaryCategoryAxis, axisId, crossAx, isBar); + } + if (chart._isValueAxisAvail) { + _serializeValueAxisForStockchart( + builder, chart.primaryCategoryAxis, axisId, crossAx, isBar); + } + } + + ///Serialize catogory axis for stock chart + void _serializeCategoryAxisForStock(XmlBuilder builder, + ChartCategoryAxis axis, int axisId, int crossAx, bool isBar) { + builder.element('c:catAx', nest: () { + builder.element('c:axId', nest: () { + builder.attribute('val', axisId); + }); + builder.element('c:scaling', nest: () { + builder.element('c:orientation', nest: () { + builder.attribute('val', 'minMax'); + }); + }); + int delete = 0; + String axpos = 'b'; + if (!isBar) { + delete = 1; + axpos = 't'; + } + builder.element('c:delete', nest: () { + builder.attribute('val', delete); + }); + builder.element('c:axPos', nest: () { + builder.attribute('val', axpos); + }); + if (axis._hasAxisTitle) { + _serializeChartTextArea(builder, axis.titleArea); + } + if (axis.numberFormat != '' && axis.numberFormat != 'General') { + builder.element('c:numFmt', nest: () { + builder.attribute('formatCode', axis.numberFormat); + builder.attribute('sourceLinked', '0'); + }); + } + builder.element('c:majorTickMark', nest: () { + builder.attribute('val', 'out'); + }); + builder.element('c:minorTickMark', nest: () { + builder.attribute('val', 'none'); + }); + builder.element('c:tickLblPos', nest: () { + builder.attribute('val', 'nextTo'); + }); + builder.element('c:spPr', nest: () { + builder.element('a:ln', nest: () { + if (!isBar) { + builder.attribute('w', 12700); + } + }); + }); + builder.element('c:crossAx', nest: () { + builder.attribute('val', crossAx); + }); + builder.element('c:crosses', nest: () { + builder.attribute('val', 'autoZero'); + }); + builder.element('c:auto', nest: () { + builder.attribute('val', 1); + }); + builder.element('c:lblAlgn', nest: () { + builder.attribute('val', 'ctr'); + }); + builder.element('c:lblOffset', nest: () { + builder.attribute('val', 100); + }); + builder.element('c:noMultiLvlLbl', nest: () { + builder.attribute('val', 0); + }); + builder.element('c:tickMarkSkip', nest: () { + builder.attribute('val', 1); + }); + }); + } + + ///Serialize value axis for stock chart + void _serializeValueAxisForStockchart(XmlBuilder builder, + ChartCategoryAxis axis, int axisId, int crossAx, bool isBar) { + builder.element('c:valAx', nest: () { + builder.element('c:axId', nest: () { + builder.attribute('val', crossAx); + }); + builder.element('c:scaling', nest: () { + builder.element('c:orientation', nest: () { + builder.attribute('val', 'minMax'); + }); + if (!axis._isAutoMax) { + builder.element('c:max', nest: () { + builder.attribute('val', axis.maximumValue); + }); + } + if (axis._isAutoMin) { + builder.element('c:min', nest: () { + builder.attribute('val', axis.minimumValue); + }); + } + }); + builder.element('c:delete', nest: () { + builder.attribute('val', '0'); + }); + String axpos = 'l'; + + if (!isBar) { + axpos = 'r'; + } + + builder.element('c:axPos', nest: () { + builder.attribute('val', axpos); + }); + + if (axpos == 'l') { + builder.element('c:majorGridlines', nest: () {}); + } + + if (axis._hasAxisTitle) { + _serializeChartTextArea(builder, axis.titleArea); + } + if (axis.numberFormat != '' && axis.numberFormat != 'General') { + builder.element('c:numFmt', nest: () { + builder.attribute('formatCode', axis.numberFormat); + builder.attribute('sourceLinked', '0'); + }); + } + if (axis.hasMajorGridLines) { + builder.element('c:majorGridlines', nest: () {}); + } + builder.element('c:majorTickMark', nest: () { + builder.attribute('val', 'out'); + }); + builder.element('c:minorTickMark', nest: () { + builder.attribute('val', 'none'); + }); + builder.element('c:tickLblPos', nest: () { + builder.attribute('val', 'nextTo'); + }); + builder.element('c:spPr', nest: () { + builder.element('a:ln', nest: () {}); + }); + builder.element('c:crossAx', nest: () { + builder.attribute('val', axisId); + }); + String crosses = 'autoZero'; + if (!isBar) { + crosses = 'max'; + } + builder.element('c:crosses', nest: () { + builder.attribute('val', crosses); + }); + final Chart chart = axis._parentChart; + final String strCrossBetween = + chart.primaryCategoryAxis._isBetween ? 'between' : 'midCat'; + builder.element('c:crossBetween', nest: () { + builder.attribute('val', strCrossBetween); + }); + }); + } + + ///Serialize doughnut/doughnut_exploded charts + void _serializedoughnutchart(XmlBuilder builder, Chart chart) { + late int doughnutHoleSize; + late int firstSliceAngle; + + builder.element('c:doughnutChart', nest: () { + builder.element('c:varyColors', nest: () { + builder.attribute('val', 1); + }); + + for (int i = 0; i < chart.series.count; i++) { + final ChartSerie firstSerie = chart.series[i]; + _serializeSerie(builder, firstSerie); + firstSliceAngle = + firstSerie.serieFormat.commonSerieOptions.firstSliceAngle; + doughnutHoleSize = + firstSerie.serieFormat.commonSerieOptions.holeSizePercent; + } + builder.element('c:firstSliceAng', nest: () { + builder.attribute('val', firstSliceAngle); + }); + builder.element('c:holeSize', nest: () { + builder.attribute('val', doughnutHoleSize); + }); + }); + } + + ///Serialize marker for stock and line charts + void _serializeMarker(XmlBuilder builder, ChartSerie firstSerie) { + final ExcelChartType type = firstSerie._serieType; + + if ((firstSerie.serieFormat.markerStyle == ExcelChartMarkerType.none) && + (type == ExcelChartType.line || + type == ExcelChartType.lineStacked || + type == ExcelChartType.lineStacked100 || + type == ExcelChartType.stockHighLowClose || + type == ExcelChartType.stockVolumeOpenHighLowClose || + type == ExcelChartType.stockVolumeHighLowClose || + type == ExcelChartType.stockOpenHighLowClose)) { + builder.element('c:marker', nest: () { + builder.element('c:symbol', nest: () { + builder.attribute('val', 'none'); + }); + }); + } else if ((firstSerie.serieFormat.markerStyle == + ExcelChartMarkerType.none) && + (type == ExcelChartType.lineMarkers || + type == ExcelChartType.lineMarkersStacked || + type == ExcelChartType.lineMarkersStacked100)) { + builder.element('c:marker', nest: () { + builder.element('c:symbol', nest: () { + builder.attribute('val', 'circle'); + }); + builder.element('c:size', nest: () { + builder.attribute('val', '5'); + }); + }); + } else if (firstSerie.serieFormat.markerStyle != + ExcelChartMarkerType.none) { + final String markerBackgroundColor = + firstSerie.serieFormat.markerBackgroundColor.replaceAll('#', ''); + final String markerBorderColor = + firstSerie.serieFormat.markerBorderColor.replaceAll('#', ''); + late String exclMarkertype; + if (firstSerie.serieFormat.markerStyle == ExcelChartMarkerType.diamond) { + exclMarkertype = 'diamond'; + } else if (firstSerie.serieFormat.markerStyle == + ExcelChartMarkerType.circle) { + exclMarkertype = 'circle'; + } else if (firstSerie.serieFormat.markerStyle == + ExcelChartMarkerType.xSquare) { + exclMarkertype = 'x'; + } else if (firstSerie.serieFormat.markerStyle == + ExcelChartMarkerType.dowJones) { + exclMarkertype = 'dot'; + } else if (firstSerie.serieFormat.markerStyle == + ExcelChartMarkerType.square) { + exclMarkertype = 'square'; + } else if (firstSerie.serieFormat.markerStyle == + ExcelChartMarkerType.plusSign) { + exclMarkertype = 'plus'; + } else if (firstSerie.serieFormat.markerStyle == + ExcelChartMarkerType.standardDeviation) { + exclMarkertype = 'triangle'; + } else if (firstSerie.serieFormat.markerStyle == + ExcelChartMarkerType.starSquare) { + exclMarkertype = 'star'; + } + + builder.element('c:marker', nest: () { + builder.element('c:symbol', nest: () { + builder.attribute('val', exclMarkertype); + }); + builder.element('c:size', nest: () { + builder.attribute('val', '5'); + }); + builder.element('c:spPr', nest: () { + builder.element('a:solidFill', nest: () { + builder.element('a:srgbClr', nest: () { + builder.attribute('val', markerBackgroundColor); + }); + }); + builder.element('a:ln', nest: () { + builder.element('a:solidFill', nest: () { + builder.element('a:srgbClr', nest: () { + builder.attribute('val', markerBorderColor); + }); + }); + }); + }); + }); + } + } } diff --git a/packages/syncfusion_officechart/lib/src/chart/chart_serie.dart b/packages/syncfusion_officechart/lib/src/chart/chart_serie.dart index 984015330..abad3b244 100644 --- a/packages/syncfusion_officechart/lib/src/chart/chart_serie.dart +++ b/packages/syncfusion_officechart/lib/src/chart/chart_serie.dart @@ -18,6 +18,9 @@ class ChartSerie { /// Represent the serie name. String? name; + ///Represents chart series format + ChartSerieDataFormat? _chartSeriesDataFormat; + /// serie name. late int _index; @@ -49,6 +52,11 @@ class ChartSerie { return _chart.chartType; } + ///Represents chart serie format. + ChartSerieDataFormat get serieFormat { + return _chartSeriesDataFormat ??= _ChartSerieDataFormatImpl(_chart); + } + /// Gets chart text area object. /// /// ```dart diff --git a/packages/syncfusion_officechart/pubspec.yaml b/packages/syncfusion_officechart/pubspec.yaml index bfb958639..874681204 100644 --- a/packages/syncfusion_officechart/pubspec.yaml +++ b/packages/syncfusion_officechart/pubspec.yaml @@ -1,17 +1,17 @@ name: syncfusion_officechart description: Syncfusion Flutter Office Chart is a library written natively in Dart for creating Office charts from scratch. -version: 20.3.47-beta +version: 20.4.38-beta homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_officechart environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter xml: ">=5.1.0 <7.0.0" archive: ">=3.1.2 <4.0.0" - syncfusion_flutter_xlsio: ^20.3.47-beta + syncfusion_flutter_xlsio: ^20.4.38-beta dev_dependencies: flutter_test: diff --git a/packages/syncfusion_officecore/README.md b/packages/syncfusion_officecore/README.md index fc3ad0923..426f9362d 100644 --- a/packages/syncfusion_officecore/README.md +++ b/packages/syncfusion_officecore/README.md @@ -19,15 +19,12 @@ Explore the full capabilities of our Flutter widgets on your device by installin

- - + +

- -

-

@@ -41,11 +38,11 @@ Take a look at the following to learn more about Syncfusion Flutter widgets: ## Support and Feedback -* For any other queries, reach our [Syncfusion support team](https://www.syncfusion.com/support/directtrac/incidents/newincident) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). +* For any other queries, reach our [Syncfusion support team](https://support.syncfusion.com/support/tickets/create) or post the queries through the [Community forums](https://www.syncfusion.com/forums) and submit a feature request or a bug through our [Feedback portal](https://www.syncfusion.com/feedback/flutter). * To renew the subscription, click [renew](https://www.syncfusion.com/sales/products) or contact our sales team at salessupport@syncfusion.com | Toll Free: 1-888-9 DOTNET. ## About Syncfusion Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 20,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies. -Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), and [Blazor](https://www.syncfusion.com/blazor-components), mobile ([Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls) and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. +Today we provide 1,000+ controls and frameworks for web ([ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls), [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls), [ASP.NET WebForms](https://www.syncfusion.com/jquery/aspnet-web-forms-ui-controls), [JavaScript](https://www.syncfusion.com/javascript-ui-controls), [Angular](https://www.syncfusion.com/angular-ui-components), [React](https://www.syncfusion.com/react-ui-components), [Vue](https://www.syncfusion.com/vue-ui-components), [Flutter](https://www.syncfusion.com/flutter-widgets), and [Blazor](https://www.syncfusion.com/blazor-components)), mobile ([.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [Xamarin](https://www.syncfusion.com/xamarin-ui-controls), [Flutter](https://www.syncfusion.com/flutter-widgets), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [JavaScript](https://www.syncfusion.com/javascript-ui-controls)), and desktop development ([Flutter](https://www.syncfusion.com/flutter-widgets), [.NET MAUI](https://www.syncfusion.com/maui-controls?utm_source=pubdev&utm_medium=listing&utm_campaign=flutter-charts-pubdev), [WinForms](https://www.syncfusion.com/winforms-ui-controls), [WPF](https://www.syncfusion.com/wpf-ui-controls), [UWP](https://www.syncfusion.com/uwp-ui-controls), and [WinUI](https://www.syncfusion.com/winui-controls)). We provide ready-to deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software. \ No newline at end of file diff --git a/packages/syncfusion_officecore/example/pubspec.yaml b/packages/syncfusion_officecore/example/pubspec.yaml index 9056ba665..07d620244 100644 --- a/packages/syncfusion_officecore/example/pubspec.yaml +++ b/packages/syncfusion_officecore/example/pubspec.yaml @@ -2,14 +2,19 @@ name: officecore_example description: Demo for creating a Excel file using syncfusion_flutter_officecore package. environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter path_provider: ^2.0.1 open_file: ^3.0.1 - syncfusion_flutter_xlsio: ^20.3.47-beta + syncfusion_flutter_xlsio: + git: + url: https://SyncfusionBuild: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@github.com/essential-studio/flutter-xlsio + path: flutter_xlsio/syncfusion_flutter_xlsio + branch: development + ref: development # The following section is specific to Flutter. diff --git a/packages/syncfusion_officecore/pubspec.yaml b/packages/syncfusion_officecore/pubspec.yaml index 4053731df..1f7bb5819 100644 --- a/packages/syncfusion_officecore/pubspec.yaml +++ b/packages/syncfusion_officecore/pubspec.yaml @@ -1,15 +1,15 @@ name: syncfusion_officecore description: Syncfusion Flutter Office Core is a dependant library for Syncfusion Flutter XlsIO, written natively in Dart for creating Excel from scratch. -version: 20.3.47-beta +version: 20.4.38-beta homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_officecore environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: flutter: sdk: flutter - syncfusion_flutter_core: ^20.3.47 + syncfusion_flutter_core: ^20.4.38 dev_dependencies: flutter_test: diff --git a/packages/syncfusion_pdfviewer_macos/example/macos/Flutter/GeneratedPluginRegistrant.swift b/packages/syncfusion_pdfviewer_macos/example/macos/Flutter/GeneratedPluginRegistrant.swift index 980d560e7..141b3986b 100644 --- a/packages/syncfusion_pdfviewer_macos/example/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/packages/syncfusion_pdfviewer_macos/example/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,10 +5,8 @@ import FlutterMacOS import Foundation -import syncfusion_pdfviewer_macos -import url_launcher_macos +import syncfusion_flutter_pdfviewer_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { SyncfusionFlutterPdfViewerPlugin.register(with: registry.registrar(forPlugin: "SyncfusionFlutterPdfViewerPlugin")) - UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) } diff --git a/packages/syncfusion_pdfviewer_macos/example/pubspec.yaml b/packages/syncfusion_pdfviewer_macos/example/pubspec.yaml index e74222d4a..de9729fb7 100644 --- a/packages/syncfusion_pdfviewer_macos/example/pubspec.yaml +++ b/packages/syncfusion_pdfviewer_macos/example/pubspec.yaml @@ -6,13 +6,18 @@ description: Demonstrates how to use the syncfusion_pdfviewer plugin in macOS pl publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' dependencies: flutter: sdk: flutter - syncfusion_flutter_pdfviewer: ^20.3.47 + syncfusion_flutter_pdfviewer: + git: + url: https://SyncfusionBuild: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@github.com/essential-studio/flutter-pdfviewer + path: flutter_pdfviewer/syncfusion_flutter_pdfviewer + branch: release/20.4.0.1 + ref: release/20.4.0.1 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. diff --git a/packages/syncfusion_pdfviewer_macos/pubspec.yaml b/packages/syncfusion_pdfviewer_macos/pubspec.yaml index 04a1b7090..75bb87b03 100644 --- a/packages/syncfusion_pdfviewer_macos/pubspec.yaml +++ b/packages/syncfusion_pdfviewer_macos/pubspec.yaml @@ -1,17 +1,17 @@ name: syncfusion_pdfviewer_macos description: macOS platform implementation of the Flutter PDF Viewer library that lets you view the PDF documents seamlessly and efficiently. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_pdfviewer_macos environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' flutter: ">=1.20.0" dependencies: flutter: sdk: flutter - syncfusion_pdfviewer_platform_interface: ^20.3.47 + syncfusion_pdfviewer_platform_interface: ^20.4.38 dev_dependencies: flutter_test: diff --git a/packages/syncfusion_pdfviewer_platform_interface/example/pubspec.yaml b/packages/syncfusion_pdfviewer_platform_interface/example/pubspec.yaml index 84489bb26..d2b0382a2 100644 --- a/packages/syncfusion_pdfviewer_platform_interface/example/pubspec.yaml +++ b/packages/syncfusion_pdfviewer_platform_interface/example/pubspec.yaml @@ -20,10 +20,10 @@ dependencies: syncfusion_flutter_pdfviewer: git: - url: https://SyncfusionBuild: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@github.com/essential-studio/flutter-pdfviewer + url: https://SyncfusionBuild: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@github.com/essential-studio/flutter-pdfviewer path: flutter_pdfviewer/syncfusion_flutter_pdfviewer - branch: release/20.3.0.1 - ref: release/20.3.0.1 + branch: release/20.4.0.1 + ref: release/20.4.0.1 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. diff --git a/packages/syncfusion_pdfviewer_platform_interface/example/windows/flutter/generated_plugin_registrant.cc b/packages/syncfusion_pdfviewer_platform_interface/example/windows/flutter/generated_plugin_registrant.cc index 9871f6b72..42c63bcfd 100644 --- a/packages/syncfusion_pdfviewer_platform_interface/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/syncfusion_pdfviewer_platform_interface/example/windows/flutter/generated_plugin_registrant.cc @@ -7,11 +7,8 @@ #include "generated_plugin_registrant.h" #include -#include void RegisterPlugins(flutter::PluginRegistry* registry) { SyncfusionPdfviewerWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("SyncfusionPdfviewerWindowsPlugin")); - UrlLauncherWindowsRegisterWithRegistrar( - registry->GetRegistrarForPlugin("UrlLauncherWindows")); } diff --git a/packages/syncfusion_pdfviewer_platform_interface/example/windows/flutter/generated_plugins.cmake b/packages/syncfusion_pdfviewer_platform_interface/example/windows/flutter/generated_plugins.cmake index 248772383..90342fb89 100644 --- a/packages/syncfusion_pdfviewer_platform_interface/example/windows/flutter/generated_plugins.cmake +++ b/packages/syncfusion_pdfviewer_platform_interface/example/windows/flutter/generated_plugins.cmake @@ -4,10 +4,6 @@ list(APPEND FLUTTER_PLUGIN_LIST syncfusion_pdfviewer_windows - url_launcher_windows -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST ) set(PLUGIN_BUNDLED_LIBRARIES) @@ -18,8 +14,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/packages/syncfusion_pdfviewer_platform_interface/pubspec.yaml b/packages/syncfusion_pdfviewer_platform_interface/pubspec.yaml index fff67fc27..6a7cd6d9c 100644 --- a/packages/syncfusion_pdfviewer_platform_interface/pubspec.yaml +++ b/packages/syncfusion_pdfviewer_platform_interface/pubspec.yaml @@ -1,10 +1,10 @@ name: syncfusion_pdfviewer_platform_interface description: A common platform interface for the Flutter PDF Viewer library that lets you view the PDF documents seamlessly and efficiently. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_pdfviewer_platform_interface environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' flutter: ">=1.20.0" dependencies: diff --git a/packages/syncfusion_pdfviewer_web/example/pubspec.yaml b/packages/syncfusion_pdfviewer_web/example/pubspec.yaml index d9166f84f..9a35c45f0 100644 --- a/packages/syncfusion_pdfviewer_web/example/pubspec.yaml +++ b/packages/syncfusion_pdfviewer_web/example/pubspec.yaml @@ -6,12 +6,17 @@ description: Demonstrates how to use the syncfusion_pdfviewer_web with the help publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' dependencies: flutter: sdk: flutter - syncfusion_flutter_pdfviewer: ^20.3.47 + syncfusion_flutter_pdfviewer: + git: + url: https://SyncfusionBuild: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@github.com/essential-studio/flutter-pdfviewer + path: flutter_pdfviewer/syncfusion_flutter_pdfviewer + branch: release/20.4.0.1 + ref: release/20.4.0.1 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. diff --git a/packages/syncfusion_pdfviewer_web/pubspec.yaml b/packages/syncfusion_pdfviewer_web/pubspec.yaml index 8ef4d24b6..ecc289183 100644 --- a/packages/syncfusion_pdfviewer_web/pubspec.yaml +++ b/packages/syncfusion_pdfviewer_web/pubspec.yaml @@ -1,10 +1,10 @@ name: syncfusion_pdfviewer_web description: Web platform implementation of the Flutter PDF Viewer library that lets you view the PDF documents seamlessly and efficiently. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_pdfviewer_web environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' flutter: ">=1.20.0" dependencies: @@ -14,7 +14,7 @@ dependencies: sdk: flutter js: ^0.6.3 meta: ^1.3.0 - syncfusion_pdfviewer_platform_interface: ^20.3.47 + syncfusion_pdfviewer_platform_interface: ^20.4.38 dev_dependencies: flutter_test: diff --git a/packages/syncfusion_pdfviewer_windows/pubspec.yaml b/packages/syncfusion_pdfviewer_windows/pubspec.yaml index 3f8e96d08..91e8a37f9 100644 --- a/packages/syncfusion_pdfviewer_windows/pubspec.yaml +++ b/packages/syncfusion_pdfviewer_windows/pubspec.yaml @@ -1,10 +1,10 @@ name: syncfusion_pdfviewer_windows description: Windows platform implementation of the Flutter PDF Viewer library that lets you view the PDF documents seamlessly and efficiently. -version: 20.3.47 +version: 20.4.38 homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_pdfviewer_windows environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' flutter: ">=2.5.0" dependencies: