Issue #2758 - Grid-based layout API: GridLayout and tg-grid-layout#2773
Open
oleh-maikovych wants to merge 36 commits into
Open
Issue #2758 - Grid-based layout API: GridLayout and tg-grid-layout#2773oleh-maikovych wants to merge 36 commits into
oleh-maikovych wants to merge 36 commits into
Conversation
…ctored tg-flex-layout using layout behavior. Introduced tg-grid-layout.
…ded grid layout example.
…ements that cannot be placed because the layout declares fewer rows than the content requires.
…method that allows one to set layout without converting it into string first. All other changes are related to that change.
…test. Enhnaced webUIConfig example with grid layout.
… taht allows to wrap content when their width exceede their minimal size.
…e to configure it with grid layout.
…articular editor.
…s instead of wrapper.
…to the subheader elements using additional column.
…t least one subheader
… in the same layout.
…ic can be applied to any layout component.
…ock on setting flex and grid layouts.
…th static columns. One can add only one autocolumn or only static columns.
…ement filtering for auto-flow mode.
…the grid or get intersected with other cells.
…od instead of col to make sure that spanAllColumns always return `1` + unit test
…adds special styles those require quotes etc.
…dLayoutConfiguration interface, so the layout API no longer exposes its impl type.
…no span override, via a new ISubheader type (and IGridElement as the common type accepted by elements()).
… explicit row), preventing the client from silently expanding the grid with implicit tracks.
…hs. Also made the editor title truncate with an ellipsis, so it yields the space instead of the actions.
…te how grid layout covers such layouts.
…out via the Java API and asserting its output.
… every subheader from the container — folded into each subheader cell at build time as a default that a per-subheader style() overrides (no wire/client change).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolve #2758
To be completed by the pull request creator
This section should be completed with reference to section Preparing PR of the Code and PR reviews wiki page.
Create the pull request as a draft by tapping the dropdown arrow on the 'Create pull request' button under the pull request description (below the text box where this description is being edited) and changing the default
Create pull requesttoDraft pull request.Or, if the pull request has already been created, convert it to draft by tapping the "Convert to draft" link beneath the "Reviewers" section.
A self-review of all changes has been completed, and the changes are in sync with the issue requirements.
Changes to the requirements have been reflected in the issue description.
Any "leftovers" such as sysouts, printing of stack traces, and any other "temporary" code, have been removed.
Minor refactorings, such as renamings, extraction of constants, etc., have been addressed.
Developer documentation (e.g., comments, Javadoc), have been provided where required.
New Java tests have been written or existing tests adjusted, if required, to cover the new functionality.
All existing and new Java tests pass successfully by running them with Maven.
New Web tests have been written or existing tests adjusted, if required, to cover the new functionality.
All existing and new Web tests pass successfully.
Established security practices have been followed, including the existence and attribution of security tokens.
Changes have been inspected for possible NPE situations, and the changes are sufficiently defensive.
The correct base branch has been selected for these changes to be merged into.
The latest changes from the base branch have already been merged into this feature branch (and tested).
Added a change overview to the issue description or as a wiki page, referenced in the issue description.
Some issues might be very descriptive and serve in place of a wiki page.
In such cases consider adding label
Wiki liketo the issue.Changes subject to performance considerations have been evaluated, and tested against production-size data if applicable.
This pull request does contain significant changes, the section "Significant changes" below is completed and at least one Senior Software Engineer with the relevant area of expertise has been selected as reviewer.
The
In progresslabel has been removed from the issue.The
Pull requestlabel has been added to the issue.The pull request has been made ready for review by tapping the "Ready for review" button below the list of commits on the pull request page.
Significant changes
This pull request contains significant changes as defined in the wiki page.
Details are as follows:
GridLayoutJava API — a fluent builder for CSS-Grid layouts (web.layout.GridLayout,web.layout.grid.*,web.layout.grid.impl.*), parallel to the existing flexLayoutBuilder. Review the public API surface and the compile-time type-state design: flex/grid kind-lock,addColumnvsaddAutoColumnmutual exclusivity, and the single auto-fill-column rule enforced at build time.tg-grid-layoutWeb UI component — client-side CSS-Grid renderer (tg-grid-layout.js): wire-format parsing, row-major cell placement with overlap handling, auto-flow (auto-fit/auto-fill), and the malformed-input backstops (bounded placement loop, unmatched-selectguard).tg-layout-behavior.jsextracted and consumed by both layouts;tg-flex-layout.jsrewritten onto it (~170 lines removed). This touches the flex layout used by every existing master and centre — verify there is no behavioural regression.tg-layoutCSS class server-side instead of relying on thetg-flex-layoutelement selector; CSS rules were updated accordingly. Confirm existing flex styling is unaffected.ILayoutConfig/ILayoutConfigWithDimensionsAndDoneon both sides, the action-bar configs,IGridLayoutConfigWithResultsetSupport,SimpleMasterBuilder,SelectionCriteriaLayoutBuilder,EntityCentreBuilder). Review the changed public builder interfaces.To be completed by the pull request reviewer
This section should be completed with reference to section Performing PR review of the Code and PR reviews wiki page.
The
In progresslabel has been added to the pull request in GitHub.The issue requirements have been read and understood (along with any relevant emails and/or Slack messages).
The correct base branch is specified, and that base branch is up-to-date in the local source.
The issue branch has been checked out locally, and had the base branch merged into it.
All automated tests pass successfully.
Ensure the implementation satisfies the functional requirements.
Ensure that code changes are secure and align with the established coding practices, including code formatting and naming conventions.
Ensure that code changes are documented and covered with automated tests as applicable.
Ensure that code changes are well-suited for informal reasoning.
Ensure that changes are documented for the end-user (a software engineer in the case of TG, or an application user in the case of TG-based applications).
If there are significant changes (described above), special attention has been paid to them.
Marked the task items in section "Significant changes" as completed to indicate that corresponding changes have been reviewed, improved if necessary, and approved.
The issue or issues addressed by the pull request are associated with the relevant release milestone.
To be completed by the pull request reviewer once the changes have been reviewed and accepted
The changes have been merged into the base branch (unless there is a specific request not to do so, e.g., they are to be released to SIT).
The issue branch has been deleted (unless the changes have not been merged - see above, or there is a specific request not to do so).
The
In progresslabel has been removed from the pull request.The
Pull requestlabel has been removed from the issue.