PromucFlow_constructor/app/client/src/widgets
Preet Sidhu fa7bd6a543
feat: add layouts and widgets for sections and zones. (#29713)
## Description

1. Create Section Widget.
2. Create Zone Widget.
3. Create layouts and presets for Sections and zones.
4. Upate layout for Anvil Main Canvas.
5. Refactor BaseLayoutComponent. Separate renderer for edit and view
modes.
6. Add childrenMap context to avoid prop drilling through all layouts.
7. Add Anvil Config for WDS widgets.

#### Type of change
- New feature (non-breaking change which adds functionality)

## Testing
#### How Has This Been Tested?
- [x] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress

#### Test Plan

## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced a new `Zone Stepper Control` component for UI interaction.
- Added `AnvilCanvas` and `AnvilMainCanvas` components with improved
performance and interaction features.
- Implemented `LayoutProvider` and `useClickToClearSelections` for
better layout management.
- Launched `AnvilCanvasDraggingArena` and `AnvilHighlightingCanvas`
components with enhanced drag-and-drop capabilities.
- New `useZoneMinWidth` hook to calculate minimum zone width based on
child widgets.
- Added `SectionRow`, `Section`, `ZoneColumn`, and `Zone` components for
advanced layout structuring.
  - New `WidgetRenderer` component for dynamic child widget rendering.

- **Enhancements**
- Improved canvas activation and deactivation logic with
`useCanvasActivation` and `useCanvasActivationStates`.
- Enhanced drag-and-drop experience with updated `useCanvasDragging`
logic.
- Streamlined `AnvilMainCanvas` integration with conditional rendering
based on `renderMode`.
- Optimized `FlexLayout` component to handle new `isContainer` and
`layoutType` properties.

- **Bug Fixes**
- Fixed issues with widget positioning and event handling in
`WidgetNamesCanvas` components.
- Corrected `PageView` width property type for consistent page
rendering.

- **Refactor**
- Consolidated Anvil layout update management with `anvilSagas` and
`anvilChecksSagas`.
- Refined `SectionWidget` and `ZoneWidget` configuration for improved
stability and performance.
- Streamlined `LayoutElementPositionsObserver` with `layoutType`
enhancements.

- **Documentation**
- Updated comments and added clarifications for better developer
understanding of canvas-related hooks and components.

- **Style**
- Modified `.anvil-canvas` class styles for full-width and height
presentation.

- **Chores**
- Cleaned up import statements and removed unused code across various
components and utilities.

- **Tests**
- Enhanced Cypress tests with additional selectors and interaction
commands for `AutoDimension` feature verification.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com>
2023-12-26 09:16:58 -05:00
..
anvil feat: add layouts and widgets for sections and zones. (#29713) 2023-12-26 09:16:58 -05:00
AudioRecorderWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
AudioWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
BaseInputWidget feat: RTL support for input, select and multi-select widget (#28522) 2023-11-03 16:18:13 +05:30
BaseWidgetHOC chore: Layout system wise restructuring of Canvas Widget (#27496) 2023-10-04 17:23:29 +05:30
ButtonGroupWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
ButtonWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
CameraWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
CategorySliderWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
ChartWidget fix: fix overlay echarts iframe (#29225) 2023-12-01 11:24:17 +05:30
CheckboxGroupWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
CheckboxWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
CircularProgressWidget chore: BaseWidget Restructuring (#26562) 2023-09-11 21:25:11 +05:30
CodeScannerWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
components feat: RTL support for input, select and multi-select widget (#28522) 2023-11-03 16:18:13 +05:30
ContainerWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
CurrencyInputWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
DatePickerWidget chore: BaseWidget Restructuring (#26562) 2023-09-11 21:25:11 +05:30
DatePickerWidget2 chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
DividerWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
DocumentViewerWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
DropdownWidget chore: Remove position props from widgets (#26781) 2023-09-13 19:27:42 +05:30
ExternalWidget chore: Fix prettier issue in the reset css file (#28839) 2023-11-14 15:10:27 +05:30
FilepickerWidget chore:add eslint rules (#27878) 2023-10-09 16:54:06 +03:00
FilePickerWidgetV2 chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
FormButtonWidget chore: BaseWidget Restructuring (#26562) 2023-09-11 21:25:11 +05:30
FormWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
IconButtonWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
IconWidget chore: BaseWidget Restructuring (#26562) 2023-09-11 21:25:11 +05:30
IframeWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
ImageWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
InputWidget chore: update eslint and dependencies then fix revealed errors (#27908) 2023-10-11 10:14:38 +03:00
InputWidgetV2 chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
JSONFormWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
ListWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
ListWidgetV2 chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
MapChartWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
MapWidget feat: [Feature]-[116] Map Widget - Add MapTypeControl (Satellite/Roadmap) (#28344) 2023-11-27 12:29:14 +05:30
MenuButtonWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
ModalWidget chore: add highlight calculation logic for layouts. (#27980) 2023-10-19 16:27:40 -04:00
MultiSelectTreeWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
MultiSelectWidget chore: update eslint and dependencies then fix revealed errors (#27908) 2023-10-11 10:14:38 +03:00
MultiSelectWidgetV2 chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
NumberSliderWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
PhoneInputWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
ProgressBarWidget chore: Create layout system structure for Anvil and AnvilFlexComponent. (#27178) 2023-10-02 15:41:05 -04:00
ProgressWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
QRGeneratorWidget chore: add consistent-type-definitions rule (#27907) 2023-10-11 10:35:24 +03:00
RadioGroupWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
RangeSliderWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
RateWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
RichTextEditorWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
SelectWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
SingleSelectTreeWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
StatboxWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
SwitchGroupWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
SwitchWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
TableWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
TableWidgetV2 feat: [Table Widget] Allow moment date formats in input and display d… (#28784) 2023-11-20 09:01:03 +05:30
TabsMigrator feat: dsl migration with server (#28518) 2023-11-30 18:03:33 +05:30
TabsWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
TextWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
VideoWidget chore: add configuration for large and small widgets (#28671) 2023-11-14 10:55:48 +05:30
wds feat: add layouts and widgets for sections and zones. (#29713) 2023-12-26 09:16:58 -05:00
BaseComponent.tsx
BaseWidget.tsx chore: Custom widget (alpha) (#27571) 2023-11-14 10:03:37 +05:30
CanvasWidget.tsx chore: Layout system wise restructuring of Canvas Widget (#27496) 2023-10-04 17:23:29 +05:30
ConnectDataOverlay.tsx chore: skip signposting discovery test (#27892) 2023-10-17 17:32:05 +05:30
index.ts feat: add layouts and widgets for sections and zones. (#29713) 2023-12-26 09:16:58 -05:00
MetaHOC.tsx chore: add consistent-type-definitions rule (#27907) 2023-10-11 10:35:24 +03:00
MetaWidgetContextProvider.tsx feat: Add widget responsiveness and conversion algorithm (#21386) 2023-04-07 09:51:35 -04:00
Skeleton.tsx
SkeletonWidget.tsx feat: add layouts and widgets for sections and zones. (#29713) 2023-12-26 09:16:58 -05:00
useDropdown.tsx chore: add consistent-type-definitions rule (#27907) 2023-10-11 10:35:24 +03:00
utils.test.ts feat: code scanner widget default camera (#26083) 2023-08-10 12:18:51 +05:30
utils.ts feat: code scanner widget default camera (#26083) 2023-08-10 12:18:51 +05:30
WidgetUtils.test.ts fix: auto label position (#28022) 2023-10-13 12:08:01 +03:00
WidgetUtils.ts fix: calculateHoverColor typo (#28329) 2023-10-30 15:56:14 +05:30
withLazyRender.tsx chore: Remove lazy canvas rendering feature flag - LAZY_CANVAS_RENDERING (#22354) 2023-05-10 17:36:30 +05:30
withWidgetProps.tsx fix: Anvil fixes and enhancements post R0 (#28711) 2023-11-15 18:01:54 +05:30