PromucFlow_constructor/app/client/src/utils/DSLMigration.test.ts

777 lines
17 KiB
TypeScript
Raw Normal View History

import { WidgetProps } from "widgets/BaseWidget";
import { ContainerWidgetProps } from "widgets/ContainerWidget/widget";
import * as DSLMigrations from "./DSLMigrations";
import * as chartWidgetReskinningMigrations from "./migrations/ChartWidgetReskinningMigrations";
import * as tableMigrations from "./migrations/TableWidget";
import * as IncorrectDynamicBindingPathLists from "./migrations/IncorrectDynamicBindingPathLists";
import * as TextStyleFromTextWidget from "./migrations/TextWidget";
feat: Dynamic Menu Items - Menu Button Widget (#17652) * faet: Add menu items source for menu widget * feat: Add configuration panel for dynamic menu items * feat: Pass down items from sourceData to menu items widget * feat: Take menu items config from property pane for dynamic menu items * fix: Change all onMenuItemClick to onClick for dynamic menu items * feat: Create MenuComputeValue property control to add support for {{currentItem}} binding in menu widget * feat: Add JS toggles for style properties for menu widget * feat: onClick now supports currentItem for menu button widget * feat: Add currentItem autocomplete, move property pane config to separate files for menu button widget * feat: WIP - Add Dynamic Menu Items for Table Widget * Revert "feat: WIP - Add Dynamic Menu Items for Table Widget" This reverts commit 271f96211c8612bc6f073a1aab7467993b9d7e36. * fix: remove current item label by default for dynamic menu items in menu button * feat: Add source data max length 10 validation for dynamic menu items in menu button * feat: Add migrations for Dynamic Menu Items for Menu Button Widget * feat: Add cypress test for dynamic menu items for menu button * test: Update DSLMigration test with menu button widget tests * fix: Update MenuButtonWidget migration * fix: DSL migrations for menu button dynmaic items * fix: Style validations for menu widget * feat: Add more descriptive help text for configure menu items in menu button widget * feat: Change menu items source property type from dropdown to icon tabs * fix: Cy test for menu button widget to select menu items source from button tabs instead of dropdown * feat: Make ConfigureMenuItemsControl a Generic/reusable OpenNextPanelWithButtonControl * refactor: Change MenuComputeValue to MenuButtonDynamicItemsControl * refactor: Merge TABLE_PROPERTY and MENU_PROPERTY into one ARRAY_AND_ANY_PROPERTY * fix: Don't polute Menu Button DSL with properties for dynamic menu items until the source is static * style: Change color of curly braces hint in currentItem autocomplete to make it more readable * fix: remove unused import * refactor: Move child config panels to a different file, style: Change help text and placeholder for a few properties for Dynamic menu items - menu button * refactor: Change event autocomplete function name, use fast equal * refactor: Change source data validation function name and use camelCase throughout * refactor: Validation function for source data * refactor: Create different type for menuItems and configureMenuItems and reuse them property config * feat: refactor: move get items to widget instead of component * pref: Visible items to be calculated when menu button is clicked * refactor: replace !("menuItemsSource" in child) with in migration * refactor: Change controlType name from OPEN_NEXT_PANEL_WITH_BUTTON to OPEN_CONFIG_PANEL, use generic names inside OpenNextPanelWithButtonControl.tsx * refactor: Minor cleanup at MenuButtonDynamicItemsControl.tsx * refactor: Minor cleanup at MenuButtonDynamicItemsControl.tsx * fix: Change constant used in migration to a static value * test: Add tests for validations and helper for menu button * test: Add more Cypress tests for dynamic-menu-items * fix: Minor refactor at onclick handler and MenuButtonDynamicItemsControl * refactor: Rename ARRAY_AND_ANY_PROPERTY to ARRAY_TYPE_OR_TYPE * feat: Move initial source data and keys generation inside an update hook * refactor: Rename ARRAY_TYPE_OR_TYPE to ARRAY_OF_TYPE_OR_TYPE * refactor: Minor code refactor in MenuButtonWidget/widget/index.tsx * refactor: Change OpenNextPanelWithButtonControl with OpenConfigPanelControl * feat: Use traverseDSLAndMigrate for dynamic menu items migration * style: Minor code hygiene changes here and there for dynamic menu items * style: Minor code hygiene changes here and there for dynamic menu items * style: remove any type for visible items inside dynamic menu items * refactor: Change type MenuItems to MenuItem * feat: Add support for dynamic menu items (menu button) inside list widget * fix: updateMenuItemsSource hook not working when changing from DYNAMIC to STATIC menu items source * fix: Avoid empty icon name from rendering inside button and menu item * style: Fix a couple of code callouts * fix: Update import from TernServer to CodemirrorTernService * style: fix minor code callouts here and there * fix: Add check for configureMenuItems.config * fix: Add wait time after addOption click for DynamicHeight_Auto_Height_spec.js * fix: Increase the wait time for DynamicHeight_Auto_Height_spec.js to 200ms Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-12-01 04:55:57 +00:00
import * as menuButtonWidgetMigrations from "./migrations/MenuButtonWidget";
import * as modalMigration from "./migrations/ModalWidget";
import * as mapWidgetMigration from "./migrations/MapWidget";
import * as checkboxMigration from "./migrations/CheckboxGroupWidget";
import * as buttonWidgetMigrations from "./migrations/ButtonWidgetMigrations";
import * as phoneInputMigration from "./migrations/PhoneInputWidgetMigrations";
import * as inputCurrencyMigration from "./migrations/CurrencyInputWidgetMigrations";
import * as radioGroupMigration from "./migrations/RadioGroupWidget";
import * as propertyPaneMigrations from "./migrations/PropertyPaneMigrations";
import * as themingMigration from "./migrations/ThemingMigrations";
import * as selectWidgetMigration from "./migrations/SelectWidget";
import * as mapChartReskinningMigrations from "./migrations/MapChartReskinningMigrations";
import { LATEST_PAGE_VERSION } from "constants/WidgetConstants";
import { originalDSLForDSLMigrations } from "./testDSLs";
import * as rateWidgetMigrations from "./migrations/RateWidgetMigrations";
import * as codeScannerWidgetMigrations from "./migrations/CodeScannerWidgetMigrations";
feat: Automatic height updates for widgets based on contents (Auto Height) (#18341) * added multi select back * (WIP): Complete the dynamc height update logic * (WIP): Dynamic height logic * (WIP): Container computation logic, Next steps: Prevent reflow when resize is disabled. Fix logic of widgets randomly changing positions (Debug) * Fix logic in container computations * Integrate for PoC * fixed the no initial load dynamic height updates * Stop vertical resize and reflow when dynamic height is enabled for a widget * added another container in text widget * enabled dynamic height for container widgets * removed dynamic height feature from list widget * Fixed Button and Input components height increase * added an experiment to overflow the content if maxHEight is less * removed the ref of Textwidget by mistake, added it back * fixed text widget height overflow problem with a little hack * added long labels with text * fixed the table scroll issue * overflow fixed for json form widget * added extra 8px height for Switch, Rating and Checkbox Height * (WIP): Resolve issues * (WIP): Fix widget padding issue * added overflow container for Radio and Switch group widgets * (WIP): Have modals work with dynamic height * added the overlay and the handles * added dragging behavior to the dots * fixed the overlapping with the selection tool * (WIP): Fix issues reported * now we can update the property pane values back from overlay handles * now we can update the property pane values back from overlay handles * (WIP): Fix table widget * Fix package.json * Remove unit tests temporarily * Fix unit test * (WIP): Fix modal resize. Fix cursors. Fix border issue on non-resizable widgets * fetch component heights using the requestAnimationFrame callback * behavioural changes * (WIP): Fix issues on the platform * Update main container size appropriately * more behavioural changes * overlay now only be visible when hovering over the dots * grid showing and widget reselecting * added onfocus and onblur events to property pane listeners * added onfocus and onblur events to property pane listeners * added a range slider for min and max * added demarcations for slider values * (WIP): Fix platform workflows for dynamic height * Fix issues with widgets * Fix removed import * - Add missing cypress files * set the limits * limit increase on change * Fix z-index of min max limit indicators. Fix unused-vars warnings * Fix Table Widget and Text Widget issues * Fix: all the bugs in the bug master list for DH (#16268) * changed the zindex for the signifiers * showing signifiers only when the widget is selected * made changes suggested by Momcilo * activate the dots when the fields are active * created a new centered dot handle * removed overlays on focus and made the border more like deisgn * handles on top of other widgets * hide the overlay when multiple widgets are selected * added a white border * added a white border * bug #15509 resolved * changed the minDynamicHeightLimit to 2 instead of 4 to fix the Bug #15527 * removed the height auto fix from BaseInputComponent to fix the Bug #15388 * removed the condition to not ccalculate dynamic height when the row difference is less than 2 to fix the bug 15353 * made fixes for the bug #16307 * made fixes for the bug #16308 * made fixes for bug 16310 * made fixes for the bug #16402 * removed some log statements * made fixes for the bug #16407 * fixed label problem found in the issue #16543 * made fixes for the issue #16547 * made fixes for the bug #16492 * redeploy * (WIP): Fix to make this branch functional * imported LabelWithTooltip back from design system * signifier is now centered * filled the signifier with primary color * overlay hidden while dragging * made the signifier dashed border also draggable * Fix issue #16590 (#16798) * set the limits to 4 rows * replaced the static 40 value * added signifiers for modal widget * added signifiers for modal widget * tried solving the scroll issue for widgets when there are limits * solved the height problem using ResizeObserver * (WIP): Fix maxDynamicHeight issue with container widgets: * made the changes as per the review * fixed the issue for input widget when label gets out of border * hide text widget overflow options if auto height is enabled * (WIP): In view mode, invisible widgets now donot take space (#16920) * (WIP): In view mode, invisible widgets now donot take space * (WIP): Enable the feature where invisible widgets in view mode don't take space to all widgets irrespective of the dynamic height feature * Remove Replay conditional * removed the scroll container for container type widgets * removed the scroll container for container type widgets * updated the hook to set overflow none for text widget * fixed the should dynamic height logic to respect the min height limit * Modal widget adheres to dynamic height (#16995) * Modal widget adheres to dynamic height * WIP: POC: fix dynamic height issues (#16996) Fix height less than 4 issue. Fix JSONForm adherence to min and max height * POC: Dynamic height undo redo issue (#17085) * Revert debouce timeout * (WIP): Fix issue with undo-redo in dynamic height * fix: Dynamic height issue fixes (#17153) * Dynamic height issue fixes == - Fix issue where nested widgets did not ensure parent dynamic height updates - Fix issue where Modal widget updates came in subsequent renders - Fix issue where JSONForm collapses - Fix performance issue for independent updates * Use functions to get min and max dynamic height * Fix issue where variable might have been undefined * added the dynamic container into the deploy mode as well * added overflow-x hidden when overflow-y is active in the dynamic height container * fix: Dynamic height Issue fixes (#17204) Fix preview mode invisible widgets. Fix Tabs widget dynamic height. * removed a console.log statement * removed the slider control file * imported the LabelWithTooltip from the repo rather than ds * word-break CSS rules added for Switch and Checkbox widget when Dynamic Height is enabled * abstracted the check for dynamic height with limits enabled as isDynamicHeightWithLimitsEnabledForWidget * abstracted the static value of 10 in dynamic height overlay to GridDefaults * abstracted min and max dynamic height limits to getters * fix: replaced all the refs for simpler widgets (#17353) * replaced all the refs for simpler widgets * removed the updateDynamicHeight from componentDidUpdate in BaseWidget * added back lifecycle methods back to BaseWidget * removed the contentRef from SwitchGroup and Table * updating the height from the auto height with limits as well * some hacks to make the limits work * working solution * used setTimeout to send an update to updateDynamicHeight from overlay update * removed a log * added requestanimationframe in settimeout Co-authored-by: Ankur Singhal <ankursinghal@Ankurs-MacBook-Pro-2.local> Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * Fix issues caused during merge * Remove unneeded derived property * removed more unnecessary code which should have been removed after removing the ref dependency * fixed the maxDynamicHeight issue * Fix issue where property configs were not being sent * fix: Auto Height Feature - add selectors for tests (#17687) Add selectors for auto height cypress tests * fix: removed height auto default theme (#17415) removed height auto css rule from the default theme Co-authored-by: Ankur Singhal <ankursinghal@Ankurs-MacBook-Pro-2.local> * fix: Auto Height Feature - Resolve issues and restructure code (#17686) * Fix issues in dynamic height. Restructure code and reduce abstraction leaks * Fix typescript issues * Update based on review comments. Comment migrations, as a cyclic import is causing the jest tests to fail. * Remove unused imports * Decrease code nesting * added the base styles for the overlay like position and z-index in its styled component css * used the isDynamicHeightEnabled prop to set the height of SwitchGroup and RadioGroup widgets from 32px to 100% in case of inline mode * fix: Auto Height - Resolve issues (#17737) * Fix Tabs Widget showTabs toggle based auto height. Revert removal of BaseWidget code. Remove box-intersect and use a bruteforce algorithm. Add base logic for having containers collapse due to hidden child widgets * Hide scroll contents and overflow property pane controls when dynamic height is enabled * Removed the class property expectedHeight from BaseWidget as it is not useful in the overlay logic after some changes * fixed the left alignment issue of label in the rich text editor by adding some styles applied only when the dynamic height is enabled * fixed the input field stretching issue in case of Dynamic height by adding some CSS styles when isDynamicHeight is true * Fix failing modal widget cypress tests * Fix issue with scrollContents and Tabs Widget defaulTab * added a little bit padding of 4px to the right of scroll container of dynamic height with limit * Add test locators for resize handles * removed the dynamic height logic from the table widget * fix: Auto-Height invisible widgets (#17849) * Fix issue where invisible widgets were still taking space * Make sure to collapse only if dynamic height is enabled * Fix issues with reflow (not the invisible widgets) * Fix container min height issues * Fix reflow with original bottom and top values. Testing needed * Fix invisible widgets * fix: enabled dynamic height for stat box widget (#17971) enabled dynamic height for stat box widget Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: added a min height to rich text editor so that it does not collapse (#17970) added a min height to rich text editor so that it does not collapse Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * Fix issue with resizing auto height widget * Add helper text to educate users regarding the scroll disconnect in WYSIWYG * fix: Auto Height Fixes (#18111) AUTO HEIGHT FIXES - Fix JSONForm height discrepancy - Fix issue where widgets moved below the other - Fix droptarget height after parent container resize * fix: sliced up the DynamicHeightOverlay component a little bit (#18100) * sliced up the DynamicHeightOverlay component a little bit * more refactoring * more refactoring * used release event emitter and refactored more Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: rich text editor center alignment issue (#18142) * removed the center alignment from rich text editor * dummy commit Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: old DSL container collapse (#18160) * Fix issue where old containers from old DSLs used to collapse when auto height was enabled * Fix issue where old containers don't allow new widgets to be added when auto height is enabled, this is because the shouldScrollContents is undefined * fix: input widgets issue (#18172) fixed the auto height not working issue Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: preview deploy mode (#18174) fixed the preview and deploy mode Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: auto height limits label intersection with handle dot (#18186) fixed the position of the limits label to the right so that it will not intersect with the handle dot Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: auto height limits rich text editor min height (#18187) decrease the min height of the RTE so that it does not have the boundary issue with the max limit when auto height with limits is enabled Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: grammatical error in the help text (#18188) changed react to reacts in the helpText of the dynamic height property in the proeprty pane Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: auto height tabs double scroll (#18210) solved the issue by disabling the scroll for the child canvas widget in the tabs widget Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: auto height limits resizing (#18213) * fixed the auto height limits resizing issue * made the auto height overlay independent of isResizing and used its own property to show the grid * some more refactoring Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * dummy commit * fix: old apps container issue (#18255) filtered out the widgets which are detached from layout Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: fixing auto height in childless containers. (#18263) fixing auto height in childless containers. * task: Dynamic height reflow fixes in Branch (#18244) dynamic height reflow fixes * fix: compact label issue and min and max limits numeric input (#18282) fixed compact label issue and turned min and max limits to numeric input Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: LabelWithTooltip help icon fix * fix: NaN and min limit for min and max (#18284) * fixed compact label issue and turned min and max limits to numeric input * fixed NaN and set min to be 4 Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: validation issues for min max (#18286) * fixed compact label issue and turned min and max limits to numeric input * fixed NaN and set min to be 4 * validations start working min max Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * added a full stop to container scroll helper text * validations start working min max * dummy commit * feat: stop resizing auto height widgets vertically because of Drag n Drop Reflow (#18267) * reflow fixes * stop resizing auto height widgets vertically because of Drag n Drop Reflow * feat: Analytics for Dynamic height (#18279) * Fix canvas min height issue and invisible widgets issue and remove logs and fix issue where widgets overlapped when coming back from preview mode to edit mode * Fix issue with containers not respecting auto height and decreasing height * Fix issue with modal widget not hugging contents, and container widgets never become visible after going invisible * Fix issue where existing containers don't have correct min height for child canvas * fix: canvasLevelsReducers test (#18301) fixed the canvasLevelsReducers test Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: removed auto height min max config from widget features (#18316) removed auto height min max config from widget features Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: Fixing Modal Height updates (#18317) Fixing Modal Height updates * fix: text widget background auto height (#18319) added background color of Text widget back to the auto height container Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * test: cypress tests for auto height (#17676) * Added tests for dynamic height * updated tests for another usecase * moved locators into commonfile * updated common method * added tests for some more widgets * Added tests for jsonForm / Form widget * Updated the test * updated test for multiple text widgets * updated test with few more usecases * updated the dsl * updated tests for text change * updated tests based on new changes * updated cypress test fixes * fix: auto height container merge poc wrt release (#18334) updated the poc wrt PR already merged in the release regarding the auto height container Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: renamed auto height overlay components and added some tests (#18333) * renamed auto height overlay components and added some tests * replaced the 10 value with GridDefaults * avoiding event to reach drop target Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * updated tests * Merge all code into one branch * Fix failing AutoHeightcontainer test * fix: Fix reflow computations which were causing widget overlap (#18300) * Fix reflow computations which were causing widget overlap * Fix issues with parent container height and overlapping widgets * Remove console logs * Revert comment * Fix issues related to reflow of containers * feat: Making getEffectedBoxes a Recursive function in autoHeight Reflow (#18336) Making getEffectedBoxes a Recursive function in autoHeight Reflow * Return null for invisible widgets from withWidgetProps * Remove duplicate import Co-authored-by: rahulramesha <71900764+rahulramesha@users.noreply.github.com> * Remove missed console log * fix: Label position gets deselected on selecting already selected option (#18298) * fix: Label position gets deselected on selecting the already selected value * Added migration for Currency & Phone input widgets * simplify migration function using a utility * combine conditions * Increments LATEST_PAGE_VERSION * Update DynamicHeight_Visibility_spec.js updated a check wrt auto height * Handling Modals for canvas size calculations * fix: migrate label position test failing issue (#18365) fixed migrate label postition test failing issue Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * removed the two unwanted imports from DSLMigrations to fix client build * fix: Auto height zero and limits issue (#18366) fixed the auto height zero and limits issue Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: Auto height regression issues (#18367) * Fix auto height regression issues #18367 * feat: auto height migrations (#18368) Add auto height migrations * Increase file caching size * Use manual array for list of auto height enabled widgets * Fix cypress test dsl versions * Revert changes to shouldUpdateHeightDynamically * Update test results based on code changes * Marginally increase the workbox file size cache * review comment incorporated for test spec * Update container auto height property on drop * added small wait for validation Co-authored-by: Ankur Singhal <ankur@appsmith.com> Co-authored-by: rahulramesha <rahul@appsmith.com> Co-authored-by: Abhinav Jha <zatanna@Abhinavs-iMac.lan> Co-authored-by: Ankur Singhal <ankursinghal@Ankurs-MacBook-Pro-2.local> Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com> Co-authored-by: rahulramesha <71900764+rahulramesha@users.noreply.github.com> Co-authored-by: Albin <albin@appsmith.com> Co-authored-by: Aswath K <aswath.sana@gmail.com> Co-authored-by: NandanAnantharamu <67676905+NandanAnantharamu@users.noreply.github.com> Co-authored-by: Apple <nandan@thinkify.io>
2022-11-23 09:48:23 +00:00
import * as migrateLabelPosition from "./migrations/MigrateLabelPosition";
import * as migrateAutoHeight from "./migrations/autoHeightMigrations";
type Migration = {
functionLookup: {
moduleObj: any;
functionName: string;
}[];
version: number | undefined;
};
/**
* Migrations is an array of objects, were each object has
* - moduleObj: A namespace import that includes all the exported function present in the module. Refer to line 3.
* - functionName: Name of the migration function to spyOn
* - version: The DSL version in which the function is executing
*
* Migrations will be used to construct mockFnObj object where mockFnObj's key is the version and value is an array of jest mock functions.
*
* NOTE:
* - In Migrations the sequence of object should exactly match the sequence that is present in the transformDSL function.
*
* - For cases were migration is skipped, we include them in Migrations.
* Simply add the object with functionLookup and version of the skipped migration.
* Refer to the skippedMigration50 object inside Migrations
*/
const migrations: Migration[] = [
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "calculateDynamicHeight",
},
],
version: undefined,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "updateContainers",
},
],
version: 1,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "chartDataMigration",
},
],
version: 2,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "mapDataMigration",
},
],
version: 3,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "singleChartDataMigration",
},
],
version: 4,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "tabsWidgetTabsPropertyMigration",
},
],
version: 5,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "dynamicPathListMigration",
},
],
version: 6,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "canvasNameConflictMigration",
},
],
version: 7,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "renamedCanvasNameConflictMigration",
},
],
version: 8,
},
{
functionLookup: [
{
moduleObj: tableMigrations,
functionName: "tableWidgetPropertyPaneMigrations",
},
],
version: 9,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "addVersionNumberMigration",
},
],
version: 10,
},
{
functionLookup: [
{
moduleObj: tableMigrations,
functionName: "migrateTablePrimaryColumnsBindings",
},
],
version: 11,
},
{
functionLookup: [
{
moduleObj: IncorrectDynamicBindingPathLists,
functionName: "migrateIncorrectDynamicBindingPathLists",
},
],
version: 12,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateOldChartData",
},
],
version: 13,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "rteDefaultValueMigration",
},
],
version: 14,
},
{
functionLookup: [
{
moduleObj: TextStyleFromTextWidget,
functionName: "migrateTextStyleFromTextWidget",
},
],
version: 15,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateChartDataFromArrayToObject",
},
],
version: 16,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateTabsData",
},
],
version: 17,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateInitialValues",
},
],
version: 18,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateToNewLayout",
},
],
version: 19,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateNewlyAddedTabsWidgetsMissingData",
},
],
version: 20,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateWidgetsWithoutLeftRightColumns",
},
{
moduleObj: DSLMigrations,
functionName: "migrateOverFlowingTabsWidgets",
},
],
version: 21,
},
{
functionLookup: [
{
moduleObj: tableMigrations,
functionName: "migrateTableWidgetParentRowSpaceProperty",
},
],
version: 22,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "addLogBlackListToAllListWidgetChildren",
},
],
version: 23,
},
{
functionLookup: [
{
moduleObj: tableMigrations,
functionName: "migrateTableWidgetHeaderVisibilityProperties",
},
],
version: 24,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateItemsToListDataInListWidget",
},
],
version: 25,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateDatePickerMinMaxDate",
},
],
version: 26,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateFilterValueForDropDownWidget",
},
],
version: 27,
},
{
functionLookup: [
{
moduleObj: tableMigrations,
functionName: "migrateTablePrimaryColumnsComputedValue",
},
],
version: 28,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateToNewMultiSelect",
},
],
version: 29,
},
{
functionLookup: [
{
moduleObj: tableMigrations,
functionName: "migrateTableWidgetDelimiterProperties",
},
],
version: 30,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateIsDisabledToButtonColumn",
},
],
version: 31,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateTableDefaultSelectedRow",
},
],
version: 32,
},
{
functionLookup: [
{
feat: Dynamic Menu Items - Menu Button Widget (#17652) * faet: Add menu items source for menu widget * feat: Add configuration panel for dynamic menu items * feat: Pass down items from sourceData to menu items widget * feat: Take menu items config from property pane for dynamic menu items * fix: Change all onMenuItemClick to onClick for dynamic menu items * feat: Create MenuComputeValue property control to add support for {{currentItem}} binding in menu widget * feat: Add JS toggles for style properties for menu widget * feat: onClick now supports currentItem for menu button widget * feat: Add currentItem autocomplete, move property pane config to separate files for menu button widget * feat: WIP - Add Dynamic Menu Items for Table Widget * Revert "feat: WIP - Add Dynamic Menu Items for Table Widget" This reverts commit 271f96211c8612bc6f073a1aab7467993b9d7e36. * fix: remove current item label by default for dynamic menu items in menu button * feat: Add source data max length 10 validation for dynamic menu items in menu button * feat: Add migrations for Dynamic Menu Items for Menu Button Widget * feat: Add cypress test for dynamic menu items for menu button * test: Update DSLMigration test with menu button widget tests * fix: Update MenuButtonWidget migration * fix: DSL migrations for menu button dynmaic items * fix: Style validations for menu widget * feat: Add more descriptive help text for configure menu items in menu button widget * feat: Change menu items source property type from dropdown to icon tabs * fix: Cy test for menu button widget to select menu items source from button tabs instead of dropdown * feat: Make ConfigureMenuItemsControl a Generic/reusable OpenNextPanelWithButtonControl * refactor: Change MenuComputeValue to MenuButtonDynamicItemsControl * refactor: Merge TABLE_PROPERTY and MENU_PROPERTY into one ARRAY_AND_ANY_PROPERTY * fix: Don't polute Menu Button DSL with properties for dynamic menu items until the source is static * style: Change color of curly braces hint in currentItem autocomplete to make it more readable * fix: remove unused import * refactor: Move child config panels to a different file, style: Change help text and placeholder for a few properties for Dynamic menu items - menu button * refactor: Change event autocomplete function name, use fast equal * refactor: Change source data validation function name and use camelCase throughout * refactor: Validation function for source data * refactor: Create different type for menuItems and configureMenuItems and reuse them property config * feat: refactor: move get items to widget instead of component * pref: Visible items to be calculated when menu button is clicked * refactor: replace !("menuItemsSource" in child) with in migration * refactor: Change controlType name from OPEN_NEXT_PANEL_WITH_BUTTON to OPEN_CONFIG_PANEL, use generic names inside OpenNextPanelWithButtonControl.tsx * refactor: Minor cleanup at MenuButtonDynamicItemsControl.tsx * refactor: Minor cleanup at MenuButtonDynamicItemsControl.tsx * fix: Change constant used in migration to a static value * test: Add tests for validations and helper for menu button * test: Add more Cypress tests for dynamic-menu-items * fix: Minor refactor at onclick handler and MenuButtonDynamicItemsControl * refactor: Rename ARRAY_AND_ANY_PROPERTY to ARRAY_TYPE_OR_TYPE * feat: Move initial source data and keys generation inside an update hook * refactor: Rename ARRAY_TYPE_OR_TYPE to ARRAY_OF_TYPE_OR_TYPE * refactor: Minor code refactor in MenuButtonWidget/widget/index.tsx * refactor: Change OpenNextPanelWithButtonControl with OpenConfigPanelControl * feat: Use traverseDSLAndMigrate for dynamic menu items migration * style: Minor code hygiene changes here and there for dynamic menu items * style: Minor code hygiene changes here and there for dynamic menu items * style: remove any type for visible items inside dynamic menu items * refactor: Change type MenuItems to MenuItem * feat: Add support for dynamic menu items (menu button) inside list widget * fix: updateMenuItemsSource hook not working when changing from DYNAMIC to STATIC menu items source * fix: Avoid empty icon name from rendering inside button and menu item * style: Fix a couple of code callouts * fix: Update import from TernServer to CodemirrorTernService * style: fix minor code callouts here and there * fix: Add check for configureMenuItems.config * fix: Add wait time after addOption click for DynamicHeight_Auto_Height_spec.js * fix: Increase the wait time for DynamicHeight_Auto_Height_spec.js to 200ms Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-12-01 04:55:57 +00:00
moduleObj: menuButtonWidgetMigrations,
functionName: "migrateMenuButtonWidgetButtonProperties",
},
],
version: 33,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateButtonWidgetValidation",
},
],
version: 34,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateInputValidation",
},
],
version: 35,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "revertTableDefaultSelectedRow",
},
],
version: 36,
},
{
functionLookup: [
{
moduleObj: tableMigrations,
functionName: "migrateTableSanitizeColumnKeys",
},
],
version: 37,
},
{
functionLookup: [
{
moduleObj: modalMigration,
functionName: "migrateResizableModalWidgetProperties",
},
],
version: 38,
},
{
functionLookup: [
{
moduleObj: tableMigrations,
functionName: "migrateTableWidgetSelectedRowBindings",
},
],
version: 39,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "revertButtonStyleToButtonColor",
},
],
version: 40,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "migrateButtonVariant",
},
],
version: 41,
},
{
functionLookup: [
{
moduleObj: mapWidgetMigration,
functionName: "migrateMapWidgetIsClickedMarkerCentered",
},
],
version: 42,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "mapAllowHorizontalScrollMigration",
},
],
version: 43,
},
{
functionLookup: [
{
moduleObj: tableMigrations,
functionName: "isSortableMigration",
},
],
version: 44,
},
{
functionLookup: [
{
moduleObj: tableMigrations,
functionName: "migrateTableWidgetIconButtonVariant",
},
],
version: 45,
},
{
functionLookup: [
{
moduleObj: checkboxMigration,
functionName: "migrateCheckboxGroupWidgetInlineProperty",
},
],
version: 46,
},
{
functionLookup: [
{
moduleObj: "",
functionName: "skippedMigration47",
},
],
version: 47,
},
{
functionLookup: [
{
moduleObj: buttonWidgetMigrations,
functionName: "migrateRecaptchaType",
},
],
version: 48,
},
{
functionLookup: [
{
moduleObj: DSLMigrations,
functionName: "addPrivateWidgetsToAllListWidgets",
},
],
version: 49,
},
{
functionLookup: [
{
moduleObj: "",
functionName: "skippedMigration50",
},
],
version: 50,
},
{
functionLookup: [
{
moduleObj: phoneInputMigration,
functionName: "migratePhoneInputWidgetAllowFormatting",
},
],
version: 51,
},
{
functionLookup: [
{
moduleObj: modalMigration,
functionName: "migrateModalIconButtonWidget",
},
],
version: 52,
},
{
functionLookup: [
{
moduleObj: TextStyleFromTextWidget,
functionName: "migrateScrollTruncateProperties",
},
],
version: 53,
},
{
functionLookup: [
{
moduleObj: phoneInputMigration,
functionName: "migratePhoneInputWidgetDefaultDialCode",
},
],
version: 54,
},
{
functionLookup: [
{
moduleObj: inputCurrencyMigration,
functionName: "migrateCurrencyInputWidgetDefaultCurrencyCode",
},
],
version: 55,
},
{
functionLookup: [
{
moduleObj: radioGroupMigration,
functionName: "migrateRadioGroupAlignmentProperty",
},
],
version: 56,
},
{
functionLookup: [
{
moduleObj: themingMigration,
functionName: "migrateStylingPropertiesForTheming",
},
],
version: 57,
},
{
functionLookup: [
{
moduleObj: propertyPaneMigrations,
functionName: "migrateCheckboxSwitchProperty",
},
],
version: 58,
},
{
functionLookup: [
{
moduleObj: chartWidgetReskinningMigrations,
functionName: "migrateChartWidgetReskinningData",
},
],
version: 59,
},
{
functionLookup: [
{
moduleObj: tableMigrations,
functionName: "migrateTableWidgetV2Validation",
},
],
version: 60,
},
{
functionLookup: [
{
moduleObj: chartWidgetReskinningMigrations,
functionName: "migrateChartWidgetReskinningData",
},
],
version: 61,
},
{
functionLookup: [
{
moduleObj: selectWidgetMigration,
functionName: "MigrateSelectTypeWidgetDefaultValue",
},
],
version: 62,
},
{
functionLookup: [
{
moduleObj: mapChartReskinningMigrations,
functionName: "migrateMapChartWidgetReskinningData",
},
],
version: 63,
},
{
functionLookup: [
{
moduleObj: rateWidgetMigrations,
functionName: "migrateRateWidgetDisabledState",
},
],
version: 64,
},
{
functionLookup: [
{
moduleObj: codeScannerWidgetMigrations,
functionName: "migrateCodeScannerLayout",
},
],
version: 65,
},
{
functionLookup: [
{
moduleObj: tableMigrations,
functionName: "migrateTableWidgetV2ValidationBinding",
},
],
version: 66,
},
feat: Automatic height updates for widgets based on contents (Auto Height) (#18341) * added multi select back * (WIP): Complete the dynamc height update logic * (WIP): Dynamic height logic * (WIP): Container computation logic, Next steps: Prevent reflow when resize is disabled. Fix logic of widgets randomly changing positions (Debug) * Fix logic in container computations * Integrate for PoC * fixed the no initial load dynamic height updates * Stop vertical resize and reflow when dynamic height is enabled for a widget * added another container in text widget * enabled dynamic height for container widgets * removed dynamic height feature from list widget * Fixed Button and Input components height increase * added an experiment to overflow the content if maxHEight is less * removed the ref of Textwidget by mistake, added it back * fixed text widget height overflow problem with a little hack * added long labels with text * fixed the table scroll issue * overflow fixed for json form widget * added extra 8px height for Switch, Rating and Checkbox Height * (WIP): Resolve issues * (WIP): Fix widget padding issue * added overflow container for Radio and Switch group widgets * (WIP): Have modals work with dynamic height * added the overlay and the handles * added dragging behavior to the dots * fixed the overlapping with the selection tool * (WIP): Fix issues reported * now we can update the property pane values back from overlay handles * now we can update the property pane values back from overlay handles * (WIP): Fix table widget * Fix package.json * Remove unit tests temporarily * Fix unit test * (WIP): Fix modal resize. Fix cursors. Fix border issue on non-resizable widgets * fetch component heights using the requestAnimationFrame callback * behavioural changes * (WIP): Fix issues on the platform * Update main container size appropriately * more behavioural changes * overlay now only be visible when hovering over the dots * grid showing and widget reselecting * added onfocus and onblur events to property pane listeners * added onfocus and onblur events to property pane listeners * added a range slider for min and max * added demarcations for slider values * (WIP): Fix platform workflows for dynamic height * Fix issues with widgets * Fix removed import * - Add missing cypress files * set the limits * limit increase on change * Fix z-index of min max limit indicators. Fix unused-vars warnings * Fix Table Widget and Text Widget issues * Fix: all the bugs in the bug master list for DH (#16268) * changed the zindex for the signifiers * showing signifiers only when the widget is selected * made changes suggested by Momcilo * activate the dots when the fields are active * created a new centered dot handle * removed overlays on focus and made the border more like deisgn * handles on top of other widgets * hide the overlay when multiple widgets are selected * added a white border * added a white border * bug #15509 resolved * changed the minDynamicHeightLimit to 2 instead of 4 to fix the Bug #15527 * removed the height auto fix from BaseInputComponent to fix the Bug #15388 * removed the condition to not ccalculate dynamic height when the row difference is less than 2 to fix the bug 15353 * made fixes for the bug #16307 * made fixes for the bug #16308 * made fixes for bug 16310 * made fixes for the bug #16402 * removed some log statements * made fixes for the bug #16407 * fixed label problem found in the issue #16543 * made fixes for the issue #16547 * made fixes for the bug #16492 * redeploy * (WIP): Fix to make this branch functional * imported LabelWithTooltip back from design system * signifier is now centered * filled the signifier with primary color * overlay hidden while dragging * made the signifier dashed border also draggable * Fix issue #16590 (#16798) * set the limits to 4 rows * replaced the static 40 value * added signifiers for modal widget * added signifiers for modal widget * tried solving the scroll issue for widgets when there are limits * solved the height problem using ResizeObserver * (WIP): Fix maxDynamicHeight issue with container widgets: * made the changes as per the review * fixed the issue for input widget when label gets out of border * hide text widget overflow options if auto height is enabled * (WIP): In view mode, invisible widgets now donot take space (#16920) * (WIP): In view mode, invisible widgets now donot take space * (WIP): Enable the feature where invisible widgets in view mode don't take space to all widgets irrespective of the dynamic height feature * Remove Replay conditional * removed the scroll container for container type widgets * removed the scroll container for container type widgets * updated the hook to set overflow none for text widget * fixed the should dynamic height logic to respect the min height limit * Modal widget adheres to dynamic height (#16995) * Modal widget adheres to dynamic height * WIP: POC: fix dynamic height issues (#16996) Fix height less than 4 issue. Fix JSONForm adherence to min and max height * POC: Dynamic height undo redo issue (#17085) * Revert debouce timeout * (WIP): Fix issue with undo-redo in dynamic height * fix: Dynamic height issue fixes (#17153) * Dynamic height issue fixes == - Fix issue where nested widgets did not ensure parent dynamic height updates - Fix issue where Modal widget updates came in subsequent renders - Fix issue where JSONForm collapses - Fix performance issue for independent updates * Use functions to get min and max dynamic height * Fix issue where variable might have been undefined * added the dynamic container into the deploy mode as well * added overflow-x hidden when overflow-y is active in the dynamic height container * fix: Dynamic height Issue fixes (#17204) Fix preview mode invisible widgets. Fix Tabs widget dynamic height. * removed a console.log statement * removed the slider control file * imported the LabelWithTooltip from the repo rather than ds * word-break CSS rules added for Switch and Checkbox widget when Dynamic Height is enabled * abstracted the check for dynamic height with limits enabled as isDynamicHeightWithLimitsEnabledForWidget * abstracted the static value of 10 in dynamic height overlay to GridDefaults * abstracted min and max dynamic height limits to getters * fix: replaced all the refs for simpler widgets (#17353) * replaced all the refs for simpler widgets * removed the updateDynamicHeight from componentDidUpdate in BaseWidget * added back lifecycle methods back to BaseWidget * removed the contentRef from SwitchGroup and Table * updating the height from the auto height with limits as well * some hacks to make the limits work * working solution * used setTimeout to send an update to updateDynamicHeight from overlay update * removed a log * added requestanimationframe in settimeout Co-authored-by: Ankur Singhal <ankursinghal@Ankurs-MacBook-Pro-2.local> Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * Fix issues caused during merge * Remove unneeded derived property * removed more unnecessary code which should have been removed after removing the ref dependency * fixed the maxDynamicHeight issue * Fix issue where property configs were not being sent * fix: Auto Height Feature - add selectors for tests (#17687) Add selectors for auto height cypress tests * fix: removed height auto default theme (#17415) removed height auto css rule from the default theme Co-authored-by: Ankur Singhal <ankursinghal@Ankurs-MacBook-Pro-2.local> * fix: Auto Height Feature - Resolve issues and restructure code (#17686) * Fix issues in dynamic height. Restructure code and reduce abstraction leaks * Fix typescript issues * Update based on review comments. Comment migrations, as a cyclic import is causing the jest tests to fail. * Remove unused imports * Decrease code nesting * added the base styles for the overlay like position and z-index in its styled component css * used the isDynamicHeightEnabled prop to set the height of SwitchGroup and RadioGroup widgets from 32px to 100% in case of inline mode * fix: Auto Height - Resolve issues (#17737) * Fix Tabs Widget showTabs toggle based auto height. Revert removal of BaseWidget code. Remove box-intersect and use a bruteforce algorithm. Add base logic for having containers collapse due to hidden child widgets * Hide scroll contents and overflow property pane controls when dynamic height is enabled * Removed the class property expectedHeight from BaseWidget as it is not useful in the overlay logic after some changes * fixed the left alignment issue of label in the rich text editor by adding some styles applied only when the dynamic height is enabled * fixed the input field stretching issue in case of Dynamic height by adding some CSS styles when isDynamicHeight is true * Fix failing modal widget cypress tests * Fix issue with scrollContents and Tabs Widget defaulTab * added a little bit padding of 4px to the right of scroll container of dynamic height with limit * Add test locators for resize handles * removed the dynamic height logic from the table widget * fix: Auto-Height invisible widgets (#17849) * Fix issue where invisible widgets were still taking space * Make sure to collapse only if dynamic height is enabled * Fix issues with reflow (not the invisible widgets) * Fix container min height issues * Fix reflow with original bottom and top values. Testing needed * Fix invisible widgets * fix: enabled dynamic height for stat box widget (#17971) enabled dynamic height for stat box widget Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: added a min height to rich text editor so that it does not collapse (#17970) added a min height to rich text editor so that it does not collapse Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * Fix issue with resizing auto height widget * Add helper text to educate users regarding the scroll disconnect in WYSIWYG * fix: Auto Height Fixes (#18111) AUTO HEIGHT FIXES - Fix JSONForm height discrepancy - Fix issue where widgets moved below the other - Fix droptarget height after parent container resize * fix: sliced up the DynamicHeightOverlay component a little bit (#18100) * sliced up the DynamicHeightOverlay component a little bit * more refactoring * more refactoring * used release event emitter and refactored more Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: rich text editor center alignment issue (#18142) * removed the center alignment from rich text editor * dummy commit Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: old DSL container collapse (#18160) * Fix issue where old containers from old DSLs used to collapse when auto height was enabled * Fix issue where old containers don't allow new widgets to be added when auto height is enabled, this is because the shouldScrollContents is undefined * fix: input widgets issue (#18172) fixed the auto height not working issue Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: preview deploy mode (#18174) fixed the preview and deploy mode Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: auto height limits label intersection with handle dot (#18186) fixed the position of the limits label to the right so that it will not intersect with the handle dot Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: auto height limits rich text editor min height (#18187) decrease the min height of the RTE so that it does not have the boundary issue with the max limit when auto height with limits is enabled Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: grammatical error in the help text (#18188) changed react to reacts in the helpText of the dynamic height property in the proeprty pane Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: auto height tabs double scroll (#18210) solved the issue by disabling the scroll for the child canvas widget in the tabs widget Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: auto height limits resizing (#18213) * fixed the auto height limits resizing issue * made the auto height overlay independent of isResizing and used its own property to show the grid * some more refactoring Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * dummy commit * fix: old apps container issue (#18255) filtered out the widgets which are detached from layout Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: fixing auto height in childless containers. (#18263) fixing auto height in childless containers. * task: Dynamic height reflow fixes in Branch (#18244) dynamic height reflow fixes * fix: compact label issue and min and max limits numeric input (#18282) fixed compact label issue and turned min and max limits to numeric input Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: LabelWithTooltip help icon fix * fix: NaN and min limit for min and max (#18284) * fixed compact label issue and turned min and max limits to numeric input * fixed NaN and set min to be 4 Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: validation issues for min max (#18286) * fixed compact label issue and turned min and max limits to numeric input * fixed NaN and set min to be 4 * validations start working min max Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * added a full stop to container scroll helper text * validations start working min max * dummy commit * feat: stop resizing auto height widgets vertically because of Drag n Drop Reflow (#18267) * reflow fixes * stop resizing auto height widgets vertically because of Drag n Drop Reflow * feat: Analytics for Dynamic height (#18279) * Fix canvas min height issue and invisible widgets issue and remove logs and fix issue where widgets overlapped when coming back from preview mode to edit mode * Fix issue with containers not respecting auto height and decreasing height * Fix issue with modal widget not hugging contents, and container widgets never become visible after going invisible * Fix issue where existing containers don't have correct min height for child canvas * fix: canvasLevelsReducers test (#18301) fixed the canvasLevelsReducers test Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: removed auto height min max config from widget features (#18316) removed auto height min max config from widget features Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: Fixing Modal Height updates (#18317) Fixing Modal Height updates * fix: text widget background auto height (#18319) added background color of Text widget back to the auto height container Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * test: cypress tests for auto height (#17676) * Added tests for dynamic height * updated tests for another usecase * moved locators into commonfile * updated common method * added tests for some more widgets * Added tests for jsonForm / Form widget * Updated the test * updated test for multiple text widgets * updated test with few more usecases * updated the dsl * updated tests for text change * updated tests based on new changes * updated cypress test fixes * fix: auto height container merge poc wrt release (#18334) updated the poc wrt PR already merged in the release regarding the auto height container Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: renamed auto height overlay components and added some tests (#18333) * renamed auto height overlay components and added some tests * replaced the 10 value with GridDefaults * avoiding event to reach drop target Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * updated tests * Merge all code into one branch * Fix failing AutoHeightcontainer test * fix: Fix reflow computations which were causing widget overlap (#18300) * Fix reflow computations which were causing widget overlap * Fix issues with parent container height and overlapping widgets * Remove console logs * Revert comment * Fix issues related to reflow of containers * feat: Making getEffectedBoxes a Recursive function in autoHeight Reflow (#18336) Making getEffectedBoxes a Recursive function in autoHeight Reflow * Return null for invisible widgets from withWidgetProps * Remove duplicate import Co-authored-by: rahulramesha <71900764+rahulramesha@users.noreply.github.com> * Remove missed console log * fix: Label position gets deselected on selecting already selected option (#18298) * fix: Label position gets deselected on selecting the already selected value * Added migration for Currency & Phone input widgets * simplify migration function using a utility * combine conditions * Increments LATEST_PAGE_VERSION * Update DynamicHeight_Visibility_spec.js updated a check wrt auto height * Handling Modals for canvas size calculations * fix: migrate label position test failing issue (#18365) fixed migrate label postition test failing issue Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * removed the two unwanted imports from DSLMigrations to fix client build * fix: Auto height zero and limits issue (#18366) fixed the auto height zero and limits issue Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> * fix: Auto height regression issues (#18367) * Fix auto height regression issues #18367 * feat: auto height migrations (#18368) Add auto height migrations * Increase file caching size * Use manual array for list of auto height enabled widgets * Fix cypress test dsl versions * Revert changes to shouldUpdateHeightDynamically * Update test results based on code changes * Marginally increase the workbox file size cache * review comment incorporated for test spec * Update container auto height property on drop * added small wait for validation Co-authored-by: Ankur Singhal <ankur@appsmith.com> Co-authored-by: rahulramesha <rahul@appsmith.com> Co-authored-by: Abhinav Jha <zatanna@Abhinavs-iMac.lan> Co-authored-by: Ankur Singhal <ankursinghal@Ankurs-MacBook-Pro-2.local> Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com> Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com> Co-authored-by: rahulramesha <71900764+rahulramesha@users.noreply.github.com> Co-authored-by: Albin <albin@appsmith.com> Co-authored-by: Aswath K <aswath.sana@gmail.com> Co-authored-by: NandanAnantharamu <67676905+NandanAnantharamu@users.noreply.github.com> Co-authored-by: Apple <nandan@thinkify.io>
2022-11-23 09:48:23 +00:00
{
functionLookup: [
{
moduleObj: migrateLabelPosition,
functionName: "migrateLabelPosition",
},
],
version: 67,
},
{
functionLookup: [
{
moduleObj: migrateAutoHeight,
functionName: "migratePropertiesForDynamicHeight",
},
],
version: 68,
},
feat: Dynamic Menu Items - Menu Button Widget (#17652) * faet: Add menu items source for menu widget * feat: Add configuration panel for dynamic menu items * feat: Pass down items from sourceData to menu items widget * feat: Take menu items config from property pane for dynamic menu items * fix: Change all onMenuItemClick to onClick for dynamic menu items * feat: Create MenuComputeValue property control to add support for {{currentItem}} binding in menu widget * feat: Add JS toggles for style properties for menu widget * feat: onClick now supports currentItem for menu button widget * feat: Add currentItem autocomplete, move property pane config to separate files for menu button widget * feat: WIP - Add Dynamic Menu Items for Table Widget * Revert "feat: WIP - Add Dynamic Menu Items for Table Widget" This reverts commit 271f96211c8612bc6f073a1aab7467993b9d7e36. * fix: remove current item label by default for dynamic menu items in menu button * feat: Add source data max length 10 validation for dynamic menu items in menu button * feat: Add migrations for Dynamic Menu Items for Menu Button Widget * feat: Add cypress test for dynamic menu items for menu button * test: Update DSLMigration test with menu button widget tests * fix: Update MenuButtonWidget migration * fix: DSL migrations for menu button dynmaic items * fix: Style validations for menu widget * feat: Add more descriptive help text for configure menu items in menu button widget * feat: Change menu items source property type from dropdown to icon tabs * fix: Cy test for menu button widget to select menu items source from button tabs instead of dropdown * feat: Make ConfigureMenuItemsControl a Generic/reusable OpenNextPanelWithButtonControl * refactor: Change MenuComputeValue to MenuButtonDynamicItemsControl * refactor: Merge TABLE_PROPERTY and MENU_PROPERTY into one ARRAY_AND_ANY_PROPERTY * fix: Don't polute Menu Button DSL with properties for dynamic menu items until the source is static * style: Change color of curly braces hint in currentItem autocomplete to make it more readable * fix: remove unused import * refactor: Move child config panels to a different file, style: Change help text and placeholder for a few properties for Dynamic menu items - menu button * refactor: Change event autocomplete function name, use fast equal * refactor: Change source data validation function name and use camelCase throughout * refactor: Validation function for source data * refactor: Create different type for menuItems and configureMenuItems and reuse them property config * feat: refactor: move get items to widget instead of component * pref: Visible items to be calculated when menu button is clicked * refactor: replace !("menuItemsSource" in child) with in migration * refactor: Change controlType name from OPEN_NEXT_PANEL_WITH_BUTTON to OPEN_CONFIG_PANEL, use generic names inside OpenNextPanelWithButtonControl.tsx * refactor: Minor cleanup at MenuButtonDynamicItemsControl.tsx * refactor: Minor cleanup at MenuButtonDynamicItemsControl.tsx * fix: Change constant used in migration to a static value * test: Add tests for validations and helper for menu button * test: Add more Cypress tests for dynamic-menu-items * fix: Minor refactor at onclick handler and MenuButtonDynamicItemsControl * refactor: Rename ARRAY_AND_ANY_PROPERTY to ARRAY_TYPE_OR_TYPE * feat: Move initial source data and keys generation inside an update hook * refactor: Rename ARRAY_TYPE_OR_TYPE to ARRAY_OF_TYPE_OR_TYPE * refactor: Minor code refactor in MenuButtonWidget/widget/index.tsx * refactor: Change OpenNextPanelWithButtonControl with OpenConfigPanelControl * feat: Use traverseDSLAndMigrate for dynamic menu items migration * style: Minor code hygiene changes here and there for dynamic menu items * style: Minor code hygiene changes here and there for dynamic menu items * style: remove any type for visible items inside dynamic menu items * refactor: Change type MenuItems to MenuItem * feat: Add support for dynamic menu items (menu button) inside list widget * fix: updateMenuItemsSource hook not working when changing from DYNAMIC to STATIC menu items source * fix: Avoid empty icon name from rendering inside button and menu item * style: Fix a couple of code callouts * fix: Update import from TernServer to CodemirrorTernService * style: fix minor code callouts here and there * fix: Add check for configureMenuItems.config * fix: Add wait time after addOption click for DynamicHeight_Auto_Height_spec.js * fix: Increase the wait time for DynamicHeight_Auto_Height_spec.js to 200ms Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-12-01 04:55:57 +00:00
{
functionLookup: [
{
moduleObj: menuButtonWidgetMigrations,
functionName: "migrateMenuButtonDynamicItems",
},
],
version: 69,
},
];
const mockFnObj: Record<number, any> = {};
let migratedDSL: ContainerWidgetProps<WidgetProps>;
describe("Test all the migrations are running", () => {
afterAll(() => {
jest.clearAllMocks();
});
migrations.forEach((migration: Migration) => {
/**
* Generates mock fucntion for each migration function.
* Mocks the implementation
*/
const version = migration.version ?? 0;
mockFnObj[version] = [];
migration.functionLookup.forEach((lookup) => {
const { functionName, moduleObj } = lookup;
if (moduleObj) {
mockFnObj[version].push({
spyOnFunc: jest
.spyOn(moduleObj, functionName)
.mockImplementation((dsl: any) => {
/**
* We need to delete the children property on the first migration(calculateDynamicHeight),
* to avoid the recursion in the second migration(updateContainers)
*/
dsl && delete dsl.children;
return {
version: dsl?.version,
validationFuncName: functionName,
};
}),
});
}
});
});
// Runs all the migrations
migratedDSL = DSLMigrations.transformDSL(
(originalDSLForDSLMigrations as unknown) as ContainerWidgetProps<
WidgetProps
>,
);
migrations.forEach((item: any, testIdx: number) => {
const { functionLookup, version } = item;
const dslVersion = version ?? 0;
functionLookup.forEach(
(lookup: { moduleObj: any; functionName: string }, index: number) => {
const { functionName, moduleObj } = lookup;
if (moduleObj) {
const mockObj = mockFnObj[dslVersion][index].spyOnFunc;
const calls = mockObj.mock?.calls;
const results = mockObj.mock?.results;
const resultsLastIdx = mockObj.mock.results.length - 1;
describe(`Test ${testIdx}:`, () => {
test(`Has ${functionName} function executed?`, () => {
// Check if the migration function is called
expect(results[resultsLastIdx].value.validationFuncName).toEqual(
functionName,
);
});
// Check if the migration function is called with the current DSL version
calls.forEach((args: any) => {
test(`Does ${functionName} executes with DSL version: ${version}?`, () => {
if (args[0]?.version === version) {
expect(args[0]?.version).toEqual(version);
}
});
test(`For ${functionName}, is the ${args[0]?.version} registerd in tests?`, () => {
expect(
Object.keys(mockFnObj).includes(
args[0]?.version.toString() ?? "0",
),
).toBe(true);
});
});
});
}
},
);
});
test("Check the migration count matches the lates page version", () => {
expect(migrations.length).toEqual(LATEST_PAGE_VERSION);
});
});