wapform_flutter 0.2.1
wapform_flutter: ^0.2.1 copied to clipboard
A Flutter port of a Lazarus/Free Pascal (FPC) based WML form and report engine. Includes line-by-line Dart translations of FPC's db/sqldb/ dbctrls/dbgrids/grids/stdctrls/extctrls units, plus original [...]
Changelog #
0.2.1 #
- Fixed a real name collision in the package's public API: a
never-called top-level
isNull(dynamic v)helper inwapform_expression.dartcollided withpackage:matcher'sisNullmatcher, causing anambiguous_exportcompile error in any file that imported this package alongsideflutter_test(e.g. every test file). Renamed to_isNull(private) — unused anywhere in this codebase, so this is not a behavioral change. - Fixed a syntax bug in
test/wapform_expression_test.dart: an unescaped$in a non-raw string literal ('...via $ substitution') is invalid Dart —$always starts an interpolation, raw or not, unless escaped or the string is a raw string.
0.2.0 #
- Added
test/wapform_expression_test.dart: unit tests for the WML expression engine (WapEvaluator) — arithmetic,cond(), variable management (setVar/setRow/clearVars), a sample of thett_*built-in function library, anddatasetResolver-backed$id.fieldexpressions via a lightweight fakeExprDataSet(no network/DB dependency, so this runs anywhere withflutter test). CI now runsflutter testin addition toflutter analyze. - Added
example/: a runnable Flutter app built aroundagp001.dart's "系統參數建檔" (system parameters master file) screen — the real generator output for a single-table CRUD form, unmodified apart from its import block. Includes the WapDb HTTP gateway (example/server/server.js,schema.sql) needed to run it end to end. Seeexample/README.md.
0.1.1 #
- Fixed
flutter analyze's one blocking error:lazarus_db.dartandlazarus_dbgrids.darteach declared a same-namedTFieldNotifyEventtypedef with different signatures, causing anambiguous_exporterror fromwapform_flutter.dart's barrel file. Thedbgrids-local one is now declared inline instead of as a duplicate typedef. - Removed a stray
@overrideonTSQLConnection.getFieldNames()—TSQLConnectionextendsTDatabase, notTDataSet, so there was nothing to actually override (a Pascal name collision between two unrelated classes, not a real inheritance relationship). Not a behavioral bug — no method was being silently skipped — just a stale annotation flagged byflutter analyzeasoverride_on_non_overriding_member.
0.1.0 #
- Initial packaging as a standalone, installable Flutter module.
- Fixed a stale import:
lazarus_sqldb2.dart→lazarus_sqldb.dart(inwapform_lazarus.dartandwapform_lookup_box.dart). - Fixed a stale import:
wap_colors.dart→wapform_colors.dart(inwapform_report.dartandwapform_report_style.dart). - Removed
lazarus_lookup_box.dart: an unused, superseded early version ofwapform_lookup_box.dart(no lookup-map caching / search index — seewapform_lookup_box.dartfor the current implementation). wapform_report.dartno longer importsdart:html/dart:ui_webdirectly. The web-only iframe/print-window code now lives behind a conditional import (src/report_web.dart,src/report_web_impl.dart,src/report_web_stub.dart), so the package compiles on mobile and desktop targets as well as web.- All source comments translated from Traditional Chinese to English.
- Added
pubspec.yaml,LICENSE,COPYING.LGPL.txt,COPYING.modifiedLGPL.txt, and awapform_flutter.dartbarrel export.