2021-03-11 02:21:48 +00:00
|
|
|
import { SupportedLayouts } from "reducers/entityReducers/pageListReducer";
|
2021-09-09 15:10:22 +00:00
|
|
|
import { WidgetType as FactoryWidgetType } from "utils/WidgetFactory";
|
|
|
|
|
export type WidgetType = FactoryWidgetType;
|
2021-03-11 02:21:48 +00:00
|
|
|
|
2021-09-09 15:10:22 +00:00
|
|
|
export const SKELETON_WIDGET_TYPE = "SKELETON_WIDGET";
|
2019-08-26 12:41:21 +00:00
|
|
|
|
2019-09-09 09:08:54 +00:00
|
|
|
export type ContainerOrientation = "HORIZONTAL" | "VERTICAL";
|
2019-11-13 07:00:25 +00:00
|
|
|
|
|
|
|
|
export const PositionTypes: { [id: string]: string } = {
|
|
|
|
|
ABSOLUTE: "ABSOLUTE",
|
2020-03-06 09:45:21 +00:00
|
|
|
CONTAINER_DIRECTION: "CONTAINER_DIRECTION",
|
2019-11-13 07:00:25 +00:00
|
|
|
};
|
2019-11-25 09:15:11 +00:00
|
|
|
export type PositionType = typeof PositionTypes[keyof typeof PositionTypes];
|
2019-11-13 07:00:25 +00:00
|
|
|
|
2019-03-13 15:05:24 +00:00
|
|
|
export type CSSUnit =
|
2019-03-16 13:08:45 +00:00
|
|
|
| "px"
|
|
|
|
|
| "cm"
|
|
|
|
|
| "mm"
|
|
|
|
|
| "in"
|
|
|
|
|
| "pt"
|
|
|
|
|
| "pc"
|
|
|
|
|
| "em"
|
|
|
|
|
| "ex"
|
|
|
|
|
| "ch"
|
|
|
|
|
| "rem"
|
|
|
|
|
| "vw"
|
|
|
|
|
| "vh"
|
|
|
|
|
| "vmin"
|
|
|
|
|
| "vmax"
|
2019-09-09 09:08:54 +00:00
|
|
|
| "%";
|
2019-02-11 18:22:23 +00:00
|
|
|
|
2019-03-21 12:10:32 +00:00
|
|
|
export type RenderMode =
|
|
|
|
|
| "COMPONENT_PANE"
|
|
|
|
|
| "CANVAS"
|
|
|
|
|
| "PAGE"
|
2019-09-09 09:08:54 +00:00
|
|
|
| "CANVAS_SELECTED";
|
2019-03-18 15:10:30 +00:00
|
|
|
|
|
|
|
|
export const RenderModes: { [id: string]: RenderMode } = {
|
|
|
|
|
COMPONENT_PANE: "COMPONENT_PANE",
|
|
|
|
|
CANVAS: "CANVAS",
|
|
|
|
|
PAGE: "PAGE",
|
2019-09-09 09:08:54 +00:00
|
|
|
CANVAS_SELECTED: "CANVAS_SELECTED",
|
|
|
|
|
};
|
2019-03-18 15:10:30 +00:00
|
|
|
|
2019-02-11 18:22:23 +00:00
|
|
|
export const CSSUnits: { [id: string]: CSSUnit } = {
|
2019-03-16 13:08:45 +00:00
|
|
|
PIXEL: "px",
|
2019-08-29 11:22:09 +00:00
|
|
|
RELATIVE_FONTSIZE: "rem",
|
2019-09-09 09:08:54 +00:00
|
|
|
RELATIVE_PARENT: "%",
|
|
|
|
|
};
|
2019-09-22 20:25:05 +00:00
|
|
|
|
2021-11-23 08:01:46 +00:00
|
|
|
export interface LayoutConfig {
|
2021-03-11 02:21:48 +00:00
|
|
|
minWidth: number;
|
|
|
|
|
maxWidth: number;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type LayoutConfigurations = Record<SupportedLayouts, LayoutConfig>;
|
2021-11-23 08:01:46 +00:00
|
|
|
export const DefaultLayoutType: SupportedLayouts = "FLUID";
|
2021-03-11 02:21:48 +00:00
|
|
|
export const layoutConfigurations: LayoutConfigurations = {
|
|
|
|
|
TABLET_LARGE: {
|
|
|
|
|
minWidth: 960,
|
|
|
|
|
maxWidth: 1080,
|
|
|
|
|
},
|
|
|
|
|
MOBILE: {
|
|
|
|
|
minWidth: 350,
|
|
|
|
|
maxWidth: 450,
|
|
|
|
|
},
|
|
|
|
|
DESKTOP: { minWidth: 1160, maxWidth: 1280 },
|
|
|
|
|
TABLET: { minWidth: 650, maxWidth: 800 },
|
|
|
|
|
FLUID: { minWidth: -1, maxWidth: -1 },
|
|
|
|
|
};
|
|
|
|
|
|
feat: Controls for labels in widgets to align the widgets in forms and other places (#10600)
* feat: When there are multiple input widgets with different label lengths then the input box looks misaligned
-- Create a new property control for a label position
-- Create a new property control for a label alignment
-- Prototype a label section for Input widget
* feat: When there are multiple input widgets with different label lengths then the input box looks misaligned
-- Add a property, labelWidth in the property pane
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Input widget: Implement all the requirements in case its type is Text
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Adapt the functionalty on other types of the input widget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Add label functionalities into DropdownWidget
-- Clean up for the input widget and DRY
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Add label functionalities into MultiSelectWidget
-- Eliminate unnecessary component prop, columns
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Add label functionalties into Tree Select widget
-- Add styles for alignment between lable and input control over the widgets
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Add label functionalities into MultiSelectTreeWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Introduce label functionalities into DatePickerWidget2
-- Use width instead of columns prop in InputWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Apply label functionalities into RichTextEditorWidget
-- Eliminate compactMode from StyledLabel
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Apply label functionalities into CheckboxGroupWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Apply label functionalities into SwitchGroupWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Reimplement switch group for the correct meaning of right alignment
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Apply label functionalities into RadioGroupWidget
-- Add new properties, alignment and inline for consistency
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Adjust cols and rows for RadioGroupWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Eliminate unused StyledRadioProps
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Complete first MVP of enhanced SwitchGroupWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Complete the first MVP of enhanced RadioGroupWidget
-- Eliminate unused StyledSwitch component for SwitchGroupWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Add min-height, align-self rules for LabelContainer
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Use original label property for RadioGroupWidget
-- Add a migration for adding isInline and alignment properties for RadioGroupWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Update version to latest one in DSLMigrationsUtils.test.ts
* fix failing jest test
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Reimplement label functionalities on BaseInputWidget, InputWidgetV2, CurrencyInputWidget, PhoneInputWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Eliminate unused imports in DSLMigrationsUtils
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Fix on the label related test case which is failed in Input_spec.js
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Fix on #10119: The label text truncates on resizing the input widget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Fix scroll issue when shrink with MultiSelectWidget and MultiSelectTreeWidget
* fix: Widget Popup test
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Reimplement width and alginment features on the level of label element
-- Prevent actual inputs from DropdownWidget, MultiSelectWidget, SingleSelectTreeWidget, MultiSelectTreeWidget from overflow when resizing
-- Enable label feature on a RadioGroupWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Set label container's default width to 33% when width is not set
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Fix crash issue when labelWidth is filled by non-numeric value, eliminating passing NaN as its value
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Set flex-grow to zero on input types other than TEXT
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Implement label features on newly created MultiSelectWidgetV2
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Eliminate LabelPositionTypes, directly using enum LabelPosition
-- Add a comment for a constant LABEL_MAX_WIDTH_RATE
-- Directly import React for LabelAlignmentOptionsControl
-- Remove unnecessary constructor for LabelAlignmentOptionsControl
-- Define handleAlign instance method as a higher-order function
-- Only migrate alignment property for RadioGroupWidget
-- Use Object.hasOwnProperty instead of in operator
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Migrate alignment property of RadioGroupWidget in case of currentDSL.version is 52
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Revert currentDSL.version to 52
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Add a Jest test case for RadioGroupWidget's alignment property migration
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Replace all nested ternary operators with if statements
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Implement label feature on new version of SelectWidget
-- Add Cypress tests for widgets' label section
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Refactor code for BaseInputWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Change CSS selector for step buttons for Numeric BaseInputWidget
-- Directly use migrateRadioGroupAlignmentProperty migration function without using transformDSL
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Fix on typo about migrateRadioGroupAlignmentProperty
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Add data-testid attributes for Cypress selectors
* feat: Deprecate form button widget
-- Assert flex-direction to row in CheckboxGroup_spec.js
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Add a missing data-testid for SelectWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Fix on failed test cases: CheckboxGroup_spec, DatePicker_2_spec, MultiSelectWidgetV2
* fix: Select popup DSL
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Create a new property control, NumericInputControl
-- Replace all the label properties with the newly created controls
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Create a new Cypress command, checkLabelWidth and apply to all related test cases
-- Increase width in checkboxgroupDsl.json
-- Rename className for label in MultiSelectWidgetV2
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Reimplement the tooltip feature for labels
-- Add missing props for labels in DateField, MultiSelectField, RadioGroupField, SelectField fields for JSONFormWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Refactor property controls, including LabelPositionOptionsControl, LabelAlignmentOptionsControl, NumericInputControl to keep consistency
-- Apply default values into label section
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Extract the label related parts from the various widgets as an independent component
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Eliminate TypeScript any type from BaseInputComponent
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Change labelPosition property type to DROP_DOWN
-- Modify LabelAlignmentOptionsControl to use ButtonTabComponent
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Define getLabelWidth method into BaseWidget
-- Extract the common CSS rules for the widget containers
-- Revert rows and columns for SwitchGroupWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Fix on the failed test case in DSLMigrationsUtils.test.ts
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Fix on overflow issue on CheckboxGroupWidget
-- Create a distinctive spec file for label feature
-- Eliminate the redundant label specs with the relevant widgets
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Delete unnecessary files, including Select_spec.js, LabelButton.tsx and LabelPositionOptionsControl.tsx
-- Revise wrong comment for checkLabelForWidget Cypress command
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Do not set the label width only if its value is 0
-- Clean up the component for DatePickerWidget2
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Eliminate unused imports in DatePickerWidget2
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Make RadioGroupWidget's layout flexible in all modes
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Fix on Cypress test case for RadioGroupWidget in Widgets_Labels_spec
-- Change Cypress commands, including addAction, addSuccessMessage, enterActionValue to accept parentSelector
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Change getLabelWidth method to not have any argument
-- Define some constants for label numbers
-- Extract the common styles for SwitchGroupWidget and RadioGroupWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Refactor some constants
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Eliminate unused width prop from RadioGroupWidget
-- Get labelWidth from getLabelWidth
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Eliminate the min-height restriction on a label
-- Eliminate the scroll on the earlier InputWidgetV2 which was not in compact mode
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Add one more condition checking if the current input type is text
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Extract common code base for MultiSelectTreeWidget and MultiSelectWidgetV2
-- Apply a few CSS fixes on the scrollbar issue select related widgets
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Apply some tweaks for earlier widgets with labels so as not to be broken UX
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Fix on the failed Cypress test case in Widget_Popup_spec.js
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Add constants, LABEL_DEFAULT_WIDTH_RATE, SELECT_DEFAULT_HEIGHT, LABEL_MARGIN_OLD_SELECT
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Increase the widths of CheckboxGroupWidget and SwitchGroupWidget
* feat: Controls for labels in widgets to align the widgets in forms and other places
-- Set the font size to 14px for NumericInputControl
Co-authored-by: ohansFavour <fohanekwu@gmail.com>
Co-authored-by: Tolulope Adetula <31691737+Tooluloope@users.noreply.github.com>
2022-04-14 08:47:25 +00:00
|
|
|
export const LATEST_PAGE_VERSION = 57;
|
2021-05-18 18:29:39 +00:00
|
|
|
|
2019-09-22 20:25:05 +00:00
|
|
|
export const GridDefaults = {
|
|
|
|
|
DEFAULT_CELL_SIZE: 1,
|
|
|
|
|
DEFAULT_WIDGET_WIDTH: 200,
|
|
|
|
|
DEFAULT_WIDGET_HEIGHT: 100,
|
2021-05-18 18:29:39 +00:00
|
|
|
DEFAULT_GRID_COLUMNS: 64,
|
|
|
|
|
DEFAULT_GRID_ROW_HEIGHT: 10,
|
2020-03-27 09:02:11 +00:00
|
|
|
CANVAS_EXTENSION_OFFSET: 2,
|
2019-09-22 20:25:05 +00:00
|
|
|
};
|
2020-01-02 11:04:36 +00:00
|
|
|
|
2021-06-17 13:26:54 +00:00
|
|
|
// Note: Widget Padding + Container Padding === DEFAULT_GRID_ROW_HEIGHT to gracefully lose one row when a container is used,
|
2021-09-09 15:10:22 +00:00
|
|
|
// which wud allow the user to place elements centered inside a container(columns are rendered proportionally so it take cares of itself).
|
2021-06-17 13:26:54 +00:00
|
|
|
|
2020-01-16 11:46:21 +00:00
|
|
|
export const CONTAINER_GRID_PADDING =
|
2021-06-17 13:26:54 +00:00
|
|
|
GridDefaults.DEFAULT_GRID_ROW_HEIGHT * 0.6;
|
2020-01-16 11:46:21 +00:00
|
|
|
|
2021-05-18 18:29:39 +00:00
|
|
|
export const WIDGET_PADDING = GridDefaults.DEFAULT_GRID_ROW_HEIGHT * 0.4;
|
2020-01-16 11:46:21 +00:00
|
|
|
|
2020-01-02 11:04:36 +00:00
|
|
|
export const WIDGET_CLASSNAME_PREFIX = "WIDGET_";
|
2020-01-16 11:46:21 +00:00
|
|
|
export const MAIN_CONTAINER_WIDGET_ID = "0";
|
|
|
|
|
export const MAIN_CONTAINER_WIDGET_NAME = "MainContainer";
|
2021-08-03 06:38:01 +00:00
|
|
|
export const MODAL_PORTAL_CLASSNAME = "bp3-modal-widget";
|
|
|
|
|
export const CANVAS_CLASSNAME = "appsmith_widget_0";
|
2020-09-16 10:28:01 +00:00
|
|
|
|
2021-01-19 07:29:15 +00:00
|
|
|
export const DEFAULT_CENTER = { lat: -34.397, lng: 150.644 };
|
2021-04-01 08:30:33 +00:00
|
|
|
|
|
|
|
|
export enum FontStyleTypes {
|
|
|
|
|
BOLD = "BOLD",
|
|
|
|
|
ITALIC = "ITALIC",
|
|
|
|
|
REGULAR = "REGULAR",
|
|
|
|
|
UNDERLINE = "UNDERLINE",
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export enum TextSizes {
|
|
|
|
|
HEADING1 = "HEADING1",
|
|
|
|
|
HEADING2 = "HEADING2",
|
|
|
|
|
HEADING3 = "HEADING3",
|
|
|
|
|
PARAGRAPH = "PARAGRAPH",
|
|
|
|
|
PARAGRAPH2 = "PARAGRAPH2",
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const TEXT_SIZES = {
|
|
|
|
|
HEADING1: "24px",
|
|
|
|
|
HEADING2: "18px",
|
|
|
|
|
HEADING3: "16px",
|
|
|
|
|
PARAGRAPH: "14px",
|
|
|
|
|
PARAGRAPH2: "12px",
|
|
|
|
|
};
|
|
|
|
|
|
2021-09-09 15:10:22 +00:00
|
|
|
export const WIDGET_STATIC_PROPS = {
|
|
|
|
|
leftColumn: true,
|
|
|
|
|
rightColumn: true,
|
|
|
|
|
topRow: true,
|
|
|
|
|
bottomRow: true,
|
|
|
|
|
minHeight: true,
|
|
|
|
|
parentColumnSpace: true,
|
|
|
|
|
parentRowSpace: true,
|
|
|
|
|
children: true,
|
|
|
|
|
type: true,
|
|
|
|
|
widgetId: true,
|
|
|
|
|
widgetName: true,
|
|
|
|
|
parentId: true,
|
|
|
|
|
renderMode: true,
|
|
|
|
|
detachFromLayout: true,
|
|
|
|
|
noContainerOffset: false,
|
2021-07-02 09:55:50 +00:00
|
|
|
};
|
|
|
|
|
|
2021-09-09 15:10:22 +00:00
|
|
|
export type TextSize = keyof typeof TextSizes;
|