Commit e62d740
committed
feat(layout): Forms geometry as native APEX components, with a mapping report (1.1.0)
One resolved layout model (apexlayout) feeds the exporter and the preview:
canvases, frames and tab pages become regions, sub-regions and tab pages on
the 12-column grid; rows come from the Forms geometry with a unit tolerance,
column spans from each item's share of its parent, the label keeps its own
share of the row, and items beside or below a frame keep their vertical
order in derived row regions.
Multi-record blocks on a table become interactiveGrid regions with one
column per item in Forms order (headings, native types, primary key, widths,
required, hidden columns, saved report); editing stays off until the block's
DML is confirmed. Native item types carry their Forms properties: datePicker
and numberField with format masks, textarea with width and height, checkbox
values, radioGroup columns without the empty choice, selectList on a shared
static LOV, readOnly, textCase, help text. Template options are native
properties; stacked canvases and secondary windows become inline dialogs.
Every export writes a per-element layout mapping report in the manifest
(source identity, geometry, target, grid placement, rule, preserved
properties, approximations, unsupported, missing metadata, status with
explicit denominators). Button ids and grid column names come from one place
so the page file, the manifest and the report agree.
Verified on APEX 26.1.0: validate, import into a dedicated dev app, dictionary
checks, and the page rendered through ORDS as a temporary end user
(examples/verify/apex_render_check.py; no page made public). Docs: the
mapping matrix with before/after, and the verification runbook rewritten.
Tests: tests/test_apexlayout_fidelity.py (895 passed, 1 skipped in the full
suite).1 parent 0b03ac6 commit e62d740
19 files changed
Lines changed: 2419 additions & 166 deletions
File tree
- desktop
- src-tauri
- docs
- examples/verify
- formslang
- tests
- fixtures/showcase
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
10 | 68 | | |
11 | 69 | | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
12 | 76 | | |
13 | 77 | | |
14 | 78 | | |
| |||
761 | 825 | | |
762 | 826 | | |
763 | 827 | | |
764 | | - | |
| 828 | + | |
| 829 | + | |
765 | 830 | | |
766 | 831 | | |
767 | 832 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
744 | 744 | | |
745 | 745 | | |
746 | 746 | | |
747 | | - | |
748 | | - | |
749 | | - | |
750 | | - | |
751 | | - | |
752 | | - | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
753 | 757 | | |
754 | 758 | | |
755 | 759 | | |
| |||
785 | 789 | | |
786 | 790 | | |
787 | 791 | | |
788 | | - | |
789 | | - | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
790 | 796 | | |
791 | 797 | | |
792 | 798 | | |
| |||
820 | 826 | | |
821 | 827 | | |
822 | 828 | | |
823 | | - | |
824 | | - | |
825 | | - | |
826 | | - | |
827 | | - | |
828 | | - | |
829 | | - | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
830 | 839 | | |
831 | 840 | | |
832 | 841 | | |
| |||
952 | 961 | | |
953 | 962 | | |
954 | 963 | | |
955 | | - | |
| 964 | + | |
956 | 965 | | |
957 | 966 | | |
958 | 967 | | |
959 | 968 | | |
960 | 969 | | |
961 | | - | |
| 970 | + | |
962 | 971 | | |
963 | 972 | | |
964 | 973 | | |
| |||
969 | 978 | | |
970 | 979 | | |
971 | 980 | | |
| 981 | + | |
972 | 982 | | |
973 | 983 | | |
974 | 984 | | |
| |||
1028 | 1038 | | |
1029 | 1039 | | |
1030 | 1040 | | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
1031 | 1046 | | |
1032 | 1047 | | |
1033 | 1048 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
0 commit comments