ToolJet/frontend/src/AppBuilder/CodeEditor/SingleLineCodeEditor.jsx

678 lines
23 KiB
React
Raw Normal View History

/* eslint-disable import/no-unresolved */
2025-05-16 06:40:38 +00:00
import React, { useEffect, useMemo, useRef, useState, useContext } from 'react';
import { PreviewBox } from './PreviewBox';
import { ToolTip } from '@/Editor/Inspector/Elements/Components/ToolTip';
import { useTranslation } from 'react-i18next';
2025-03-25 23:11:00 +00:00
import { camelCase, isEmpty, noop, get } from 'lodash';
import CodeMirror from '@uiw/react-codemirror';
import { javascript } from '@codemirror/lang-javascript';
import {
autocompletion,
completionKeymap,
completionStatus,
acceptCompletion,
startCompletion,
} from '@codemirror/autocomplete';
import { defaultKeymap } from '@codemirror/commands';
import { keymap } from '@codemirror/view';
import FxButton from '../CodeBuilder/Elements/FxButton';
import cx from 'classnames';
import { DynamicFxTypeRenderer } from './DynamicFxTypeRenderer';
2025-03-25 23:11:00 +00:00
import { isInsideParent, resolveReferences } from './utils';
import { okaidia } from '@uiw/codemirror-theme-okaidia';
import { githubLight } from '@uiw/codemirror-theme-github';
import { getAutocompletion } from './autocompleteExtensionConfig';
import ErrorBoundary from '@/_ui/ErrorBoundary';
import CodeHinter from './CodeHinter';
// import { EditorContext } from '../Context/EditorContextWrapper';
import { removeNestedDoubleCurlyBraces } from '@/_helpers/utils';
import useStore from '@/AppBuilder/_stores/store';
import { shallow } from 'zustand/shallow';
Custom themes (#13064) * feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267) * feat: tab draggble option and popover menu (#11267) * feat: tab scrollable arrows and tabItem logic(#11267) * feat: remove logs(#11267) * feat: Tabslayout name change(#11267) * fix: component update on Tabs * fix: tab text color update * feat: setTabDisable CSA added(#11267) * feat: added CSA for tab specific changes(#11267) * feat: added handle function for tab specific changes(#11267) * feat: shimmer for tab nav and icon chooser (#11267) * feat: icon for each tab in TabNav items (#11267) * feat: equal split width fix for each tab in TabNav items (#11267) * feat: styles for Tab Nav (#11267) * feat: slide options(#11267) * feat: fix radius (#11267) * feat: slider (#11267) * feat: fix slide direction (#11267) * feat: fix slide direction 2 (#11267) * feat: fix styles right side inspector view (#11267) * feat: nav ellipsis ... (#11267) * feat: children different for dynamic and non-dynamic (#11267) * feat:[tabsLayout] change default values in config (#11267) * feat:[tabsLayout] split and auto fix (#11267) * feat: fix styles accent and text (#11267) * feat: fix styles divider and more 2(#11267) * feat: fix styles divider and more 3(#11267) * feat: fix styles 4(#11267) * feat: fix styles 5(#11267) * feat: fix tab icon visibility 6 (#11267) * feat: modify name of property from id to Tab 7(#11267) * fixes and changes * fix: csa for tabs * new changes and fixes * fix: dynamic options sytling * v2 changes * add: new properties and styles to inspector for range slider * fixes of range slider * fix: styling * fix: styling of icons * fixed endvalue and startvalue problem * ColorSwatches for table * fix: styling * transition effect fix * fix: properties and migration * fix: slider functionality * fixed transition * new changes * visible,disable,loading,width * feat: merge appbuilder/sprint-11 with main * fix: styling * style: extend tabpane background to whole pane * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component * review changes * fix: tinycolor import * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Date, Time, DateTime & Date Range Picker components * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Form, Textarea & Horizontal Divider component * Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value * Fix: Resolved custom theming issues in different components * feat: Revamps file uploader widget * Fixes added * Custom theme extra code for extra components * Submodule commit change * Submodule commit change * Textinput theming added * Number input theming added * Email & Password Theming added * Textarea theming added * Error system status added along with rating theming * ToggleV2 theming added * Toggle, RadioButton & Error related theming added * Checkbox Theming added * Dropdown V2 and legacy theming added * Multiselect V2 theming added * Adding ux friendly error messages * Misc1 and Misc 2 theming added * Multiselect legacy theming added * Form components theming added * Subcontainer related issues * Subcontainers theming added * Tabs theming added * Filepicker theming added * Range slider theming added * Steps theming added * Submodule update * Package update * Added Header text, background and container background color * Submodule Update * Submodule update * Submodule update * Submodule update * Hover effect added * feat: Revamps file uploader widget * Adding ux friendly error messages * Adds style tab * Adds min file validation * Reset vs code * Adds support for theme * Base theme added * Base theme added * Base theme added * initial commit * fix * Fixes * Submodule update * Added auto color assign feature for multiselect/select in table * Table column popover going out of bounds fix * Changed layout of component manager * DropdownV2 added to selectInputs * HTML column data type added * Table column icons added * Fix dropping widget width while dragging * Changed datepicker icon and added icons to table dropdown * Style: Update Accordion Component UI * Temp changes * Fix group selection in form * fix when dropping a component, shadow is coming on top of component manager. * improve performace on useGroupedTargetsScrollHandler * Fix * Review fixes * Minor changes * chore: update submodule references * Color swatches added icon/default and added disabled/loading state * Submodule update * Bugs solved * Fixes for Component sidebar * Custom theme related bug fixes * App Background Switch added * Submodule update * Submodule update * HTML fixes * Submodule update * Query breaking on Symbol fix * Import export property migration for Rangepicker & Textarea * Auto color pills not working for table select fix * Custom themes minor bugs * Submodule update * Minor fixes * Revamp pages in editor and viewer * bug fixes * merge base * fix conflicts * fix conflicts * bug fixes * Added swatches to page menu * Submodule update * Submodule update * Submodule update * Styling fixes * Changed few page styles * bug fixes * fix: pages icon and layout for right sidebar * fix: styling for pages menu * fix base styling * merge base * bug fixes * Bug fixes * Submodule update * Submodules updated * bug fixes * fix top styling of nav bar * Sass loader error fix * styles: correct styles to match the dsigns * Accordion design added with some minor styling fixes * fix: update default supported file of filepicker to any * fix: update styles mismatches * fix: hide min and max file count if multi file select is disabled * TJ Default changed to Tooljet Migration * Multiline code editor suggestions now close when out of view * add border to canvas * Dark theme link color fix for html column type * Spinner color fix * bug fixes * bug fixes * Submodules updated * update reference * Submodule update --------- Co-authored-by: Raman Kumar <k.raman1998@yahoo.in> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com> Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com> Co-authored-by: NishidhJain11 <nishidh@tooljet.com> Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com> Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
2025-06-27 12:42:34 +00:00
import { getCssVarValue } from '@/Editor/Components/utils';
import { useModuleContext } from '@/AppBuilder/_contexts/ModuleContext';
2025-01-20 10:53:37 +00:00
import { CodeHinterContext } from '../CodeBuilder/CodeHinterContext';
import { createReferencesLookup } from '@/_stores/utils';
import { useQueryPanelKeyHooks } from './useQueryPanelKeyHooks';
feat: Form 2.0 (#12941) * init: Added resetOnSubmit, validateOnSubmit properties and exposed formData value * Added the generate form from dropdown menu on the inspector * feat: Added generate form button and fields section * Added the generate column popup UI * feat: Added UI for form fields * feat: Added the UI for new custom field * chore: Added refresh data and custom schema UI * feat: Added the util function to map the JSON to component * chore: cleanup and fixed bugs on dropdown * feat: Added fields property to the form config * feat: save generated fields on form * feat: generated child components from the JSON * fix: bugs on generating component from JSON * chore: added functionality for view properties and styles on field popover * feat: Added local state for add new custom fields * feat: Added logic to create component on submitting new custom field * fix: bugfies on creating a custom fields * feat: Handled grouping of data in the manage column modal * feat: Handled deletion case of the fields * fix: fixed bug on deleting the fields * chore: Updated the form fields logic to store only the necessary values and fetch the remaining values from the component directly using componentId * chore: updated logic to handle fx in mandatory and selected fields * feat: Added functionality to update the component from form fields * fix: bug on componentType typo * chore: written logic to handle the componentType update * feat: Added multiple updates including componentType change * chore: Added few more input components * chore: Moved the form fields property logic to new formComponentSlice * fix: creating a custom field while dragging across the parent components * chore: reverted the deletion logic a bit to properly fetch the parentID from the component * fix: while moving the component with more than 1 form field, it is clearing the complete list * fix: handle the case of moving component from canvas to form * chore: Removed unwanted UI blocks and added logic to conditionally display data section when custom schema is turned off * chore: cleaned up the Dropdownmenu component & added memo to avoid re-render * feat: Added query support and updated logic to display the columns on the modal * chore: cleanup & passed the correct columns to the component * chore: cleaned up the form status constant * chore: wrapped functions in a * chore: created a separate function to create components from form * chore: cleaned up the code to use the same code for component creation * chore: updated the logic for the form field component update * feat: Added functionality for single field popover icons & moved the single field creation out of common function to simplify the field update * fix: removed the deleted fields while refreshing the form * fix: updated the logic for the refresh fields * feat: Added logic to ignore the components to be deleted for regeration of form * chore: moved the component list supported to a constant * fix: Added a backfill logic for the fields property to handle without migration * fix: added a correct key for custom field * fix: Fixed issue on adding custom fields while regenrating the form * fix: Fixed issues on generating form fields while refreshing the FORM * chore: cleanedup the code * chore: Fixed path and merged with main * fix: avoided the multiple re-renders on FORM and fixed the state issue on data & formData * fix: removed the child components from inspector & added a support for query even if it is an array to generate the form * fix: fixed few bugs and design feedbacks * fix: Added a logic to set the width of the dropdown menu same as dropdown trigger * feat: updated the deprecated section for Form * feat: Added a logic to run query on selecting the query on generate form from * fix: changed the logic of selection handled in the manage column modal. The components will be created only if the column is selected. * refactor: moved the manage fields from button to an icon * fix: merged the field definition with the existing default data to show it on manage column popup * feat: focused the codehinter when the rawJson is selected on the dropdown menu * chore: cleanup * feat: update formComponentSlice with latest changes - Fixed getCurrentPageIndex usage in setComponentPropertyByComponentIds - Enhanced component batch operations functionality - Improved form field management logic * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * fix: fixed the issues due to merge conflict * feat: Removed componentMapping modal for rawJson. Added JsonSchema in the dropdown menu and moved the refresh button inside the modal footer for the queries * fix: Added a loader in the column mapping & updated the styles * chore: cleanup and moves to separate files * chore: cleanup the components * fix: modal was not poping up when I click a different query * chore: cleanedup `ColumnMappingComponent` * fix: fixed bugs on regenerating the forms, shown the loader while running the query, added support for multiple queries etc * chore: removed unwanted props * fix: fixed the undo/redo issues * fix: Fixed the issue on custom fields not showing up on the columnMappingModal * fix: bugfixes like duplicate field, maping popup stays on screen, visibility not working, form loader etc * fix: Fixed the height of the textare and fixed showing the main popover on click of make mandatory button * fix: Fixed the undo redo issue on deleting the form component * fix: removed the undo/redo while saving the form data section * chore: updated the default data for rawJSON * fix: Fixed bugs on toggleswitch, scroll, placeholder etc * fix: Added a condition to render the placeholder input * chore: taken care bito feedback * fix: fixed the modal closing issue * fix: Fixed the gutter issue as the canvas height needs to be updated once the child components are generated * chore: fixed design feedback * fix: Added hover to the modal body instead of each section
2025-06-27 14:38:15 +00:00
import Icon from '@/_ui/Icon/solidIcons/index';
const SingleLineCodeEditor = ({ componentName, fieldMeta = {}, componentId, ...restProps }) => {
const { moduleId } = useModuleContext();
Feat/AI modularisation (#13142) * fix deps * Modularisation changes for Build with AI feature * New app loading UI for Build with AI feature & added animation for chat messages * Fix Error using AI feature * add missing services and logic * fix app gen * update submodules * EE frontend submodule updated * update submodules * EE frontend submodule updated post sync * Added Artifact Preview component to ee moddules list * Updated ai slice code * app gen changes * Resolved fix with AI bugs * Resolved AI Copilot bugs * app gen changes and query fixes * fix query generation bugs * update copilot * Resolved ChatMode dropdown & popover bug fix * Resolved PR suggestions & PreviewBox component in CE edition * Synced frontend/ee with main * Synced server/ee with main branch * Enhance submodule checkout process to handle branch existence and fallback to main (#13218) * Enhance submodule checkout process to handle branch existence and fallback to main * Improve submodule checkout process to handle branch validation and fallback to main * chore: Comment out Node.js setup, dependency installation, and build steps in cloud frontend workflow * refactor: Enhance submodule checkout process to include submodule name in logs * Update submodule checkout process to use the correct submodule name extraction method * fix: Update submodule checkout script to use correct submodule path variable * Improve submodule checkout process to correctly handle branch names and fallback to main * chore: Uncomment Node.js setup, dependency installation, and build steps in cloud frontend workflow * fix: Update branch checkout logic to use correct syntax and improve fallback handling * fix: Update git checkout command to use -B flag for branch creation * fix: Improve submodule checkout process to explicitly fetch branch ref before checkout * fix: Enhance submodule checkout process with improved branch validation and error handling * fix: Improve branch checkout logic by enhancing fetch command and validating branch existence * fix: Enhance manual Git checkout process with improved fetch and error handling * fix: Restore Node.js setup, dependency installation, and Netlify deployment steps in workflow * 🔄 chore: update submodules to latest main after auto-merge * Took sync of fix/appbuilder-02 in frontend/ee --------- Co-authored-by: Kartik Gupta <gupta.kartik18kg@gmail.com> Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com> Co-authored-by: adishM98 Bot <adish.madhu@gmail.com>
2025-07-07 09:41:58 +00:00
const { initialValue, onChange, enablePreview = true, portalProps, paramName } = restProps;
const { validation = {} } = fieldMeta;
2025-02-25 06:52:50 +00:00
const [showPreview, setShowPreview] = useState(false);
const [isFocused, setIsFocused] = useState(false);
const [currentValue, setCurrentValue] = useState('');
const [errorStateActive, setErrorStateActive] = useState(false);
const [cursorInsidePreview, setCursorInsidePreview] = useState(false);
2025-03-02 21:09:32 +00:00
const [showSuggestions, setShowSuggestions] = useState(true);
2025-02-25 06:52:50 +00:00
const validationFn = restProps?.validationFn;
const componentDefinition = useStore((state) => state.getComponentDefinition(componentId, moduleId), shallow);
const parentId = componentDefinition?.component?.parent;
const customResolvables = useStore((state) => state.resolvedStore.modules.canvas?.customResolvables, shallow);
const customVariables = customResolvables?.[parentId]?.[0] || {};
2025-03-02 21:09:32 +00:00
useEffect(() => {
const observer = new IntersectionObserver(
([entry]) => {
if (entry.intersectionRatio < 1) {
setShowPreview(false);
setShowSuggestions(false);
} else {
setShowSuggestions(true);
}
},
{ root: null, threshold: [1] } // Fires when any part of the element is out of view
);
if (wrapperRef.current) {
observer.observe(wrapperRef.current);
}
return () => {
if (wrapperRef.current) {
observer.unobserve(wrapperRef.current);
}
};
}, []);
const isPreviewFocused = useRef(false);
const wrapperRef = useRef(null);
const replaceIdsWithName = useStore((state) => state.replaceIdsWithName, shallow);
let newInitialValue = initialValue;
if (typeof initialValue === 'string' && (initialValue?.includes('components') || initialValue?.includes('queries'))) {
newInitialValue = replaceIdsWithName(initialValue);
}
2025-01-20 10:53:37 +00:00
//! Re render the component when the componentName changes as the initialValue is not updated
// const { variablesExposedForPreview } = useContext(EditorContext) || {};
// const customVariables = variablesExposedForPreview?.[componentId] ?? {};
useEffect(() => {
if (typeof newInitialValue !== 'string') return;
// const [valid, _error] = !isEmpty(validation)
// ? resolveReferences(newInitialValue, validation, customVariables)
// : [true, null];
//!TODO use the updated new resolver
2025-02-25 06:52:50 +00:00
const [valid, _error] =
!isEmpty(validation) || validationFn
? resolveReferences(newInitialValue, validation, customVariables, validationFn)
: [true, null];
setErrorStateActive(!valid);
setCurrentValue(newInitialValue);
// eslint-disable-next-line react-hooks/exhaustive-deps
2025-02-25 06:52:50 +00:00
}, [componentName, newInitialValue, validationFn]);
useEffect(() => {
const handleClickOutside = (event) => {
if (cursorInsidePreview || portalProps?.isOpen || event.target.closest('.cm-tooltip-autocomplete')) {
return;
}
if (wrapperRef.current && isFocused && !wrapperRef.current.contains(event.target)) {
isPreviewFocused.current = false;
setIsFocused(false);
}
};
document.addEventListener('mousedown', handleClickOutside);
return () => {
document.removeEventListener('mousedown', handleClickOutside);
};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [wrapperRef, isFocused, isPreviewFocused, currentValue, portalProps?.isOpen, cursorInsidePreview]);
const isWorkspaceVariable =
typeof currentValue === 'string' && (currentValue.includes('%%client') || currentValue.includes('%%server'));
2025-02-25 06:52:50 +00:00
const previewRef = useRef(null);
return (
<div
ref={wrapperRef}
className="code-hinter-wrapper position-relative"
style={{ width: '100%', height: restProps?.lang === 'jsx' && '320px' }}
>
<PreviewBox.Container
2025-02-25 06:52:50 +00:00
previewRef={previewRef}
showPreview={showPreview}
customVariables={customVariables}
enablePreview={enablePreview}
currentValue={currentValue}
isFocused={isFocused}
Feat/AI modularisation (#13142) * fix deps * Modularisation changes for Build with AI feature * New app loading UI for Build with AI feature & added animation for chat messages * Fix Error using AI feature * add missing services and logic * fix app gen * update submodules * EE frontend submodule updated * update submodules * EE frontend submodule updated post sync * Added Artifact Preview component to ee moddules list * Updated ai slice code * app gen changes * Resolved fix with AI bugs * Resolved AI Copilot bugs * app gen changes and query fixes * fix query generation bugs * update copilot * Resolved ChatMode dropdown & popover bug fix * Resolved PR suggestions & PreviewBox component in CE edition * Synced frontend/ee with main * Synced server/ee with main branch * Enhance submodule checkout process to handle branch existence and fallback to main (#13218) * Enhance submodule checkout process to handle branch existence and fallback to main * Improve submodule checkout process to handle branch validation and fallback to main * chore: Comment out Node.js setup, dependency installation, and build steps in cloud frontend workflow * refactor: Enhance submodule checkout process to include submodule name in logs * Update submodule checkout process to use the correct submodule name extraction method * fix: Update submodule checkout script to use correct submodule path variable * Improve submodule checkout process to correctly handle branch names and fallback to main * chore: Uncomment Node.js setup, dependency installation, and build steps in cloud frontend workflow * fix: Update branch checkout logic to use correct syntax and improve fallback handling * fix: Update git checkout command to use -B flag for branch creation * fix: Improve submodule checkout process to explicitly fetch branch ref before checkout * fix: Enhance submodule checkout process with improved branch validation and error handling * fix: Improve branch checkout logic by enhancing fetch command and validating branch existence * fix: Enhance manual Git checkout process with improved fetch and error handling * fix: Restore Node.js setup, dependency installation, and Netlify deployment steps in workflow * 🔄 chore: update submodules to latest main after auto-merge * Took sync of fix/appbuilder-02 in frontend/ee --------- Co-authored-by: Kartik Gupta <gupta.kartik18kg@gmail.com> Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com> Co-authored-by: adishM98 Bot <adish.madhu@gmail.com>
2025-07-07 09:41:58 +00:00
setIsFocused={setIsFocused}
setCursorInsidePreview={setCursorInsidePreview}
componentName={componentName}
validationSchema={validation}
setErrorStateActive={setErrorStateActive}
ignoreValidation={restProps?.ignoreValidation || isEmpty(validation)}
Feat/AI modularisation (#13142) * fix deps * Modularisation changes for Build with AI feature * New app loading UI for Build with AI feature & added animation for chat messages * Fix Error using AI feature * add missing services and logic * fix app gen * update submodules * EE frontend submodule updated * update submodules * EE frontend submodule updated post sync * Added Artifact Preview component to ee moddules list * Updated ai slice code * app gen changes * Resolved fix with AI bugs * Resolved AI Copilot bugs * app gen changes and query fixes * fix query generation bugs * update copilot * Resolved ChatMode dropdown & popover bug fix * Resolved PR suggestions & PreviewBox component in CE edition * Synced frontend/ee with main * Synced server/ee with main branch * Enhance submodule checkout process to handle branch existence and fallback to main (#13218) * Enhance submodule checkout process to handle branch existence and fallback to main * Improve submodule checkout process to handle branch validation and fallback to main * chore: Comment out Node.js setup, dependency installation, and build steps in cloud frontend workflow * refactor: Enhance submodule checkout process to include submodule name in logs * Update submodule checkout process to use the correct submodule name extraction method * fix: Update submodule checkout script to use correct submodule path variable * Improve submodule checkout process to correctly handle branch names and fallback to main * chore: Uncomment Node.js setup, dependency installation, and build steps in cloud frontend workflow * fix: Update branch checkout logic to use correct syntax and improve fallback handling * fix: Update git checkout command to use -B flag for branch creation * fix: Improve submodule checkout process to explicitly fetch branch ref before checkout * fix: Enhance submodule checkout process with improved branch validation and error handling * fix: Improve branch checkout logic by enhancing fetch command and validating branch existence * fix: Enhance manual Git checkout process with improved fetch and error handling * fix: Restore Node.js setup, dependency installation, and Netlify deployment steps in workflow * 🔄 chore: update submodules to latest main after auto-merge * Took sync of fix/appbuilder-02 in frontend/ee --------- Co-authored-by: Kartik Gupta <gupta.kartik18kg@gmail.com> Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com> Co-authored-by: adishM98 Bot <adish.madhu@gmail.com>
2025-07-07 09:41:58 +00:00
componentId={componentId ?? null}
fieldMeta={fieldMeta}
paramName={paramName}
isWorkspaceVariable={isWorkspaceVariable}
errorStateActive={errorStateActive}
previewPlacement={restProps?.cyLabel === 'canvas-bg-colour' ? 'top' : 'left-start'}
isPortalOpen={restProps?.portalProps?.isOpen}
2025-02-25 06:52:50 +00:00
validationFn={validationFn}
Feat/AI modularisation (#13142) * fix deps * Modularisation changes for Build with AI feature * New app loading UI for Build with AI feature & added animation for chat messages * Fix Error using AI feature * add missing services and logic * fix app gen * update submodules * EE frontend submodule updated * update submodules * EE frontend submodule updated post sync * Added Artifact Preview component to ee moddules list * Updated ai slice code * app gen changes * Resolved fix with AI bugs * Resolved AI Copilot bugs * app gen changes and query fixes * fix query generation bugs * update copilot * Resolved ChatMode dropdown & popover bug fix * Resolved PR suggestions & PreviewBox component in CE edition * Synced frontend/ee with main * Synced server/ee with main branch * Enhance submodule checkout process to handle branch existence and fallback to main (#13218) * Enhance submodule checkout process to handle branch existence and fallback to main * Improve submodule checkout process to handle branch validation and fallback to main * chore: Comment out Node.js setup, dependency installation, and build steps in cloud frontend workflow * refactor: Enhance submodule checkout process to include submodule name in logs * Update submodule checkout process to use the correct submodule name extraction method * fix: Update submodule checkout script to use correct submodule path variable * Improve submodule checkout process to correctly handle branch names and fallback to main * chore: Uncomment Node.js setup, dependency installation, and build steps in cloud frontend workflow * fix: Update branch checkout logic to use correct syntax and improve fallback handling * fix: Update git checkout command to use -B flag for branch creation * fix: Improve submodule checkout process to explicitly fetch branch ref before checkout * fix: Enhance submodule checkout process with improved branch validation and error handling * fix: Improve branch checkout logic by enhancing fetch command and validating branch existence * fix: Enhance manual Git checkout process with improved fetch and error handling * fix: Restore Node.js setup, dependency installation, and Netlify deployment steps in workflow * 🔄 chore: update submodules to latest main after auto-merge * Took sync of fix/appbuilder-02 in frontend/ee --------- Co-authored-by: Kartik Gupta <gupta.kartik18kg@gmail.com> Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com> Co-authored-by: adishM98 Bot <adish.madhu@gmail.com>
2025-07-07 09:41:58 +00:00
onAiSuggestionAccept={(newValue) => {
setCurrentValue(newValue);
onChange(newValue);
}}
>
<div className="code-editor-basic-wrapper d-flex">
<div className="codehinter-container w-100">
<SingleLineCodeEditor.Editor
2025-02-25 06:52:50 +00:00
previewRef={previewRef}
currentValue={currentValue}
setCurrentValue={setCurrentValue}
isFocused={isFocused}
setFocus={setIsFocused}
validationType={validation?.schema?.type}
onBlurUpdate={onChange}
error={errorStateActive}
cyLabel={restProps.cyLabel}
portalProps={portalProps}
componentName={componentName}
2025-02-25 06:52:50 +00:00
setShowPreview={setShowPreview}
showPreview={showPreview}
2025-03-25 23:11:00 +00:00
wrapperRef={wrapperRef}
2025-03-02 21:09:32 +00:00
showSuggestions={showSuggestions}
Feat/AI modularisation (#13142) * fix deps * Modularisation changes for Build with AI feature * New app loading UI for Build with AI feature & added animation for chat messages * Fix Error using AI feature * add missing services and logic * fix app gen * update submodules * EE frontend submodule updated * update submodules * EE frontend submodule updated post sync * Added Artifact Preview component to ee moddules list * Updated ai slice code * app gen changes * Resolved fix with AI bugs * Resolved AI Copilot bugs * app gen changes and query fixes * fix query generation bugs * update copilot * Resolved ChatMode dropdown & popover bug fix * Resolved PR suggestions & PreviewBox component in CE edition * Synced frontend/ee with main * Synced server/ee with main branch * Enhance submodule checkout process to handle branch existence and fallback to main (#13218) * Enhance submodule checkout process to handle branch existence and fallback to main * Improve submodule checkout process to handle branch validation and fallback to main * chore: Comment out Node.js setup, dependency installation, and build steps in cloud frontend workflow * refactor: Enhance submodule checkout process to include submodule name in logs * Update submodule checkout process to use the correct submodule name extraction method * fix: Update submodule checkout script to use correct submodule path variable * Improve submodule checkout process to correctly handle branch names and fallback to main * chore: Uncomment Node.js setup, dependency installation, and build steps in cloud frontend workflow * fix: Update branch checkout logic to use correct syntax and improve fallback handling * fix: Update git checkout command to use -B flag for branch creation * fix: Improve submodule checkout process to explicitly fetch branch ref before checkout * fix: Enhance submodule checkout process with improved branch validation and error handling * fix: Improve branch checkout logic by enhancing fetch command and validating branch existence * fix: Enhance manual Git checkout process with improved fetch and error handling * fix: Restore Node.js setup, dependency installation, and Netlify deployment steps in workflow * 🔄 chore: update submodules to latest main after auto-merge * Took sync of fix/appbuilder-02 in frontend/ee --------- Co-authored-by: Kartik Gupta <gupta.kartik18kg@gmail.com> Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com> Co-authored-by: adishM98 Bot <adish.madhu@gmail.com>
2025-07-07 09:41:58 +00:00
cursorInsidePreview={cursorInsidePreview}
{...restProps}
/>
</div>
</div>
</PreviewBox.Container>
</div>
);
};
const EditorInput = ({
currentValue,
setCurrentValue,
setFocus,
validationType,
onBlurUpdate,
placeholder = '',
error,
cyLabel = '',
componentName,
usePortalEditor = true,
renderPreview,
portalProps,
lang,
isFocused,
componentId,
type,
delayOnChange = true, // Added this prop to immediately update the onBlurUpdate callback
paramLabel = '',
disabled = false,
2025-02-25 06:52:50 +00:00
previewRef,
setShowPreview,
onInputChange,
2025-03-25 23:11:00 +00:00
wrapperRef,
2025-03-02 21:09:32 +00:00
showSuggestions,
feat: Form 2.0 (#12941) * init: Added resetOnSubmit, validateOnSubmit properties and exposed formData value * Added the generate form from dropdown menu on the inspector * feat: Added generate form button and fields section * Added the generate column popup UI * feat: Added UI for form fields * feat: Added the UI for new custom field * chore: Added refresh data and custom schema UI * feat: Added the util function to map the JSON to component * chore: cleanup and fixed bugs on dropdown * feat: Added fields property to the form config * feat: save generated fields on form * feat: generated child components from the JSON * fix: bugs on generating component from JSON * chore: added functionality for view properties and styles on field popover * feat: Added local state for add new custom fields * feat: Added logic to create component on submitting new custom field * fix: bugfies on creating a custom fields * feat: Handled grouping of data in the manage column modal * feat: Handled deletion case of the fields * fix: fixed bug on deleting the fields * chore: Updated the form fields logic to store only the necessary values and fetch the remaining values from the component directly using componentId * chore: updated logic to handle fx in mandatory and selected fields * feat: Added functionality to update the component from form fields * fix: bug on componentType typo * chore: written logic to handle the componentType update * feat: Added multiple updates including componentType change * chore: Added few more input components * chore: Moved the form fields property logic to new formComponentSlice * fix: creating a custom field while dragging across the parent components * chore: reverted the deletion logic a bit to properly fetch the parentID from the component * fix: while moving the component with more than 1 form field, it is clearing the complete list * fix: handle the case of moving component from canvas to form * chore: Removed unwanted UI blocks and added logic to conditionally display data section when custom schema is turned off * chore: cleaned up the Dropdownmenu component & added memo to avoid re-render * feat: Added query support and updated logic to display the columns on the modal * chore: cleanup & passed the correct columns to the component * chore: cleaned up the form status constant * chore: wrapped functions in a * chore: created a separate function to create components from form * chore: cleaned up the code to use the same code for component creation * chore: updated the logic for the form field component update * feat: Added functionality for single field popover icons & moved the single field creation out of common function to simplify the field update * fix: removed the deleted fields while refreshing the form * fix: updated the logic for the refresh fields * feat: Added logic to ignore the components to be deleted for regeration of form * chore: moved the component list supported to a constant * fix: Added a backfill logic for the fields property to handle without migration * fix: added a correct key for custom field * fix: Fixed issue on adding custom fields while regenrating the form * fix: Fixed issues on generating form fields while refreshing the FORM * chore: cleanedup the code * chore: Fixed path and merged with main * fix: avoided the multiple re-renders on FORM and fixed the state issue on data & formData * fix: removed the child components from inspector & added a support for query even if it is an array to generate the form * fix: fixed few bugs and design feedbacks * fix: Added a logic to set the width of the dropdown menu same as dropdown trigger * feat: updated the deprecated section for Form * feat: Added a logic to run query on selecting the query on generate form from * fix: changed the logic of selection handled in the manage column modal. The components will be created only if the column is selected. * refactor: moved the manage fields from button to an icon * fix: merged the field definition with the existing default data to show it on manage column popup * feat: focused the codehinter when the rawJson is selected on the dropdown menu * chore: cleanup * feat: update formComponentSlice with latest changes - Fixed getCurrentPageIndex usage in setComponentPropertyByComponentIds - Enhanced component batch operations functionality - Improved form field management logic * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * fix: fixed the issues due to merge conflict * feat: Removed componentMapping modal for rawJson. Added JsonSchema in the dropdown menu and moved the refresh button inside the modal footer for the queries * fix: Added a loader in the column mapping & updated the styles * chore: cleanup and moves to separate files * chore: cleanup the components * fix: modal was not poping up when I click a different query * chore: cleanedup `ColumnMappingComponent` * fix: fixed bugs on regenerating the forms, shown the loader while running the query, added support for multiple queries etc * chore: removed unwanted props * fix: fixed the undo/redo issues * fix: Fixed the issue on custom fields not showing up on the columnMappingModal * fix: bugfixes like duplicate field, maping popup stays on screen, visibility not working, form loader etc * fix: Fixed the height of the textare and fixed showing the main popover on click of make mandatory button * fix: Fixed the undo redo issue on deleting the form component * fix: removed the undo/redo while saving the form data section * chore: updated the default data for rawJSON * fix: Fixed bugs on toggleswitch, scroll, placeholder etc * fix: Added a condition to render the placeholder input * chore: taken care bito feedback * fix: fixed the modal closing issue * fix: Fixed the gutter issue as the canvas height needs to be updated once the child components are generated * chore: fixed design feedback * fix: Added hover to the modal body instead of each section
2025-06-27 14:38:15 +00:00
setCodeEditorView = null, // Function to set the CodeMirror view
Feat/AI modularisation (#13142) * fix deps * Modularisation changes for Build with AI feature * New app loading UI for Build with AI feature & added animation for chat messages * Fix Error using AI feature * add missing services and logic * fix app gen * update submodules * EE frontend submodule updated * update submodules * EE frontend submodule updated post sync * Added Artifact Preview component to ee moddules list * Updated ai slice code * app gen changes * Resolved fix with AI bugs * Resolved AI Copilot bugs * app gen changes and query fixes * fix query generation bugs * update copilot * Resolved ChatMode dropdown & popover bug fix * Resolved PR suggestions & PreviewBox component in CE edition * Synced frontend/ee with main * Synced server/ee with main branch * Enhance submodule checkout process to handle branch existence and fallback to main (#13218) * Enhance submodule checkout process to handle branch existence and fallback to main * Improve submodule checkout process to handle branch validation and fallback to main * chore: Comment out Node.js setup, dependency installation, and build steps in cloud frontend workflow * refactor: Enhance submodule checkout process to include submodule name in logs * Update submodule checkout process to use the correct submodule name extraction method * fix: Update submodule checkout script to use correct submodule path variable * Improve submodule checkout process to correctly handle branch names and fallback to main * chore: Uncomment Node.js setup, dependency installation, and build steps in cloud frontend workflow * fix: Update branch checkout logic to use correct syntax and improve fallback handling * fix: Update git checkout command to use -B flag for branch creation * fix: Improve submodule checkout process to explicitly fetch branch ref before checkout * fix: Enhance submodule checkout process with improved branch validation and error handling * fix: Improve branch checkout logic by enhancing fetch command and validating branch existence * fix: Enhance manual Git checkout process with improved fetch and error handling * fix: Restore Node.js setup, dependency installation, and Netlify deployment steps in workflow * 🔄 chore: update submodules to latest main after auto-merge * Took sync of fix/appbuilder-02 in frontend/ee --------- Co-authored-by: Kartik Gupta <gupta.kartik18kg@gmail.com> Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com> Co-authored-by: adishM98 Bot <adish.madhu@gmail.com>
2025-07-07 09:41:58 +00:00
cursorInsidePreview = false,
}) => {
2025-01-20 10:53:37 +00:00
const codeHinterContext = useContext(CodeHinterContext);
const { suggestionList: paramHints } = createReferencesLookup(codeHinterContext, true);
2025-03-25 23:11:00 +00:00
const getSuggestions = useStore((state) => state.getSuggestions, shallow);
const [codeMirrorView, setCodeMirrorView] = useState(undefined);
feat: Form 2.0 (#12941) * init: Added resetOnSubmit, validateOnSubmit properties and exposed formData value * Added the generate form from dropdown menu on the inspector * feat: Added generate form button and fields section * Added the generate column popup UI * feat: Added UI for form fields * feat: Added the UI for new custom field * chore: Added refresh data and custom schema UI * feat: Added the util function to map the JSON to component * chore: cleanup and fixed bugs on dropdown * feat: Added fields property to the form config * feat: save generated fields on form * feat: generated child components from the JSON * fix: bugs on generating component from JSON * chore: added functionality for view properties and styles on field popover * feat: Added local state for add new custom fields * feat: Added logic to create component on submitting new custom field * fix: bugfies on creating a custom fields * feat: Handled grouping of data in the manage column modal * feat: Handled deletion case of the fields * fix: fixed bug on deleting the fields * chore: Updated the form fields logic to store only the necessary values and fetch the remaining values from the component directly using componentId * chore: updated logic to handle fx in mandatory and selected fields * feat: Added functionality to update the component from form fields * fix: bug on componentType typo * chore: written logic to handle the componentType update * feat: Added multiple updates including componentType change * chore: Added few more input components * chore: Moved the form fields property logic to new formComponentSlice * fix: creating a custom field while dragging across the parent components * chore: reverted the deletion logic a bit to properly fetch the parentID from the component * fix: while moving the component with more than 1 form field, it is clearing the complete list * fix: handle the case of moving component from canvas to form * chore: Removed unwanted UI blocks and added logic to conditionally display data section when custom schema is turned off * chore: cleaned up the Dropdownmenu component & added memo to avoid re-render * feat: Added query support and updated logic to display the columns on the modal * chore: cleanup & passed the correct columns to the component * chore: cleaned up the form status constant * chore: wrapped functions in a * chore: created a separate function to create components from form * chore: cleaned up the code to use the same code for component creation * chore: updated the logic for the form field component update * feat: Added functionality for single field popover icons & moved the single field creation out of common function to simplify the field update * fix: removed the deleted fields while refreshing the form * fix: updated the logic for the refresh fields * feat: Added logic to ignore the components to be deleted for regeration of form * chore: moved the component list supported to a constant * fix: Added a backfill logic for the fields property to handle without migration * fix: added a correct key for custom field * fix: Fixed issue on adding custom fields while regenrating the form * fix: Fixed issues on generating form fields while refreshing the FORM * chore: cleanedup the code * chore: Fixed path and merged with main * fix: avoided the multiple re-renders on FORM and fixed the state issue on data & formData * fix: removed the child components from inspector & added a support for query even if it is an array to generate the form * fix: fixed few bugs and design feedbacks * fix: Added a logic to set the width of the dropdown menu same as dropdown trigger * feat: updated the deprecated section for Form * feat: Added a logic to run query on selecting the query on generate form from * fix: changed the logic of selection handled in the manage column modal. The components will be created only if the column is selected. * refactor: moved the manage fields from button to an icon * fix: merged the field definition with the existing default data to show it on manage column popup * feat: focused the codehinter when the rawJson is selected on the dropdown menu * chore: cleanup * feat: update formComponentSlice with latest changes - Fixed getCurrentPageIndex usage in setComponentPropertyByComponentIds - Enhanced component batch operations functionality - Improved form field management logic * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * fix: fixed the issues due to merge conflict * feat: Removed componentMapping modal for rawJson. Added JsonSchema in the dropdown menu and moved the refresh button inside the modal footer for the queries * fix: Added a loader in the column mapping & updated the styles * chore: cleanup and moves to separate files * chore: cleanup the components * fix: modal was not poping up when I click a different query * chore: cleanedup `ColumnMappingComponent` * fix: fixed bugs on regenerating the forms, shown the loader while running the query, added support for multiple queries etc * chore: removed unwanted props * fix: fixed the undo/redo issues * fix: Fixed the issue on custom fields not showing up on the columnMappingModal * fix: bugfixes like duplicate field, maping popup stays on screen, visibility not working, form loader etc * fix: Fixed the height of the textare and fixed showing the main popover on click of make mandatory button * fix: Fixed the undo redo issue on deleting the form component * fix: removed the undo/redo while saving the form data section * chore: updated the default data for rawJSON * fix: Fixed bugs on toggleswitch, scroll, placeholder etc * fix: Added a condition to render the placeholder input * chore: taken care bito feedback * fix: fixed the modal closing issue * fix: Fixed the gutter issue as the canvas height needs to be updated once the child components are generated * chore: fixed design feedback * fix: Added hover to the modal body instead of each section
2025-06-27 14:38:15 +00:00
const getServerSideGlobalResolveSuggestions = useStore(
(state) => state.getServerSideGlobalResolveSuggestions,
shallow
);
const { queryPanelKeybindings } = useQueryPanelKeyHooks(onBlurUpdate, currentValue, 'singleline');
2025-03-25 23:11:00 +00:00
const isInsideQueryManager = useMemo(
() => isInsideParent(wrapperRef?.current, 'query-manager'),
[wrapperRef.current]
);
function autoCompleteExtensionConfig(context) {
2025-01-20 10:53:37 +00:00
const hintsWithoutParamHints = getSuggestions();
const serverHints = getServerSideGlobalResolveSuggestions(isInsideQueryManager);
2025-04-01 20:41:13 +00:00
let word = context.matchBefore(/\w*/);
2025-01-20 10:53:37 +00:00
const hints = {
...hintsWithoutParamHints,
2025-05-16 06:40:38 +00:00
appHints: [...hintsWithoutParamHints.appHints, ...serverHints, ...paramHints],
2025-01-20 10:53:37 +00:00
};
const totalReferences = (context.state.doc.toString().match(/{{/g) || []).length;
let queryInput = context.state.doc.toString();
const originalQueryInput = queryInput;
if (totalReferences > 0) {
const currentCursor = context.state.selection.main.head;
const currentCursorPos = context.pos;
let currentWord = queryInput.substring(currentCursor, currentCursorPos);
if (currentWord?.length === 0) {
const lastBracesFromPos = queryInput.lastIndexOf('{{', currentCursorPos);
currentWord = queryInput.substring(lastBracesFromPos, currentCursorPos);
//remove curly braces from the current word as will append it later
currentWord = removeNestedDoubleCurlyBraces(currentWord);
}
if (currentWord.includes(' ')) {
currentWord = currentWord.split(' ').pop();
}
// remove \n from the current word if it is present
currentWord = currentWord.replace(/\n/g, '');
queryInput = '{{' + currentWord + '}}';
}
2025-05-16 06:40:38 +00:00
let completions = getAutocompletion(queryInput, validationType, hints, totalReferences, originalQueryInput);
return {
from: word.from,
options: completions,
validFor: /^\{\{.*\}\}$/,
filter: false,
};
}
// eslint-disable-next-line react-hooks/exhaustive-deps
Custom themes (#13064) * feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267) * feat: tab draggble option and popover menu (#11267) * feat: tab scrollable arrows and tabItem logic(#11267) * feat: remove logs(#11267) * feat: Tabslayout name change(#11267) * fix: component update on Tabs * fix: tab text color update * feat: setTabDisable CSA added(#11267) * feat: added CSA for tab specific changes(#11267) * feat: added handle function for tab specific changes(#11267) * feat: shimmer for tab nav and icon chooser (#11267) * feat: icon for each tab in TabNav items (#11267) * feat: equal split width fix for each tab in TabNav items (#11267) * feat: styles for Tab Nav (#11267) * feat: slide options(#11267) * feat: fix radius (#11267) * feat: slider (#11267) * feat: fix slide direction (#11267) * feat: fix slide direction 2 (#11267) * feat: fix styles right side inspector view (#11267) * feat: nav ellipsis ... (#11267) * feat: children different for dynamic and non-dynamic (#11267) * feat:[tabsLayout] change default values in config (#11267) * feat:[tabsLayout] split and auto fix (#11267) * feat: fix styles accent and text (#11267) * feat: fix styles divider and more 2(#11267) * feat: fix styles divider and more 3(#11267) * feat: fix styles 4(#11267) * feat: fix styles 5(#11267) * feat: fix tab icon visibility 6 (#11267) * feat: modify name of property from id to Tab 7(#11267) * fixes and changes * fix: csa for tabs * new changes and fixes * fix: dynamic options sytling * v2 changes * add: new properties and styles to inspector for range slider * fixes of range slider * fix: styling * fix: styling of icons * fixed endvalue and startvalue problem * ColorSwatches for table * fix: styling * transition effect fix * fix: properties and migration * fix: slider functionality * fixed transition * new changes * visible,disable,loading,width * feat: merge appbuilder/sprint-11 with main * fix: styling * style: extend tabpane background to whole pane * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component * review changes * fix: tinycolor import * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Date, Time, DateTime & Date Range Picker components * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Form, Textarea & Horizontal Divider component * Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value * Fix: Resolved custom theming issues in different components * feat: Revamps file uploader widget * Fixes added * Custom theme extra code for extra components * Submodule commit change * Submodule commit change * Textinput theming added * Number input theming added * Email & Password Theming added * Textarea theming added * Error system status added along with rating theming * ToggleV2 theming added * Toggle, RadioButton & Error related theming added * Checkbox Theming added * Dropdown V2 and legacy theming added * Multiselect V2 theming added * Adding ux friendly error messages * Misc1 and Misc 2 theming added * Multiselect legacy theming added * Form components theming added * Subcontainer related issues * Subcontainers theming added * Tabs theming added * Filepicker theming added * Range slider theming added * Steps theming added * Submodule update * Package update * Added Header text, background and container background color * Submodule Update * Submodule update * Submodule update * Submodule update * Hover effect added * feat: Revamps file uploader widget * Adding ux friendly error messages * Adds style tab * Adds min file validation * Reset vs code * Adds support for theme * Base theme added * Base theme added * Base theme added * initial commit * fix * Fixes * Submodule update * Added auto color assign feature for multiselect/select in table * Table column popover going out of bounds fix * Changed layout of component manager * DropdownV2 added to selectInputs * HTML column data type added * Table column icons added * Fix dropping widget width while dragging * Changed datepicker icon and added icons to table dropdown * Style: Update Accordion Component UI * Temp changes * Fix group selection in form * fix when dropping a component, shadow is coming on top of component manager. * improve performace on useGroupedTargetsScrollHandler * Fix * Review fixes * Minor changes * chore: update submodule references * Color swatches added icon/default and added disabled/loading state * Submodule update * Bugs solved * Fixes for Component sidebar * Custom theme related bug fixes * App Background Switch added * Submodule update * Submodule update * HTML fixes * Submodule update * Query breaking on Symbol fix * Import export property migration for Rangepicker & Textarea * Auto color pills not working for table select fix * Custom themes minor bugs * Submodule update * Minor fixes * Revamp pages in editor and viewer * bug fixes * merge base * fix conflicts * fix conflicts * bug fixes * Added swatches to page menu * Submodule update * Submodule update * Submodule update * Styling fixes * Changed few page styles * bug fixes * fix: pages icon and layout for right sidebar * fix: styling for pages menu * fix base styling * merge base * bug fixes * Bug fixes * Submodule update * Submodules updated * bug fixes * fix top styling of nav bar * Sass loader error fix * styles: correct styles to match the dsigns * Accordion design added with some minor styling fixes * fix: update default supported file of filepicker to any * fix: update styles mismatches * fix: hide min and max file count if multi file select is disabled * TJ Default changed to Tooljet Migration * Multiline code editor suggestions now close when out of view * add border to canvas * Dark theme link color fix for html column type * Spinner color fix * bug fixes * bug fixes * Submodules updated * update reference * Submodule update --------- Co-authored-by: Raman Kumar <k.raman1998@yahoo.in> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com> Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com> Co-authored-by: NishidhJain11 <nishidh@tooljet.com> Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com> Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
2025-06-27 12:42:34 +00:00
const overRideFunction = React.useCallback(
(context) => autoCompleteExtensionConfig(context),
[isInsideQueryManager, paramHints]
);
const autoCompleteConfig = autocompletion({
override: [overRideFunction],
compareCompletions: (a, b) => {
return a.section.rank - b.section.rank && a.label.localeCompare(b.label);
},
aboveCursor: false,
defaultKeymap: true,
positionInfo: () => {
return {
2025-03-02 21:09:32 +00:00
class: 'cm-completionInfo-top cm-custom-completion-info cm-custom-singleline-completion-info',
};
},
maxRenderedOptions: 10,
});
const customKeyMaps = [
...defaultKeymap.filter((keyBinding) => keyBinding.key !== 'Mod-Enter'), // Remove default keybinding for Mod-Enter
...completionKeymap,
];
const customTabKeymap = keymap.of([
{
key: 'Tab',
run: (view) => {
if (completionStatus(view.state)) {
return acceptCompletion(view);
}
if (isOpen) {
const { state } = view;
const { selection } = state;
const { anchor } = selection.main;
const tabSize = 2;
view?.dispatch({
changes: { from: anchor, insert: ' '.repeat(tabSize) },
selection: { anchor: anchor + tabSize },
});
return true;
}
},
},
...queryPanelKeybindings,
]);
const handleOnChange = React.useCallback((val) => {
setCurrentValue(val);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
const handleOnBlur = () => {
Feat/AI modularisation (#13142) * fix deps * Modularisation changes for Build with AI feature * New app loading UI for Build with AI feature & added animation for chat messages * Fix Error using AI feature * add missing services and logic * fix app gen * update submodules * EE frontend submodule updated * update submodules * EE frontend submodule updated post sync * Added Artifact Preview component to ee moddules list * Updated ai slice code * app gen changes * Resolved fix with AI bugs * Resolved AI Copilot bugs * app gen changes and query fixes * fix query generation bugs * update copilot * Resolved ChatMode dropdown & popover bug fix * Resolved PR suggestions & PreviewBox component in CE edition * Synced frontend/ee with main * Synced server/ee with main branch * Enhance submodule checkout process to handle branch existence and fallback to main (#13218) * Enhance submodule checkout process to handle branch existence and fallback to main * Improve submodule checkout process to handle branch validation and fallback to main * chore: Comment out Node.js setup, dependency installation, and build steps in cloud frontend workflow * refactor: Enhance submodule checkout process to include submodule name in logs * Update submodule checkout process to use the correct submodule name extraction method * fix: Update submodule checkout script to use correct submodule path variable * Improve submodule checkout process to correctly handle branch names and fallback to main * chore: Uncomment Node.js setup, dependency installation, and build steps in cloud frontend workflow * fix: Update branch checkout logic to use correct syntax and improve fallback handling * fix: Update git checkout command to use -B flag for branch creation * fix: Improve submodule checkout process to explicitly fetch branch ref before checkout * fix: Enhance submodule checkout process with improved branch validation and error handling * fix: Improve branch checkout logic by enhancing fetch command and validating branch existence * fix: Enhance manual Git checkout process with improved fetch and error handling * fix: Restore Node.js setup, dependency installation, and Netlify deployment steps in workflow * 🔄 chore: update submodules to latest main after auto-merge * Took sync of fix/appbuilder-02 in frontend/ee --------- Co-authored-by: Kartik Gupta <gupta.kartik18kg@gmail.com> Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com> Co-authored-by: adishM98 Bot <adish.madhu@gmail.com>
2025-07-07 09:41:58 +00:00
!cursorInsidePreview && setShowPreview(false);
if (!delayOnChange) {
setFirstTimeFocus(false);
return onBlurUpdate(currentValue);
}
setTimeout(() => {
setFirstTimeFocus(false);
onBlurUpdate(currentValue);
}, 0);
};
const darkMode = localStorage.getItem('darkMode') === 'true';
const theme = darkMode ? okaidia : githubLight;
const { handleTogglePopupExapand, isOpen, setIsOpen, forceUpdate } = portalProps;
2025-02-25 06:52:50 +00:00
// when full screen editor is closed, show the preview box
useEffect(() => {
if (isFocused && !isOpen) {
setShowPreview(true);
}
}, [isOpen, isFocused]);
const [firstTimeFocus, setFirstTimeFocus] = useState(false);
2025-02-25 06:52:50 +00:00
const currentEditorHeightRef = useRef(null);
const isInsideQueryPane = !!currentEditorHeightRef?.current?.closest('.query-details');
const showLineNumbers = lang == 'jsx' || type === 'extendedSingleLine' || false;
2025-03-18 09:12:48 +00:00
const customClassNames = cx('codehinter-input single-line-codehinter-input', {
'border-danger': error,
focused: isFocused,
'focus-box-shadow-active': firstTimeFocus,
'widget-code-editor': componentId,
'disabled-pointerevents': disabled,
2025-02-25 06:52:50 +00:00
'code-editor-query-panel': isInsideQueryPane,
'show-line-numbers': showLineNumbers,
});
const handleFocus = () => {
setFirstTimeFocus(true);
setTimeout(() => {
setFocus(true);
}, 50);
};
2025-02-25 06:52:50 +00:00
// in query panel we are allowing code editor to have dynamic height, this observer is to show/hide preview box based on the visibility of the editor
useEffect(() => {
if (!isInsideQueryPane) return;
const observer = new IntersectionObserver(
([entry]) => {
if (entry.isIntersecting && isFocused) {
setShowPreview(true);
} else {
setShowPreview(false);
}
},
{
root: document.querySelector('.query-details'),
threshold: 0.01,
}
);
if (currentEditorHeightRef.current) {
observer.observe(currentEditorHeightRef.current);
}
return () => {
if (currentEditorHeightRef.current) {
observer.unobserve(currentEditorHeightRef.current);
}
};
}, [isInsideQueryPane, isFocused]);
cyLabel = paramLabel ? paramLabel.toLowerCase().trim().replace(/\s+/g, '-') : cyLabel;
return (
<div
ref={currentEditorHeightRef}
className={`cm-codehinter ${darkMode && 'cm-codehinter-dark-themed'} ${disabled ? 'disabled-cursor' : ''}`}
2025-03-19 08:26:33 +00:00
data-cy={`${cyLabel.replace(/_/g, '-')}-input-field`}
>
2025-02-25 06:52:50 +00:00
{/* sticky element to position the preview box correctly on top without flowing out of container */}
{usePortalEditor && (
<CodeHinter.PopupIcon
callback={handleTogglePopupExapand}
icon="portal-open"
tip="Pop out code editor into a new window"
position={currentEditorHeightRef?.current?.getBoundingClientRect()}
2025-02-25 06:52:50 +00:00
isQueryManager={isInsideQueryPane}
/>
)}
<CodeHinter.Portal
isCopilotEnabled={false}
isOpen={isOpen}
callback={setIsOpen}
componentName={componentName}
key={componentName}
customComponent={renderPreview}
forceUpdate={forceUpdate}
optionalProps={{ styles: { height: 300 }, cls: '' }}
darkMode={darkMode}
selectors={{ className: 'preview-block-portal' }}
dragResizePortal={true}
callgpt={null}
>
<ErrorBoundary>
2025-03-02 21:09:32 +00:00
<div
style={{
position: 'relative',
top: 0,
left: 0,
width: '100%',
height: '100%',
}}
2025-03-02 21:09:32 +00:00
className="check-here"
ref={previewRef}
>
<CodeMirror
onCreateEditor={(view) => {
setCodeMirrorView(view);
feat: Form 2.0 (#12941) * init: Added resetOnSubmit, validateOnSubmit properties and exposed formData value * Added the generate form from dropdown menu on the inspector * feat: Added generate form button and fields section * Added the generate column popup UI * feat: Added UI for form fields * feat: Added the UI for new custom field * chore: Added refresh data and custom schema UI * feat: Added the util function to map the JSON to component * chore: cleanup and fixed bugs on dropdown * feat: Added fields property to the form config * feat: save generated fields on form * feat: generated child components from the JSON * fix: bugs on generating component from JSON * chore: added functionality for view properties and styles on field popover * feat: Added local state for add new custom fields * feat: Added logic to create component on submitting new custom field * fix: bugfies on creating a custom fields * feat: Handled grouping of data in the manage column modal * feat: Handled deletion case of the fields * fix: fixed bug on deleting the fields * chore: Updated the form fields logic to store only the necessary values and fetch the remaining values from the component directly using componentId * chore: updated logic to handle fx in mandatory and selected fields * feat: Added functionality to update the component from form fields * fix: bug on componentType typo * chore: written logic to handle the componentType update * feat: Added multiple updates including componentType change * chore: Added few more input components * chore: Moved the form fields property logic to new formComponentSlice * fix: creating a custom field while dragging across the parent components * chore: reverted the deletion logic a bit to properly fetch the parentID from the component * fix: while moving the component with more than 1 form field, it is clearing the complete list * fix: handle the case of moving component from canvas to form * chore: Removed unwanted UI blocks and added logic to conditionally display data section when custom schema is turned off * chore: cleaned up the Dropdownmenu component & added memo to avoid re-render * feat: Added query support and updated logic to display the columns on the modal * chore: cleanup & passed the correct columns to the component * chore: cleaned up the form status constant * chore: wrapped functions in a * chore: created a separate function to create components from form * chore: cleaned up the code to use the same code for component creation * chore: updated the logic for the form field component update * feat: Added functionality for single field popover icons & moved the single field creation out of common function to simplify the field update * fix: removed the deleted fields while refreshing the form * fix: updated the logic for the refresh fields * feat: Added logic to ignore the components to be deleted for regeration of form * chore: moved the component list supported to a constant * fix: Added a backfill logic for the fields property to handle without migration * fix: added a correct key for custom field * fix: Fixed issue on adding custom fields while regenrating the form * fix: Fixed issues on generating form fields while refreshing the FORM * chore: cleanedup the code * chore: Fixed path and merged with main * fix: avoided the multiple re-renders on FORM and fixed the state issue on data & formData * fix: removed the child components from inspector & added a support for query even if it is an array to generate the form * fix: fixed few bugs and design feedbacks * fix: Added a logic to set the width of the dropdown menu same as dropdown trigger * feat: updated the deprecated section for Form * feat: Added a logic to run query on selecting the query on generate form from * fix: changed the logic of selection handled in the manage column modal. The components will be created only if the column is selected. * refactor: moved the manage fields from button to an icon * fix: merged the field definition with the existing default data to show it on manage column popup * feat: focused the codehinter when the rawJson is selected on the dropdown menu * chore: cleanup * feat: update formComponentSlice with latest changes - Fixed getCurrentPageIndex usage in setComponentPropertyByComponentIds - Enhanced component batch operations functionality - Improved form field management logic * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * fix: fixed the issues due to merge conflict * feat: Removed componentMapping modal for rawJson. Added JsonSchema in the dropdown menu and moved the refresh button inside the modal footer for the queries * fix: Added a loader in the column mapping & updated the styles * chore: cleanup and moves to separate files * chore: cleanup the components * fix: modal was not poping up when I click a different query * chore: cleanedup `ColumnMappingComponent` * fix: fixed bugs on regenerating the forms, shown the loader while running the query, added support for multiple queries etc * chore: removed unwanted props * fix: fixed the undo/redo issues * fix: Fixed the issue on custom fields not showing up on the columnMappingModal * fix: bugfixes like duplicate field, maping popup stays on screen, visibility not working, form loader etc * fix: Fixed the height of the textare and fixed showing the main popover on click of make mandatory button * fix: Fixed the undo redo issue on deleting the form component * fix: removed the undo/redo while saving the form data section * chore: updated the default data for rawJSON * fix: Fixed bugs on toggleswitch, scroll, placeholder etc * fix: Added a condition to render the placeholder input * chore: taken care bito feedback * fix: fixed the modal closing issue * fix: Fixed the gutter issue as the canvas height needs to be updated once the child components are generated * chore: fixed design feedback * fix: Added hover to the modal body instead of each section
2025-06-27 14:38:15 +00:00
if (setCodeEditorView) {
setCodeEditorView(view);
}
}}
2025-03-02 21:09:32 +00:00
value={currentValue}
placeholder={placeholder}
height={isInsideQueryPane ? '100%' : showLineNumbers ? '400px' : '100%'}
width="100%"
extensions={
showSuggestions
? [
Custom themes (#13064) * feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267) * feat: tab draggble option and popover menu (#11267) * feat: tab scrollable arrows and tabItem logic(#11267) * feat: remove logs(#11267) * feat: Tabslayout name change(#11267) * fix: component update on Tabs * fix: tab text color update * feat: setTabDisable CSA added(#11267) * feat: added CSA for tab specific changes(#11267) * feat: added handle function for tab specific changes(#11267) * feat: shimmer for tab nav and icon chooser (#11267) * feat: icon for each tab in TabNav items (#11267) * feat: equal split width fix for each tab in TabNav items (#11267) * feat: styles for Tab Nav (#11267) * feat: slide options(#11267) * feat: fix radius (#11267) * feat: slider (#11267) * feat: fix slide direction (#11267) * feat: fix slide direction 2 (#11267) * feat: fix styles right side inspector view (#11267) * feat: nav ellipsis ... (#11267) * feat: children different for dynamic and non-dynamic (#11267) * feat:[tabsLayout] change default values in config (#11267) * feat:[tabsLayout] split and auto fix (#11267) * feat: fix styles accent and text (#11267) * feat: fix styles divider and more 2(#11267) * feat: fix styles divider and more 3(#11267) * feat: fix styles 4(#11267) * feat: fix styles 5(#11267) * feat: fix tab icon visibility 6 (#11267) * feat: modify name of property from id to Tab 7(#11267) * fixes and changes * fix: csa for tabs * new changes and fixes * fix: dynamic options sytling * v2 changes * add: new properties and styles to inspector for range slider * fixes of range slider * fix: styling * fix: styling of icons * fixed endvalue and startvalue problem * ColorSwatches for table * fix: styling * transition effect fix * fix: properties and migration * fix: slider functionality * fixed transition * new changes * visible,disable,loading,width * feat: merge appbuilder/sprint-11 with main * fix: styling * style: extend tabpane background to whole pane * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component * review changes * fix: tinycolor import * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Date, Time, DateTime & Date Range Picker components * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Form, Textarea & Horizontal Divider component * Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value * Fix: Resolved custom theming issues in different components * feat: Revamps file uploader widget * Fixes added * Custom theme extra code for extra components * Submodule commit change * Submodule commit change * Textinput theming added * Number input theming added * Email & Password Theming added * Textarea theming added * Error system status added along with rating theming * ToggleV2 theming added * Toggle, RadioButton & Error related theming added * Checkbox Theming added * Dropdown V2 and legacy theming added * Multiselect V2 theming added * Adding ux friendly error messages * Misc1 and Misc 2 theming added * Multiselect legacy theming added * Form components theming added * Subcontainer related issues * Subcontainers theming added * Tabs theming added * Filepicker theming added * Range slider theming added * Steps theming added * Submodule update * Package update * Added Header text, background and container background color * Submodule Update * Submodule update * Submodule update * Submodule update * Hover effect added * feat: Revamps file uploader widget * Adding ux friendly error messages * Adds style tab * Adds min file validation * Reset vs code * Adds support for theme * Base theme added * Base theme added * Base theme added * initial commit * fix * Fixes * Submodule update * Added auto color assign feature for multiselect/select in table * Table column popover going out of bounds fix * Changed layout of component manager * DropdownV2 added to selectInputs * HTML column data type added * Table column icons added * Fix dropping widget width while dragging * Changed datepicker icon and added icons to table dropdown * Style: Update Accordion Component UI * Temp changes * Fix group selection in form * fix when dropping a component, shadow is coming on top of component manager. * improve performace on useGroupedTargetsScrollHandler * Fix * Review fixes * Minor changes * chore: update submodule references * Color swatches added icon/default and added disabled/loading state * Submodule update * Bugs solved * Fixes for Component sidebar * Custom theme related bug fixes * App Background Switch added * Submodule update * Submodule update * HTML fixes * Submodule update * Query breaking on Symbol fix * Import export property migration for Rangepicker & Textarea * Auto color pills not working for table select fix * Custom themes minor bugs * Submodule update * Minor fixes * Revamp pages in editor and viewer * bug fixes * merge base * fix conflicts * fix conflicts * bug fixes * Added swatches to page menu * Submodule update * Submodule update * Submodule update * Styling fixes * Changed few page styles * bug fixes * fix: pages icon and layout for right sidebar * fix: styling for pages menu * fix base styling * merge base * bug fixes * Bug fixes * Submodule update * Submodules updated * bug fixes * fix top styling of nav bar * Sass loader error fix * styles: correct styles to match the dsigns * Accordion design added with some minor styling fixes * fix: update default supported file of filepicker to any * fix: update styles mismatches * fix: hide min and max file count if multi file select is disabled * TJ Default changed to Tooljet Migration * Multiline code editor suggestions now close when out of view * add border to canvas * Dark theme link color fix for html column type * Spinner color fix * bug fixes * bug fixes * Submodules updated * update reference * Submodule update --------- Co-authored-by: Raman Kumar <k.raman1998@yahoo.in> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com> Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com> Co-authored-by: NishidhJain11 <nishidh@tooljet.com> Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com> Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
2025-06-27 12:42:34 +00:00
javascript({ jsx: lang === 'jsx' }),
autoCompleteConfig,
keymap.of([...customKeyMaps]),
customTabKeymap,
]
2025-03-02 21:09:32 +00:00
: [javascript({ jsx: lang === 'jsx' })]
}
onChange={(val) => {
setFirstTimeFocus(false);
handleOnChange(val);
onInputChange && onInputChange(val);
}}
basicSetup={{
lineNumbers: showLineNumbers,
syntaxHighlighting: true,
bracketMatching: true,
foldGutter: false,
highlightActiveLine: false,
autocompletion: true,
defaultKeymap: false,
2025-03-02 21:09:32 +00:00
completionKeymap: true,
searchKeymap: false,
}}
onMouseDown={() => handleFocus()}
onBlur={() => handleOnBlur()}
className={customClassNames}
theme={theme}
indentWithTab={false}
readOnly={disabled}
onKeyDown={(event) => {
if (event.key === 'Backspace') {
startCompletion(codeMirrorView);
}
}}
2025-03-02 21:09:32 +00:00
/>
</div>
Custom themes (#13064) * feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267) * feat: tab draggble option and popover menu (#11267) * feat: tab scrollable arrows and tabItem logic(#11267) * feat: remove logs(#11267) * feat: Tabslayout name change(#11267) * fix: component update on Tabs * fix: tab text color update * feat: setTabDisable CSA added(#11267) * feat: added CSA for tab specific changes(#11267) * feat: added handle function for tab specific changes(#11267) * feat: shimmer for tab nav and icon chooser (#11267) * feat: icon for each tab in TabNav items (#11267) * feat: equal split width fix for each tab in TabNav items (#11267) * feat: styles for Tab Nav (#11267) * feat: slide options(#11267) * feat: fix radius (#11267) * feat: slider (#11267) * feat: fix slide direction (#11267) * feat: fix slide direction 2 (#11267) * feat: fix styles right side inspector view (#11267) * feat: nav ellipsis ... (#11267) * feat: children different for dynamic and non-dynamic (#11267) * feat:[tabsLayout] change default values in config (#11267) * feat:[tabsLayout] split and auto fix (#11267) * feat: fix styles accent and text (#11267) * feat: fix styles divider and more 2(#11267) * feat: fix styles divider and more 3(#11267) * feat: fix styles 4(#11267) * feat: fix styles 5(#11267) * feat: fix tab icon visibility 6 (#11267) * feat: modify name of property from id to Tab 7(#11267) * fixes and changes * fix: csa for tabs * new changes and fixes * fix: dynamic options sytling * v2 changes * add: new properties and styles to inspector for range slider * fixes of range slider * fix: styling * fix: styling of icons * fixed endvalue and startvalue problem * ColorSwatches for table * fix: styling * transition effect fix * fix: properties and migration * fix: slider functionality * fixed transition * new changes * visible,disable,loading,width * feat: merge appbuilder/sprint-11 with main * fix: styling * style: extend tabpane background to whole pane * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component * review changes * fix: tinycolor import * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Date, Time, DateTime & Date Range Picker components * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Form, Textarea & Horizontal Divider component * Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value * Fix: Resolved custom theming issues in different components * feat: Revamps file uploader widget * Fixes added * Custom theme extra code for extra components * Submodule commit change * Submodule commit change * Textinput theming added * Number input theming added * Email & Password Theming added * Textarea theming added * Error system status added along with rating theming * ToggleV2 theming added * Toggle, RadioButton & Error related theming added * Checkbox Theming added * Dropdown V2 and legacy theming added * Multiselect V2 theming added * Adding ux friendly error messages * Misc1 and Misc 2 theming added * Multiselect legacy theming added * Form components theming added * Subcontainer related issues * Subcontainers theming added * Tabs theming added * Filepicker theming added * Range slider theming added * Steps theming added * Submodule update * Package update * Added Header text, background and container background color * Submodule Update * Submodule update * Submodule update * Submodule update * Hover effect added * feat: Revamps file uploader widget * Adding ux friendly error messages * Adds style tab * Adds min file validation * Reset vs code * Adds support for theme * Base theme added * Base theme added * Base theme added * initial commit * fix * Fixes * Submodule update * Added auto color assign feature for multiselect/select in table * Table column popover going out of bounds fix * Changed layout of component manager * DropdownV2 added to selectInputs * HTML column data type added * Table column icons added * Fix dropping widget width while dragging * Changed datepicker icon and added icons to table dropdown * Style: Update Accordion Component UI * Temp changes * Fix group selection in form * fix when dropping a component, shadow is coming on top of component manager. * improve performace on useGroupedTargetsScrollHandler * Fix * Review fixes * Minor changes * chore: update submodule references * Color swatches added icon/default and added disabled/loading state * Submodule update * Bugs solved * Fixes for Component sidebar * Custom theme related bug fixes * App Background Switch added * Submodule update * Submodule update * HTML fixes * Submodule update * Query breaking on Symbol fix * Import export property migration for Rangepicker & Textarea * Auto color pills not working for table select fix * Custom themes minor bugs * Submodule update * Minor fixes * Revamp pages in editor and viewer * bug fixes * merge base * fix conflicts * fix conflicts * bug fixes * Added swatches to page menu * Submodule update * Submodule update * Submodule update * Styling fixes * Changed few page styles * bug fixes * fix: pages icon and layout for right sidebar * fix: styling for pages menu * fix base styling * merge base * bug fixes * Bug fixes * Submodule update * Submodules updated * bug fixes * fix top styling of nav bar * Sass loader error fix * styles: correct styles to match the dsigns * Accordion design added with some minor styling fixes * fix: update default supported file of filepicker to any * fix: update styles mismatches * fix: hide min and max file count if multi file select is disabled * TJ Default changed to Tooljet Migration * Multiline code editor suggestions now close when out of view * add border to canvas * Dark theme link color fix for html column type * Spinner color fix * bug fixes * bug fixes * Submodules updated * update reference * Submodule update --------- Co-authored-by: Raman Kumar <k.raman1998@yahoo.in> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com> Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com> Co-authored-by: NishidhJain11 <nishidh@tooljet.com> Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com> Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
2025-06-27 12:42:34 +00:00
</ErrorBoundary>
</CodeHinter.Portal>
</div>
);
};
const DynamicEditorBridge = (props) => {
const {
initialValue,
type,
fxActive,
paramType = 'code',
paramLabel,
paramName,
fieldMeta,
darkMode,
className,
onFxPress = noop,
onChange,
styleDefinition,
component,
onVisibilityChange,
isEventManagerParam = false,
} = props;
const [forceCodeBox, setForceCodeBox] = React.useState(fxActive);
const codeShow = paramType === 'code' || forceCodeBox;
Custom themes (#13064) * feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267) * feat: tab draggble option and popover menu (#11267) * feat: tab scrollable arrows and tabItem logic(#11267) * feat: remove logs(#11267) * feat: Tabslayout name change(#11267) * fix: component update on Tabs * fix: tab text color update * feat: setTabDisable CSA added(#11267) * feat: added CSA for tab specific changes(#11267) * feat: added handle function for tab specific changes(#11267) * feat: shimmer for tab nav and icon chooser (#11267) * feat: icon for each tab in TabNav items (#11267) * feat: equal split width fix for each tab in TabNav items (#11267) * feat: styles for Tab Nav (#11267) * feat: slide options(#11267) * feat: fix radius (#11267) * feat: slider (#11267) * feat: fix slide direction (#11267) * feat: fix slide direction 2 (#11267) * feat: fix styles right side inspector view (#11267) * feat: nav ellipsis ... (#11267) * feat: children different for dynamic and non-dynamic (#11267) * feat:[tabsLayout] change default values in config (#11267) * feat:[tabsLayout] split and auto fix (#11267) * feat: fix styles accent and text (#11267) * feat: fix styles divider and more 2(#11267) * feat: fix styles divider and more 3(#11267) * feat: fix styles 4(#11267) * feat: fix styles 5(#11267) * feat: fix tab icon visibility 6 (#11267) * feat: modify name of property from id to Tab 7(#11267) * fixes and changes * fix: csa for tabs * new changes and fixes * fix: dynamic options sytling * v2 changes * add: new properties and styles to inspector for range slider * fixes of range slider * fix: styling * fix: styling of icons * fixed endvalue and startvalue problem * ColorSwatches for table * fix: styling * transition effect fix * fix: properties and migration * fix: slider functionality * fixed transition * new changes * visible,disable,loading,width * feat: merge appbuilder/sprint-11 with main * fix: styling * style: extend tabpane background to whole pane * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component * review changes * fix: tinycolor import * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Date, Time, DateTime & Date Range Picker components * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Form, Textarea & Horizontal Divider component * Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value * Fix: Resolved custom theming issues in different components * feat: Revamps file uploader widget * Fixes added * Custom theme extra code for extra components * Submodule commit change * Submodule commit change * Textinput theming added * Number input theming added * Email & Password Theming added * Textarea theming added * Error system status added along with rating theming * ToggleV2 theming added * Toggle, RadioButton & Error related theming added * Checkbox Theming added * Dropdown V2 and legacy theming added * Multiselect V2 theming added * Adding ux friendly error messages * Misc1 and Misc 2 theming added * Multiselect legacy theming added * Form components theming added * Subcontainer related issues * Subcontainers theming added * Tabs theming added * Filepicker theming added * Range slider theming added * Steps theming added * Submodule update * Package update * Added Header text, background and container background color * Submodule Update * Submodule update * Submodule update * Submodule update * Hover effect added * feat: Revamps file uploader widget * Adding ux friendly error messages * Adds style tab * Adds min file validation * Reset vs code * Adds support for theme * Base theme added * Base theme added * Base theme added * initial commit * fix * Fixes * Submodule update * Added auto color assign feature for multiselect/select in table * Table column popover going out of bounds fix * Changed layout of component manager * DropdownV2 added to selectInputs * HTML column data type added * Table column icons added * Fix dropping widget width while dragging * Changed datepicker icon and added icons to table dropdown * Style: Update Accordion Component UI * Temp changes * Fix group selection in form * fix when dropping a component, shadow is coming on top of component manager. * improve performace on useGroupedTargetsScrollHandler * Fix * Review fixes * Minor changes * chore: update submodule references * Color swatches added icon/default and added disabled/loading state * Submodule update * Bugs solved * Fixes for Component sidebar * Custom theme related bug fixes * App Background Switch added * Submodule update * Submodule update * HTML fixes * Submodule update * Query breaking on Symbol fix * Import export property migration for Rangepicker & Textarea * Auto color pills not working for table select fix * Custom themes minor bugs * Submodule update * Minor fixes * Revamp pages in editor and viewer * bug fixes * merge base * fix conflicts * fix conflicts * bug fixes * Added swatches to page menu * Submodule update * Submodule update * Submodule update * Styling fixes * Changed few page styles * bug fixes * fix: pages icon and layout for right sidebar * fix: styling for pages menu * fix base styling * merge base * bug fixes * Bug fixes * Submodule update * Submodules updated * bug fixes * fix top styling of nav bar * Sass loader error fix * styles: correct styles to match the dsigns * Accordion design added with some minor styling fixes * fix: update default supported file of filepicker to any * fix: update styles mismatches * fix: hide min and max file count if multi file select is disabled * TJ Default changed to Tooljet Migration * Multiline code editor suggestions now close when out of view * add border to canvas * Dark theme link color fix for html column type * Spinner color fix * bug fixes * bug fixes * Submodules updated * update reference * Submodule update --------- Co-authored-by: Raman Kumar <k.raman1998@yahoo.in> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com> Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com> Co-authored-by: NishidhJain11 <nishidh@tooljet.com> Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com> Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
2025-06-27 12:42:34 +00:00
const HIDDEN_CODE_HINTER_LABELS = ['Table data', 'Column data', 'Text Format', 'Slider type'];
feat: Form 2.0 (#12941) * init: Added resetOnSubmit, validateOnSubmit properties and exposed formData value * Added the generate form from dropdown menu on the inspector * feat: Added generate form button and fields section * Added the generate column popup UI * feat: Added UI for form fields * feat: Added the UI for new custom field * chore: Added refresh data and custom schema UI * feat: Added the util function to map the JSON to component * chore: cleanup and fixed bugs on dropdown * feat: Added fields property to the form config * feat: save generated fields on form * feat: generated child components from the JSON * fix: bugs on generating component from JSON * chore: added functionality for view properties and styles on field popover * feat: Added local state for add new custom fields * feat: Added logic to create component on submitting new custom field * fix: bugfies on creating a custom fields * feat: Handled grouping of data in the manage column modal * feat: Handled deletion case of the fields * fix: fixed bug on deleting the fields * chore: Updated the form fields logic to store only the necessary values and fetch the remaining values from the component directly using componentId * chore: updated logic to handle fx in mandatory and selected fields * feat: Added functionality to update the component from form fields * fix: bug on componentType typo * chore: written logic to handle the componentType update * feat: Added multiple updates including componentType change * chore: Added few more input components * chore: Moved the form fields property logic to new formComponentSlice * fix: creating a custom field while dragging across the parent components * chore: reverted the deletion logic a bit to properly fetch the parentID from the component * fix: while moving the component with more than 1 form field, it is clearing the complete list * fix: handle the case of moving component from canvas to form * chore: Removed unwanted UI blocks and added logic to conditionally display data section when custom schema is turned off * chore: cleaned up the Dropdownmenu component & added memo to avoid re-render * feat: Added query support and updated logic to display the columns on the modal * chore: cleanup & passed the correct columns to the component * chore: cleaned up the form status constant * chore: wrapped functions in a * chore: created a separate function to create components from form * chore: cleaned up the code to use the same code for component creation * chore: updated the logic for the form field component update * feat: Added functionality for single field popover icons & moved the single field creation out of common function to simplify the field update * fix: removed the deleted fields while refreshing the form * fix: updated the logic for the refresh fields * feat: Added logic to ignore the components to be deleted for regeration of form * chore: moved the component list supported to a constant * fix: Added a backfill logic for the fields property to handle without migration * fix: added a correct key for custom field * fix: Fixed issue on adding custom fields while regenrating the form * fix: Fixed issues on generating form fields while refreshing the FORM * chore: cleanedup the code * chore: Fixed path and merged with main * fix: avoided the multiple re-renders on FORM and fixed the state issue on data & formData * fix: removed the child components from inspector & added a support for query even if it is an array to generate the form * fix: fixed few bugs and design feedbacks * fix: Added a logic to set the width of the dropdown menu same as dropdown trigger * feat: updated the deprecated section for Form * feat: Added a logic to run query on selecting the query on generate form from * fix: changed the logic of selection handled in the manage column modal. The components will be created only if the column is selected. * refactor: moved the manage fields from button to an icon * fix: merged the field definition with the existing default data to show it on manage column popup * feat: focused the codehinter when the rawJson is selected on the dropdown menu * chore: cleanup * feat: update formComponentSlice with latest changes - Fixed getCurrentPageIndex usage in setComponentPropertyByComponentIds - Enhanced component batch operations functionality - Improved form field management logic * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * fix: fixed the issues due to merge conflict * feat: Removed componentMapping modal for rawJson. Added JsonSchema in the dropdown menu and moved the refresh button inside the modal footer for the queries * fix: Added a loader in the column mapping & updated the styles * chore: cleanup and moves to separate files * chore: cleanup the components * fix: modal was not poping up when I click a different query * chore: cleanedup `ColumnMappingComponent` * fix: fixed bugs on regenerating the forms, shown the loader while running the query, added support for multiple queries etc * chore: removed unwanted props * fix: fixed the undo/redo issues * fix: Fixed the issue on custom fields not showing up on the columnMappingModal * fix: bugfixes like duplicate field, maping popup stays on screen, visibility not working, form loader etc * fix: Fixed the height of the textare and fixed showing the main popover on click of make mandatory button * fix: Fixed the undo redo issue on deleting the form component * fix: removed the undo/redo while saving the form data section * chore: updated the default data for rawJSON * fix: Fixed bugs on toggleswitch, scroll, placeholder etc * fix: Added a condition to render the placeholder input * chore: taken care bito feedback * fix: fixed the modal closing issue * fix: Fixed the gutter issue as the canvas height needs to be updated once the child components are generated * chore: fixed design feedback * fix: Added hover to the modal body instead of each section
2025-06-27 14:38:15 +00:00
const { isFxNotRequired, newLine = false, section = '' } = fieldMeta;
const isDeprecated = section === 'deprecated';
const { t } = useTranslation();
feat: Form 2.0 (#12941) * init: Added resetOnSubmit, validateOnSubmit properties and exposed formData value * Added the generate form from dropdown menu on the inspector * feat: Added generate form button and fields section * Added the generate column popup UI * feat: Added UI for form fields * feat: Added the UI for new custom field * chore: Added refresh data and custom schema UI * feat: Added the util function to map the JSON to component * chore: cleanup and fixed bugs on dropdown * feat: Added fields property to the form config * feat: save generated fields on form * feat: generated child components from the JSON * fix: bugs on generating component from JSON * chore: added functionality for view properties and styles on field popover * feat: Added local state for add new custom fields * feat: Added logic to create component on submitting new custom field * fix: bugfies on creating a custom fields * feat: Handled grouping of data in the manage column modal * feat: Handled deletion case of the fields * fix: fixed bug on deleting the fields * chore: Updated the form fields logic to store only the necessary values and fetch the remaining values from the component directly using componentId * chore: updated logic to handle fx in mandatory and selected fields * feat: Added functionality to update the component from form fields * fix: bug on componentType typo * chore: written logic to handle the componentType update * feat: Added multiple updates including componentType change * chore: Added few more input components * chore: Moved the form fields property logic to new formComponentSlice * fix: creating a custom field while dragging across the parent components * chore: reverted the deletion logic a bit to properly fetch the parentID from the component * fix: while moving the component with more than 1 form field, it is clearing the complete list * fix: handle the case of moving component from canvas to form * chore: Removed unwanted UI blocks and added logic to conditionally display data section when custom schema is turned off * chore: cleaned up the Dropdownmenu component & added memo to avoid re-render * feat: Added query support and updated logic to display the columns on the modal * chore: cleanup & passed the correct columns to the component * chore: cleaned up the form status constant * chore: wrapped functions in a * chore: created a separate function to create components from form * chore: cleaned up the code to use the same code for component creation * chore: updated the logic for the form field component update * feat: Added functionality for single field popover icons & moved the single field creation out of common function to simplify the field update * fix: removed the deleted fields while refreshing the form * fix: updated the logic for the refresh fields * feat: Added logic to ignore the components to be deleted for regeration of form * chore: moved the component list supported to a constant * fix: Added a backfill logic for the fields property to handle without migration * fix: added a correct key for custom field * fix: Fixed issue on adding custom fields while regenrating the form * fix: Fixed issues on generating form fields while refreshing the FORM * chore: cleanedup the code * chore: Fixed path and merged with main * fix: avoided the multiple re-renders on FORM and fixed the state issue on data & formData * fix: removed the child components from inspector & added a support for query even if it is an array to generate the form * fix: fixed few bugs and design feedbacks * fix: Added a logic to set the width of the dropdown menu same as dropdown trigger * feat: updated the deprecated section for Form * feat: Added a logic to run query on selecting the query on generate form from * fix: changed the logic of selection handled in the manage column modal. The components will be created only if the column is selected. * refactor: moved the manage fields from button to an icon * fix: merged the field definition with the existing default data to show it on manage column popup * feat: focused the codehinter when the rawJson is selected on the dropdown menu * chore: cleanup * feat: update formComponentSlice with latest changes - Fixed getCurrentPageIndex usage in setComponentPropertyByComponentIds - Enhanced component batch operations functionality - Improved form field management logic * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * fix: fixed the issues due to merge conflict * feat: Removed componentMapping modal for rawJson. Added JsonSchema in the dropdown menu and moved the refresh button inside the modal footer for the queries * fix: Added a loader in the column mapping & updated the styles * chore: cleanup and moves to separate files * chore: cleanup the components * fix: modal was not poping up when I click a different query * chore: cleanedup `ColumnMappingComponent` * fix: fixed bugs on regenerating the forms, shown the loader while running the query, added support for multiple queries etc * chore: removed unwanted props * fix: fixed the undo/redo issues * fix: Fixed the issue on custom fields not showing up on the columnMappingModal * fix: bugfixes like duplicate field, maping popup stays on screen, visibility not working, form loader etc * fix: Fixed the height of the textare and fixed showing the main popover on click of make mandatory button * fix: Fixed the undo redo issue on deleting the form component * fix: removed the undo/redo while saving the form data section * chore: updated the default data for rawJSON * fix: Fixed bugs on toggleswitch, scroll, placeholder etc * fix: Added a condition to render the placeholder input * chore: taken care bito feedback * fix: fixed the modal closing issue * fix: Fixed the gutter issue as the canvas height needs to be updated once the child components are generated * chore: fixed design feedback * fix: Added hover to the modal body instead of each section
2025-06-27 14:38:15 +00:00
const replaceIdsWithName = useStore((state) => state.replaceIdsWithName, shallow);
let newInitialValue = initialValue,
shouldResolve = true;
// This is to handle the case when the initial value is a string and contains components or queries
// and we need to replace the ids with names
// but we don't want to resolve the references as it needs to be displayed as it is
if (paramName === 'generateFormFrom') {
if (
typeof initialValue === 'string' &&
(initialValue?.includes('components') || initialValue?.includes('queries'))
) {
newInitialValue = replaceIdsWithName(initialValue);
shouldResolve = false;
}
}
const [_, error, value] =
type === 'fxEditor' ? (shouldResolve ? resolveReferences(newInitialValue) : [false, '', newInitialValue]) : [];
let cyLabel = paramLabel ? paramLabel.toLowerCase().trim().replace(/\s+/g, '-') : props.cyLabel;
useEffect(() => {
setForceCodeBox(fxActive);
}, [component, fxActive]);
Custom themes (#13064) * feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267) * feat: tab draggble option and popover menu (#11267) * feat: tab scrollable arrows and tabItem logic(#11267) * feat: remove logs(#11267) * feat: Tabslayout name change(#11267) * fix: component update on Tabs * fix: tab text color update * feat: setTabDisable CSA added(#11267) * feat: added CSA for tab specific changes(#11267) * feat: added handle function for tab specific changes(#11267) * feat: shimmer for tab nav and icon chooser (#11267) * feat: icon for each tab in TabNav items (#11267) * feat: equal split width fix for each tab in TabNav items (#11267) * feat: styles for Tab Nav (#11267) * feat: slide options(#11267) * feat: fix radius (#11267) * feat: slider (#11267) * feat: fix slide direction (#11267) * feat: fix slide direction 2 (#11267) * feat: fix styles right side inspector view (#11267) * feat: nav ellipsis ... (#11267) * feat: children different for dynamic and non-dynamic (#11267) * feat:[tabsLayout] change default values in config (#11267) * feat:[tabsLayout] split and auto fix (#11267) * feat: fix styles accent and text (#11267) * feat: fix styles divider and more 2(#11267) * feat: fix styles divider and more 3(#11267) * feat: fix styles 4(#11267) * feat: fix styles 5(#11267) * feat: fix tab icon visibility 6 (#11267) * feat: modify name of property from id to Tab 7(#11267) * fixes and changes * fix: csa for tabs * new changes and fixes * fix: dynamic options sytling * v2 changes * add: new properties and styles to inspector for range slider * fixes of range slider * fix: styling * fix: styling of icons * fixed endvalue and startvalue problem * ColorSwatches for table * fix: styling * transition effect fix * fix: properties and migration * fix: slider functionality * fixed transition * new changes * visible,disable,loading,width * feat: merge appbuilder/sprint-11 with main * fix: styling * style: extend tabpane background to whole pane * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component * review changes * fix: tinycolor import * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Date, Time, DateTime & Date Range Picker components * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Form, Textarea & Horizontal Divider component * Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value * Fix: Resolved custom theming issues in different components * feat: Revamps file uploader widget * Fixes added * Custom theme extra code for extra components * Submodule commit change * Submodule commit change * Textinput theming added * Number input theming added * Email & Password Theming added * Textarea theming added * Error system status added along with rating theming * ToggleV2 theming added * Toggle, RadioButton & Error related theming added * Checkbox Theming added * Dropdown V2 and legacy theming added * Multiselect V2 theming added * Adding ux friendly error messages * Misc1 and Misc 2 theming added * Multiselect legacy theming added * Form components theming added * Subcontainer related issues * Subcontainers theming added * Tabs theming added * Filepicker theming added * Range slider theming added * Steps theming added * Submodule update * Package update * Added Header text, background and container background color * Submodule Update * Submodule update * Submodule update * Submodule update * Hover effect added * feat: Revamps file uploader widget * Adding ux friendly error messages * Adds style tab * Adds min file validation * Reset vs code * Adds support for theme * Base theme added * Base theme added * Base theme added * initial commit * fix * Fixes * Submodule update * Added auto color assign feature for multiselect/select in table * Table column popover going out of bounds fix * Changed layout of component manager * DropdownV2 added to selectInputs * HTML column data type added * Table column icons added * Fix dropping widget width while dragging * Changed datepicker icon and added icons to table dropdown * Style: Update Accordion Component UI * Temp changes * Fix group selection in form * fix when dropping a component, shadow is coming on top of component manager. * improve performace on useGroupedTargetsScrollHandler * Fix * Review fixes * Minor changes * chore: update submodule references * Color swatches added icon/default and added disabled/loading state * Submodule update * Bugs solved * Fixes for Component sidebar * Custom theme related bug fixes * App Background Switch added * Submodule update * Submodule update * HTML fixes * Submodule update * Query breaking on Symbol fix * Import export property migration for Rangepicker & Textarea * Auto color pills not working for table select fix * Custom themes minor bugs * Submodule update * Minor fixes * Revamp pages in editor and viewer * bug fixes * merge base * fix conflicts * fix conflicts * bug fixes * Added swatches to page menu * Submodule update * Submodule update * Submodule update * Styling fixes * Changed few page styles * bug fixes * fix: pages icon and layout for right sidebar * fix: styling for pages menu * fix base styling * merge base * bug fixes * Bug fixes * Submodule update * Submodules updated * bug fixes * fix top styling of nav bar * Sass loader error fix * styles: correct styles to match the dsigns * Accordion design added with some minor styling fixes * fix: update default supported file of filepicker to any * fix: update styles mismatches * fix: hide min and max file count if multi file select is disabled * TJ Default changed to Tooljet Migration * Multiline code editor suggestions now close when out of view * add border to canvas * Dark theme link color fix for html column type * Spinner color fix * bug fixes * bug fixes * Submodules updated * update reference * Submodule update --------- Co-authored-by: Raman Kumar <k.raman1998@yahoo.in> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com> Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com> Co-authored-by: NishidhJain11 <nishidh@tooljet.com> Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com> Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
2025-06-27 12:42:34 +00:00
let modifiedValue = initialValue;
if (paramType === 'colorSwatches' && typeof initialValue === 'string' && initialValue?.includes('var(')) {
modifiedValue = getCssVarValue(document.documentElement, initialValue);
}
2025-04-19 10:52:26 +00:00
const renderFx = () => {
if (paramType === 'query' || !(paramLabel !== 'Type' && isFxNotRequired === undefined)) {
2025-04-19 10:52:26 +00:00
return null;
}
Custom themes (#13064) * feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267) * feat: tab draggble option and popover menu (#11267) * feat: tab scrollable arrows and tabItem logic(#11267) * feat: remove logs(#11267) * feat: Tabslayout name change(#11267) * fix: component update on Tabs * fix: tab text color update * feat: setTabDisable CSA added(#11267) * feat: added CSA for tab specific changes(#11267) * feat: added handle function for tab specific changes(#11267) * feat: shimmer for tab nav and icon chooser (#11267) * feat: icon for each tab in TabNav items (#11267) * feat: equal split width fix for each tab in TabNav items (#11267) * feat: styles for Tab Nav (#11267) * feat: slide options(#11267) * feat: fix radius (#11267) * feat: slider (#11267) * feat: fix slide direction (#11267) * feat: fix slide direction 2 (#11267) * feat: fix styles right side inspector view (#11267) * feat: nav ellipsis ... (#11267) * feat: children different for dynamic and non-dynamic (#11267) * feat:[tabsLayout] change default values in config (#11267) * feat:[tabsLayout] split and auto fix (#11267) * feat: fix styles accent and text (#11267) * feat: fix styles divider and more 2(#11267) * feat: fix styles divider and more 3(#11267) * feat: fix styles 4(#11267) * feat: fix styles 5(#11267) * feat: fix tab icon visibility 6 (#11267) * feat: modify name of property from id to Tab 7(#11267) * fixes and changes * fix: csa for tabs * new changes and fixes * fix: dynamic options sytling * v2 changes * add: new properties and styles to inspector for range slider * fixes of range slider * fix: styling * fix: styling of icons * fixed endvalue and startvalue problem * ColorSwatches for table * fix: styling * transition effect fix * fix: properties and migration * fix: slider functionality * fixed transition * new changes * visible,disable,loading,width * feat: merge appbuilder/sprint-11 with main * fix: styling * style: extend tabpane background to whole pane * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component * review changes * fix: tinycolor import * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Date, Time, DateTime & Date Range Picker components * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Form, Textarea & Horizontal Divider component * Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value * Fix: Resolved custom theming issues in different components * feat: Revamps file uploader widget * Fixes added * Custom theme extra code for extra components * Submodule commit change * Submodule commit change * Textinput theming added * Number input theming added * Email & Password Theming added * Textarea theming added * Error system status added along with rating theming * ToggleV2 theming added * Toggle, RadioButton & Error related theming added * Checkbox Theming added * Dropdown V2 and legacy theming added * Multiselect V2 theming added * Adding ux friendly error messages * Misc1 and Misc 2 theming added * Multiselect legacy theming added * Form components theming added * Subcontainer related issues * Subcontainers theming added * Tabs theming added * Filepicker theming added * Range slider theming added * Steps theming added * Submodule update * Package update * Added Header text, background and container background color * Submodule Update * Submodule update * Submodule update * Submodule update * Hover effect added * feat: Revamps file uploader widget * Adding ux friendly error messages * Adds style tab * Adds min file validation * Reset vs code * Adds support for theme * Base theme added * Base theme added * Base theme added * initial commit * fix * Fixes * Submodule update * Added auto color assign feature for multiselect/select in table * Table column popover going out of bounds fix * Changed layout of component manager * DropdownV2 added to selectInputs * HTML column data type added * Table column icons added * Fix dropping widget width while dragging * Changed datepicker icon and added icons to table dropdown * Style: Update Accordion Component UI * Temp changes * Fix group selection in form * fix when dropping a component, shadow is coming on top of component manager. * improve performace on useGroupedTargetsScrollHandler * Fix * Review fixes * Minor changes * chore: update submodule references * Color swatches added icon/default and added disabled/loading state * Submodule update * Bugs solved * Fixes for Component sidebar * Custom theme related bug fixes * App Background Switch added * Submodule update * Submodule update * HTML fixes * Submodule update * Query breaking on Symbol fix * Import export property migration for Rangepicker & Textarea * Auto color pills not working for table select fix * Custom themes minor bugs * Submodule update * Minor fixes * Revamp pages in editor and viewer * bug fixes * merge base * fix conflicts * fix conflicts * bug fixes * Added swatches to page menu * Submodule update * Submodule update * Submodule update * Styling fixes * Changed few page styles * bug fixes * fix: pages icon and layout for right sidebar * fix: styling for pages menu * fix base styling * merge base * bug fixes * Bug fixes * Submodule update * Submodules updated * bug fixes * fix top styling of nav bar * Sass loader error fix * styles: correct styles to match the dsigns * Accordion design added with some minor styling fixes * fix: update default supported file of filepicker to any * fix: update styles mismatches * fix: hide min and max file count if multi file select is disabled * TJ Default changed to Tooljet Migration * Multiline code editor suggestions now close when out of view * add border to canvas * Dark theme link color fix for html column type * Spinner color fix * bug fixes * bug fixes * Submodules updated * update reference * Submodule update --------- Co-authored-by: Raman Kumar <k.raman1998@yahoo.in> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com> Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com> Co-authored-by: NishidhJain11 <nishidh@tooljet.com> Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com> Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
2025-06-27 12:42:34 +00:00
2025-04-19 10:52:26 +00:00
return (
<div
Custom themes (#13064) * feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267) * feat: tab draggble option and popover menu (#11267) * feat: tab scrollable arrows and tabItem logic(#11267) * feat: remove logs(#11267) * feat: Tabslayout name change(#11267) * fix: component update on Tabs * fix: tab text color update * feat: setTabDisable CSA added(#11267) * feat: added CSA for tab specific changes(#11267) * feat: added handle function for tab specific changes(#11267) * feat: shimmer for tab nav and icon chooser (#11267) * feat: icon for each tab in TabNav items (#11267) * feat: equal split width fix for each tab in TabNav items (#11267) * feat: styles for Tab Nav (#11267) * feat: slide options(#11267) * feat: fix radius (#11267) * feat: slider (#11267) * feat: fix slide direction (#11267) * feat: fix slide direction 2 (#11267) * feat: fix styles right side inspector view (#11267) * feat: nav ellipsis ... (#11267) * feat: children different for dynamic and non-dynamic (#11267) * feat:[tabsLayout] change default values in config (#11267) * feat:[tabsLayout] split and auto fix (#11267) * feat: fix styles accent and text (#11267) * feat: fix styles divider and more 2(#11267) * feat: fix styles divider and more 3(#11267) * feat: fix styles 4(#11267) * feat: fix styles 5(#11267) * feat: fix tab icon visibility 6 (#11267) * feat: modify name of property from id to Tab 7(#11267) * fixes and changes * fix: csa for tabs * new changes and fixes * fix: dynamic options sytling * v2 changes * add: new properties and styles to inspector for range slider * fixes of range slider * fix: styling * fix: styling of icons * fixed endvalue and startvalue problem * ColorSwatches for table * fix: styling * transition effect fix * fix: properties and migration * fix: slider functionality * fixed transition * new changes * visible,disable,loading,width * feat: merge appbuilder/sprint-11 with main * fix: styling * style: extend tabpane background to whole pane * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component * review changes * fix: tinycolor import * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Date, Time, DateTime & Date Range Picker components * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Form, Textarea & Horizontal Divider component * Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value * Fix: Resolved custom theming issues in different components * feat: Revamps file uploader widget * Fixes added * Custom theme extra code for extra components * Submodule commit change * Submodule commit change * Textinput theming added * Number input theming added * Email & Password Theming added * Textarea theming added * Error system status added along with rating theming * ToggleV2 theming added * Toggle, RadioButton & Error related theming added * Checkbox Theming added * Dropdown V2 and legacy theming added * Multiselect V2 theming added * Adding ux friendly error messages * Misc1 and Misc 2 theming added * Multiselect legacy theming added * Form components theming added * Subcontainer related issues * Subcontainers theming added * Tabs theming added * Filepicker theming added * Range slider theming added * Steps theming added * Submodule update * Package update * Added Header text, background and container background color * Submodule Update * Submodule update * Submodule update * Submodule update * Hover effect added * feat: Revamps file uploader widget * Adding ux friendly error messages * Adds style tab * Adds min file validation * Reset vs code * Adds support for theme * Base theme added * Base theme added * Base theme added * initial commit * fix * Fixes * Submodule update * Added auto color assign feature for multiselect/select in table * Table column popover going out of bounds fix * Changed layout of component manager * DropdownV2 added to selectInputs * HTML column data type added * Table column icons added * Fix dropping widget width while dragging * Changed datepicker icon and added icons to table dropdown * Style: Update Accordion Component UI * Temp changes * Fix group selection in form * fix when dropping a component, shadow is coming on top of component manager. * improve performace on useGroupedTargetsScrollHandler * Fix * Review fixes * Minor changes * chore: update submodule references * Color swatches added icon/default and added disabled/loading state * Submodule update * Bugs solved * Fixes for Component sidebar * Custom theme related bug fixes * App Background Switch added * Submodule update * Submodule update * HTML fixes * Submodule update * Query breaking on Symbol fix * Import export property migration for Rangepicker & Textarea * Auto color pills not working for table select fix * Custom themes minor bugs * Submodule update * Minor fixes * Revamp pages in editor and viewer * bug fixes * merge base * fix conflicts * fix conflicts * bug fixes * Added swatches to page menu * Submodule update * Submodule update * Submodule update * Styling fixes * Changed few page styles * bug fixes * fix: pages icon and layout for right sidebar * fix: styling for pages menu * fix base styling * merge base * bug fixes * Bug fixes * Submodule update * Submodules updated * bug fixes * fix top styling of nav bar * Sass loader error fix * styles: correct styles to match the dsigns * Accordion design added with some minor styling fixes * fix: update default supported file of filepicker to any * fix: update styles mismatches * fix: hide min and max file count if multi file select is disabled * TJ Default changed to Tooljet Migration * Multiline code editor suggestions now close when out of view * add border to canvas * Dark theme link color fix for html column type * Spinner color fix * bug fixes * bug fixes * Submodules updated * update reference * Submodule update --------- Co-authored-by: Raman Kumar <k.raman1998@yahoo.in> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com> Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com> Co-authored-by: NishidhJain11 <nishidh@tooljet.com> Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com> Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
2025-06-27 12:42:34 +00:00
className={`col-auto pt-0 fx-common fx-button-container ${
(isEventManagerParam || codeShow) && 'show-fx-button-container'
}`}
2025-04-19 10:52:26 +00:00
>
<FxButton
active={codeShow}
onPress={() => {
if (codeShow) {
setForceCodeBox(false);
onFxPress(false);
Custom themes (#13064) * feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267) * feat: tab draggble option and popover menu (#11267) * feat: tab scrollable arrows and tabItem logic(#11267) * feat: remove logs(#11267) * feat: Tabslayout name change(#11267) * fix: component update on Tabs * fix: tab text color update * feat: setTabDisable CSA added(#11267) * feat: added CSA for tab specific changes(#11267) * feat: added handle function for tab specific changes(#11267) * feat: shimmer for tab nav and icon chooser (#11267) * feat: icon for each tab in TabNav items (#11267) * feat: equal split width fix for each tab in TabNav items (#11267) * feat: styles for Tab Nav (#11267) * feat: slide options(#11267) * feat: fix radius (#11267) * feat: slider (#11267) * feat: fix slide direction (#11267) * feat: fix slide direction 2 (#11267) * feat: fix styles right side inspector view (#11267) * feat: nav ellipsis ... (#11267) * feat: children different for dynamic and non-dynamic (#11267) * feat:[tabsLayout] change default values in config (#11267) * feat:[tabsLayout] split and auto fix (#11267) * feat: fix styles accent and text (#11267) * feat: fix styles divider and more 2(#11267) * feat: fix styles divider and more 3(#11267) * feat: fix styles 4(#11267) * feat: fix styles 5(#11267) * feat: fix tab icon visibility 6 (#11267) * feat: modify name of property from id to Tab 7(#11267) * fixes and changes * fix: csa for tabs * new changes and fixes * fix: dynamic options sytling * v2 changes * add: new properties and styles to inspector for range slider * fixes of range slider * fix: styling * fix: styling of icons * fixed endvalue and startvalue problem * ColorSwatches for table * fix: styling * transition effect fix * fix: properties and migration * fix: slider functionality * fixed transition * new changes * visible,disable,loading,width * feat: merge appbuilder/sprint-11 with main * fix: styling * style: extend tabpane background to whole pane * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component * review changes * fix: tinycolor import * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Date, Time, DateTime & Date Range Picker components * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Form, Textarea & Horizontal Divider component * Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value * Fix: Resolved custom theming issues in different components * feat: Revamps file uploader widget * Fixes added * Custom theme extra code for extra components * Submodule commit change * Submodule commit change * Textinput theming added * Number input theming added * Email & Password Theming added * Textarea theming added * Error system status added along with rating theming * ToggleV2 theming added * Toggle, RadioButton & Error related theming added * Checkbox Theming added * Dropdown V2 and legacy theming added * Multiselect V2 theming added * Adding ux friendly error messages * Misc1 and Misc 2 theming added * Multiselect legacy theming added * Form components theming added * Subcontainer related issues * Subcontainers theming added * Tabs theming added * Filepicker theming added * Range slider theming added * Steps theming added * Submodule update * Package update * Added Header text, background and container background color * Submodule Update * Submodule update * Submodule update * Submodule update * Hover effect added * feat: Revamps file uploader widget * Adding ux friendly error messages * Adds style tab * Adds min file validation * Reset vs code * Adds support for theme * Base theme added * Base theme added * Base theme added * initial commit * fix * Fixes * Submodule update * Added auto color assign feature for multiselect/select in table * Table column popover going out of bounds fix * Changed layout of component manager * DropdownV2 added to selectInputs * HTML column data type added * Table column icons added * Fix dropping widget width while dragging * Changed datepicker icon and added icons to table dropdown * Style: Update Accordion Component UI * Temp changes * Fix group selection in form * fix when dropping a component, shadow is coming on top of component manager. * improve performace on useGroupedTargetsScrollHandler * Fix * Review fixes * Minor changes * chore: update submodule references * Color swatches added icon/default and added disabled/loading state * Submodule update * Bugs solved * Fixes for Component sidebar * Custom theme related bug fixes * App Background Switch added * Submodule update * Submodule update * HTML fixes * Submodule update * Query breaking on Symbol fix * Import export property migration for Rangepicker & Textarea * Auto color pills not working for table select fix * Custom themes minor bugs * Submodule update * Minor fixes * Revamp pages in editor and viewer * bug fixes * merge base * fix conflicts * fix conflicts * bug fixes * Added swatches to page menu * Submodule update * Submodule update * Submodule update * Styling fixes * Changed few page styles * bug fixes * fix: pages icon and layout for right sidebar * fix: styling for pages menu * fix base styling * merge base * bug fixes * Bug fixes * Submodule update * Submodules updated * bug fixes * fix top styling of nav bar * Sass loader error fix * styles: correct styles to match the dsigns * Accordion design added with some minor styling fixes * fix: update default supported file of filepicker to any * fix: update styles mismatches * fix: hide min and max file count if multi file select is disabled * TJ Default changed to Tooljet Migration * Multiline code editor suggestions now close when out of view * add border to canvas * Dark theme link color fix for html column type * Spinner color fix * bug fixes * bug fixes * Submodules updated * update reference * Submodule update --------- Co-authored-by: Raman Kumar <k.raman1998@yahoo.in> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com> Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com> Co-authored-by: NishidhJain11 <nishidh@tooljet.com> Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com> Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
2025-06-27 12:42:34 +00:00
if (paramType === 'colorSwatches') {
onChange(modifiedValue);
}
2025-04-19 10:52:26 +00:00
} else {
setForceCodeBox(true);
onFxPress(true);
}
}}
dataCy={cyLabel}
/>
</div>
);
};
const fxClass = isEventManagerParam ? 'justify-content-start' : 'justify-content-end';
Custom themes (#13064) * feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267) * feat: tab draggble option and popover menu (#11267) * feat: tab scrollable arrows and tabItem logic(#11267) * feat: remove logs(#11267) * feat: Tabslayout name change(#11267) * fix: component update on Tabs * fix: tab text color update * feat: setTabDisable CSA added(#11267) * feat: added CSA for tab specific changes(#11267) * feat: added handle function for tab specific changes(#11267) * feat: shimmer for tab nav and icon chooser (#11267) * feat: icon for each tab in TabNav items (#11267) * feat: equal split width fix for each tab in TabNav items (#11267) * feat: styles for Tab Nav (#11267) * feat: slide options(#11267) * feat: fix radius (#11267) * feat: slider (#11267) * feat: fix slide direction (#11267) * feat: fix slide direction 2 (#11267) * feat: fix styles right side inspector view (#11267) * feat: nav ellipsis ... (#11267) * feat: children different for dynamic and non-dynamic (#11267) * feat:[tabsLayout] change default values in config (#11267) * feat:[tabsLayout] split and auto fix (#11267) * feat: fix styles accent and text (#11267) * feat: fix styles divider and more 2(#11267) * feat: fix styles divider and more 3(#11267) * feat: fix styles 4(#11267) * feat: fix styles 5(#11267) * feat: fix tab icon visibility 6 (#11267) * feat: modify name of property from id to Tab 7(#11267) * fixes and changes * fix: csa for tabs * new changes and fixes * fix: dynamic options sytling * v2 changes * add: new properties and styles to inspector for range slider * fixes of range slider * fix: styling * fix: styling of icons * fixed endvalue and startvalue problem * ColorSwatches for table * fix: styling * transition effect fix * fix: properties and migration * fix: slider functionality * fixed transition * new changes * visible,disable,loading,width * feat: merge appbuilder/sprint-11 with main * fix: styling * style: extend tabpane background to whole pane * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component * review changes * fix: tinycolor import * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Date, Time, DateTime & Date Range Picker components * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Form, Textarea & Horizontal Divider component * Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value * Fix: Resolved custom theming issues in different components * feat: Revamps file uploader widget * Fixes added * Custom theme extra code for extra components * Submodule commit change * Submodule commit change * Textinput theming added * Number input theming added * Email & Password Theming added * Textarea theming added * Error system status added along with rating theming * ToggleV2 theming added * Toggle, RadioButton & Error related theming added * Checkbox Theming added * Dropdown V2 and legacy theming added * Multiselect V2 theming added * Adding ux friendly error messages * Misc1 and Misc 2 theming added * Multiselect legacy theming added * Form components theming added * Subcontainer related issues * Subcontainers theming added * Tabs theming added * Filepicker theming added * Range slider theming added * Steps theming added * Submodule update * Package update * Added Header text, background and container background color * Submodule Update * Submodule update * Submodule update * Submodule update * Hover effect added * feat: Revamps file uploader widget * Adding ux friendly error messages * Adds style tab * Adds min file validation * Reset vs code * Adds support for theme * Base theme added * Base theme added * Base theme added * initial commit * fix * Fixes * Submodule update * Added auto color assign feature for multiselect/select in table * Table column popover going out of bounds fix * Changed layout of component manager * DropdownV2 added to selectInputs * HTML column data type added * Table column icons added * Fix dropping widget width while dragging * Changed datepicker icon and added icons to table dropdown * Style: Update Accordion Component UI * Temp changes * Fix group selection in form * fix when dropping a component, shadow is coming on top of component manager. * improve performace on useGroupedTargetsScrollHandler * Fix * Review fixes * Minor changes * chore: update submodule references * Color swatches added icon/default and added disabled/loading state * Submodule update * Bugs solved * Fixes for Component sidebar * Custom theme related bug fixes * App Background Switch added * Submodule update * Submodule update * HTML fixes * Submodule update * Query breaking on Symbol fix * Import export property migration for Rangepicker & Textarea * Auto color pills not working for table select fix * Custom themes minor bugs * Submodule update * Minor fixes * Revamp pages in editor and viewer * bug fixes * merge base * fix conflicts * fix conflicts * bug fixes * Added swatches to page menu * Submodule update * Submodule update * Submodule update * Styling fixes * Changed few page styles * bug fixes * fix: pages icon and layout for right sidebar * fix: styling for pages menu * fix base styling * merge base * bug fixes * Bug fixes * Submodule update * Submodules updated * bug fixes * fix top styling of nav bar * Sass loader error fix * styles: correct styles to match the dsigns * Accordion design added with some minor styling fixes * fix: update default supported file of filepicker to any * fix: update styles mismatches * fix: hide min and max file count if multi file select is disabled * TJ Default changed to Tooljet Migration * Multiline code editor suggestions now close when out of view * add border to canvas * Dark theme link color fix for html column type * Spinner color fix * bug fixes * bug fixes * Submodules updated * update reference * Submodule update --------- Co-authored-by: Raman Kumar <k.raman1998@yahoo.in> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com> Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com> Co-authored-by: NishidhJain11 <nishidh@tooljet.com> Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com> Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
2025-06-27 12:42:34 +00:00
feat: Form 2.0 (#12941) * init: Added resetOnSubmit, validateOnSubmit properties and exposed formData value * Added the generate form from dropdown menu on the inspector * feat: Added generate form button and fields section * Added the generate column popup UI * feat: Added UI for form fields * feat: Added the UI for new custom field * chore: Added refresh data and custom schema UI * feat: Added the util function to map the JSON to component * chore: cleanup and fixed bugs on dropdown * feat: Added fields property to the form config * feat: save generated fields on form * feat: generated child components from the JSON * fix: bugs on generating component from JSON * chore: added functionality for view properties and styles on field popover * feat: Added local state for add new custom fields * feat: Added logic to create component on submitting new custom field * fix: bugfies on creating a custom fields * feat: Handled grouping of data in the manage column modal * feat: Handled deletion case of the fields * fix: fixed bug on deleting the fields * chore: Updated the form fields logic to store only the necessary values and fetch the remaining values from the component directly using componentId * chore: updated logic to handle fx in mandatory and selected fields * feat: Added functionality to update the component from form fields * fix: bug on componentType typo * chore: written logic to handle the componentType update * feat: Added multiple updates including componentType change * chore: Added few more input components * chore: Moved the form fields property logic to new formComponentSlice * fix: creating a custom field while dragging across the parent components * chore: reverted the deletion logic a bit to properly fetch the parentID from the component * fix: while moving the component with more than 1 form field, it is clearing the complete list * fix: handle the case of moving component from canvas to form * chore: Removed unwanted UI blocks and added logic to conditionally display data section when custom schema is turned off * chore: cleaned up the Dropdownmenu component & added memo to avoid re-render * feat: Added query support and updated logic to display the columns on the modal * chore: cleanup & passed the correct columns to the component * chore: cleaned up the form status constant * chore: wrapped functions in a * chore: created a separate function to create components from form * chore: cleaned up the code to use the same code for component creation * chore: updated the logic for the form field component update * feat: Added functionality for single field popover icons & moved the single field creation out of common function to simplify the field update * fix: removed the deleted fields while refreshing the form * fix: updated the logic for the refresh fields * feat: Added logic to ignore the components to be deleted for regeration of form * chore: moved the component list supported to a constant * fix: Added a backfill logic for the fields property to handle without migration * fix: added a correct key for custom field * fix: Fixed issue on adding custom fields while regenrating the form * fix: Fixed issues on generating form fields while refreshing the FORM * chore: cleanedup the code * chore: Fixed path and merged with main * fix: avoided the multiple re-renders on FORM and fixed the state issue on data & formData * fix: removed the child components from inspector & added a support for query even if it is an array to generate the form * fix: fixed few bugs and design feedbacks * fix: Added a logic to set the width of the dropdown menu same as dropdown trigger * feat: updated the deprecated section for Form * feat: Added a logic to run query on selecting the query on generate form from * fix: changed the logic of selection handled in the manage column modal. The components will be created only if the column is selected. * refactor: moved the manage fields from button to an icon * fix: merged the field definition with the existing default data to show it on manage column popup * feat: focused the codehinter when the rawJson is selected on the dropdown menu * chore: cleanup * feat: update formComponentSlice with latest changes - Fixed getCurrentPageIndex usage in setComponentPropertyByComponentIds - Enhanced component batch operations functionality - Improved form field management logic * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * fix: fixed the issues due to merge conflict * feat: Removed componentMapping modal for rawJson. Added JsonSchema in the dropdown menu and moved the refresh button inside the modal footer for the queries * fix: Added a loader in the column mapping & updated the styles * chore: cleanup and moves to separate files * chore: cleanup the components * fix: modal was not poping up when I click a different query * chore: cleanedup `ColumnMappingComponent` * fix: fixed bugs on regenerating the forms, shown the loader while running the query, added support for multiple queries etc * chore: removed unwanted props * fix: fixed the undo/redo issues * fix: Fixed the issue on custom fields not showing up on the columnMappingModal * fix: bugfixes like duplicate field, maping popup stays on screen, visibility not working, form loader etc * fix: Fixed the height of the textare and fixed showing the main popover on click of make mandatory button * fix: Fixed the undo redo issue on deleting the form component * fix: removed the undo/redo while saving the form data section * chore: updated the default data for rawJSON * fix: Fixed bugs on toggleswitch, scroll, placeholder etc * fix: Added a condition to render the placeholder input * chore: taken care bito feedback * fix: fixed the modal closing issue * fix: Fixed the gutter issue as the canvas height needs to be updated once the child components are generated * chore: fixed design feedback * fix: Added hover to the modal body instead of each section
2025-06-27 14:38:15 +00:00
const renderedLabel = () => {
return (
<>
{paramLabel !== ' ' && !HIDDEN_CODE_HINTER_LABELS.includes(paramLabel) && (
<div className={`field ${className}`} data-cy={`${cyLabel}-widget-parameter-label`}>
<ToolTip
label={t(`widget.commonProperties.${camelCase(paramLabel)}`, paramLabel)}
meta={fieldMeta}
Custom themes (#13064) * feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267) * feat: tab draggble option and popover menu (#11267) * feat: tab scrollable arrows and tabItem logic(#11267) * feat: remove logs(#11267) * feat: Tabslayout name change(#11267) * fix: component update on Tabs * fix: tab text color update * feat: setTabDisable CSA added(#11267) * feat: added CSA for tab specific changes(#11267) * feat: added handle function for tab specific changes(#11267) * feat: shimmer for tab nav and icon chooser (#11267) * feat: icon for each tab in TabNav items (#11267) * feat: equal split width fix for each tab in TabNav items (#11267) * feat: styles for Tab Nav (#11267) * feat: slide options(#11267) * feat: fix radius (#11267) * feat: slider (#11267) * feat: fix slide direction (#11267) * feat: fix slide direction 2 (#11267) * feat: fix styles right side inspector view (#11267) * feat: nav ellipsis ... (#11267) * feat: children different for dynamic and non-dynamic (#11267) * feat:[tabsLayout] change default values in config (#11267) * feat:[tabsLayout] split and auto fix (#11267) * feat: fix styles accent and text (#11267) * feat: fix styles divider and more 2(#11267) * feat: fix styles divider and more 3(#11267) * feat: fix styles 4(#11267) * feat: fix styles 5(#11267) * feat: fix tab icon visibility 6 (#11267) * feat: modify name of property from id to Tab 7(#11267) * fixes and changes * fix: csa for tabs * new changes and fixes * fix: dynamic options sytling * v2 changes * add: new properties and styles to inspector for range slider * fixes of range slider * fix: styling * fix: styling of icons * fixed endvalue and startvalue problem * ColorSwatches for table * fix: styling * transition effect fix * fix: properties and migration * fix: slider functionality * fixed transition * new changes * visible,disable,loading,width * feat: merge appbuilder/sprint-11 with main * fix: styling * style: extend tabpane background to whole pane * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component * review changes * fix: tinycolor import * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Date, Time, DateTime & Date Range Picker components * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Form, Textarea & Horizontal Divider component * Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value * Fix: Resolved custom theming issues in different components * feat: Revamps file uploader widget * Fixes added * Custom theme extra code for extra components * Submodule commit change * Submodule commit change * Textinput theming added * Number input theming added * Email & Password Theming added * Textarea theming added * Error system status added along with rating theming * ToggleV2 theming added * Toggle, RadioButton & Error related theming added * Checkbox Theming added * Dropdown V2 and legacy theming added * Multiselect V2 theming added * Adding ux friendly error messages * Misc1 and Misc 2 theming added * Multiselect legacy theming added * Form components theming added * Subcontainer related issues * Subcontainers theming added * Tabs theming added * Filepicker theming added * Range slider theming added * Steps theming added * Submodule update * Package update * Added Header text, background and container background color * Submodule Update * Submodule update * Submodule update * Submodule update * Hover effect added * feat: Revamps file uploader widget * Adding ux friendly error messages * Adds style tab * Adds min file validation * Reset vs code * Adds support for theme * Base theme added * Base theme added * Base theme added * initial commit * fix * Fixes * Submodule update * Added auto color assign feature for multiselect/select in table * Table column popover going out of bounds fix * Changed layout of component manager * DropdownV2 added to selectInputs * HTML column data type added * Table column icons added * Fix dropping widget width while dragging * Changed datepicker icon and added icons to table dropdown * Style: Update Accordion Component UI * Temp changes * Fix group selection in form * fix when dropping a component, shadow is coming on top of component manager. * improve performace on useGroupedTargetsScrollHandler * Fix * Review fixes * Minor changes * chore: update submodule references * Color swatches added icon/default and added disabled/loading state * Submodule update * Bugs solved * Fixes for Component sidebar * Custom theme related bug fixes * App Background Switch added * Submodule update * Submodule update * HTML fixes * Submodule update * Query breaking on Symbol fix * Import export property migration for Rangepicker & Textarea * Auto color pills not working for table select fix * Custom themes minor bugs * Submodule update * Minor fixes * Revamp pages in editor and viewer * bug fixes * merge base * fix conflicts * fix conflicts * bug fixes * Added swatches to page menu * Submodule update * Submodule update * Submodule update * Styling fixes * Changed few page styles * bug fixes * fix: pages icon and layout for right sidebar * fix: styling for pages menu * fix base styling * merge base * bug fixes * Bug fixes * Submodule update * Submodules updated * bug fixes * fix top styling of nav bar * Sass loader error fix * styles: correct styles to match the dsigns * Accordion design added with some minor styling fixes * fix: update default supported file of filepicker to any * fix: update styles mismatches * fix: hide min and max file count if multi file select is disabled * TJ Default changed to Tooljet Migration * Multiline code editor suggestions now close when out of view * add border to canvas * Dark theme link color fix for html column type * Spinner color fix * bug fixes * bug fixes * Submodules updated * update reference * Submodule update --------- Co-authored-by: Raman Kumar <k.raman1998@yahoo.in> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com> Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com> Co-authored-by: NishidhJain11 <nishidh@tooljet.com> Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com> Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
2025-06-27 12:42:34 +00:00
labelClass={`tj-text-xsm color-slate12 ${codeShow ? 'mb-2' : 'mb-0'} ${
darkMode && 'color-whitish-darkmode'
}`}
/>
feat: Form 2.0 (#12941) * init: Added resetOnSubmit, validateOnSubmit properties and exposed formData value * Added the generate form from dropdown menu on the inspector * feat: Added generate form button and fields section * Added the generate column popup UI * feat: Added UI for form fields * feat: Added the UI for new custom field * chore: Added refresh data and custom schema UI * feat: Added the util function to map the JSON to component * chore: cleanup and fixed bugs on dropdown * feat: Added fields property to the form config * feat: save generated fields on form * feat: generated child components from the JSON * fix: bugs on generating component from JSON * chore: added functionality for view properties and styles on field popover * feat: Added local state for add new custom fields * feat: Added logic to create component on submitting new custom field * fix: bugfies on creating a custom fields * feat: Handled grouping of data in the manage column modal * feat: Handled deletion case of the fields * fix: fixed bug on deleting the fields * chore: Updated the form fields logic to store only the necessary values and fetch the remaining values from the component directly using componentId * chore: updated logic to handle fx in mandatory and selected fields * feat: Added functionality to update the component from form fields * fix: bug on componentType typo * chore: written logic to handle the componentType update * feat: Added multiple updates including componentType change * chore: Added few more input components * chore: Moved the form fields property logic to new formComponentSlice * fix: creating a custom field while dragging across the parent components * chore: reverted the deletion logic a bit to properly fetch the parentID from the component * fix: while moving the component with more than 1 form field, it is clearing the complete list * fix: handle the case of moving component from canvas to form * chore: Removed unwanted UI blocks and added logic to conditionally display data section when custom schema is turned off * chore: cleaned up the Dropdownmenu component & added memo to avoid re-render * feat: Added query support and updated logic to display the columns on the modal * chore: cleanup & passed the correct columns to the component * chore: cleaned up the form status constant * chore: wrapped functions in a * chore: created a separate function to create components from form * chore: cleaned up the code to use the same code for component creation * chore: updated the logic for the form field component update * feat: Added functionality for single field popover icons & moved the single field creation out of common function to simplify the field update * fix: removed the deleted fields while refreshing the form * fix: updated the logic for the refresh fields * feat: Added logic to ignore the components to be deleted for regeration of form * chore: moved the component list supported to a constant * fix: Added a backfill logic for the fields property to handle without migration * fix: added a correct key for custom field * fix: Fixed issue on adding custom fields while regenrating the form * fix: Fixed issues on generating form fields while refreshing the FORM * chore: cleanedup the code * chore: Fixed path and merged with main * fix: avoided the multiple re-renders on FORM and fixed the state issue on data & formData * fix: removed the child components from inspector & added a support for query even if it is an array to generate the form * fix: fixed few bugs and design feedbacks * fix: Added a logic to set the width of the dropdown menu same as dropdown trigger * feat: updated the deprecated section for Form * feat: Added a logic to run query on selecting the query on generate form from * fix: changed the logic of selection handled in the manage column modal. The components will be created only if the column is selected. * refactor: moved the manage fields from button to an icon * fix: merged the field definition with the existing default data to show it on manage column popup * feat: focused the codehinter when the rawJson is selected on the dropdown menu * chore: cleanup * feat: update formComponentSlice with latest changes - Fixed getCurrentPageIndex usage in setComponentPropertyByComponentIds - Enhanced component batch operations functionality - Improved form field management logic * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * fix: fixed the issues due to merge conflict * feat: Removed componentMapping modal for rawJson. Added JsonSchema in the dropdown menu and moved the refresh button inside the modal footer for the queries * fix: Added a loader in the column mapping & updated the styles * chore: cleanup and moves to separate files * chore: cleanup the components * fix: modal was not poping up when I click a different query * chore: cleanedup `ColumnMappingComponent` * fix: fixed bugs on regenerating the forms, shown the loader while running the query, added support for multiple queries etc * chore: removed unwanted props * fix: fixed the undo/redo issues * fix: Fixed the issue on custom fields not showing up on the columnMappingModal * fix: bugfixes like duplicate field, maping popup stays on screen, visibility not working, form loader etc * fix: Fixed the height of the textare and fixed showing the main popover on click of make mandatory button * fix: Fixed the undo redo issue on deleting the form component * fix: removed the undo/redo while saving the form data section * chore: updated the default data for rawJSON * fix: Fixed bugs on toggleswitch, scroll, placeholder etc * fix: Added a condition to render the placeholder input * chore: taken care bito feedback * fix: fixed the modal closing issue * fix: Fixed the gutter issue as the canvas height needs to be updated once the child components are generated * chore: fixed design feedback * fix: Added hover to the modal body instead of each section
2025-06-27 14:38:15 +00:00
{isDeprecated && (
<span className={'list-item-deprecated-column-type'}>
<Icon name={'warning'} height={14} width={14} fill="#DB4324" />
</span>
)}
</div>
)}
feat: Form 2.0 (#12941) * init: Added resetOnSubmit, validateOnSubmit properties and exposed formData value * Added the generate form from dropdown menu on the inspector * feat: Added generate form button and fields section * Added the generate column popup UI * feat: Added UI for form fields * feat: Added the UI for new custom field * chore: Added refresh data and custom schema UI * feat: Added the util function to map the JSON to component * chore: cleanup and fixed bugs on dropdown * feat: Added fields property to the form config * feat: save generated fields on form * feat: generated child components from the JSON * fix: bugs on generating component from JSON * chore: added functionality for view properties and styles on field popover * feat: Added local state for add new custom fields * feat: Added logic to create component on submitting new custom field * fix: bugfies on creating a custom fields * feat: Handled grouping of data in the manage column modal * feat: Handled deletion case of the fields * fix: fixed bug on deleting the fields * chore: Updated the form fields logic to store only the necessary values and fetch the remaining values from the component directly using componentId * chore: updated logic to handle fx in mandatory and selected fields * feat: Added functionality to update the component from form fields * fix: bug on componentType typo * chore: written logic to handle the componentType update * feat: Added multiple updates including componentType change * chore: Added few more input components * chore: Moved the form fields property logic to new formComponentSlice * fix: creating a custom field while dragging across the parent components * chore: reverted the deletion logic a bit to properly fetch the parentID from the component * fix: while moving the component with more than 1 form field, it is clearing the complete list * fix: handle the case of moving component from canvas to form * chore: Removed unwanted UI blocks and added logic to conditionally display data section when custom schema is turned off * chore: cleaned up the Dropdownmenu component & added memo to avoid re-render * feat: Added query support and updated logic to display the columns on the modal * chore: cleanup & passed the correct columns to the component * chore: cleaned up the form status constant * chore: wrapped functions in a * chore: created a separate function to create components from form * chore: cleaned up the code to use the same code for component creation * chore: updated the logic for the form field component update * feat: Added functionality for single field popover icons & moved the single field creation out of common function to simplify the field update * fix: removed the deleted fields while refreshing the form * fix: updated the logic for the refresh fields * feat: Added logic to ignore the components to be deleted for regeration of form * chore: moved the component list supported to a constant * fix: Added a backfill logic for the fields property to handle without migration * fix: added a correct key for custom field * fix: Fixed issue on adding custom fields while regenrating the form * fix: Fixed issues on generating form fields while refreshing the FORM * chore: cleanedup the code * chore: Fixed path and merged with main * fix: avoided the multiple re-renders on FORM and fixed the state issue on data & formData * fix: removed the child components from inspector & added a support for query even if it is an array to generate the form * fix: fixed few bugs and design feedbacks * fix: Added a logic to set the width of the dropdown menu same as dropdown trigger * feat: updated the deprecated section for Form * feat: Added a logic to run query on selecting the query on generate form from * fix: changed the logic of selection handled in the manage column modal. The components will be created only if the column is selected. * refactor: moved the manage fields from button to an icon * fix: merged the field definition with the existing default data to show it on manage column popup * feat: focused the codehinter when the rawJson is selected on the dropdown menu * chore: cleanup * feat: update formComponentSlice with latest changes - Fixed getCurrentPageIndex usage in setComponentPropertyByComponentIds - Enhanced component batch operations functionality - Improved form field management logic * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * fix: fixed the issues due to merge conflict * feat: Removed componentMapping modal for rawJson. Added JsonSchema in the dropdown menu and moved the refresh button inside the modal footer for the queries * fix: Added a loader in the column mapping & updated the styles * chore: cleanup and moves to separate files * chore: cleanup the components * fix: modal was not poping up when I click a different query * chore: cleanedup `ColumnMappingComponent` * fix: fixed bugs on regenerating the forms, shown the loader while running the query, added support for multiple queries etc * chore: removed unwanted props * fix: fixed the undo/redo issues * fix: Fixed the issue on custom fields not showing up on the columnMappingModal * fix: bugfixes like duplicate field, maping popup stays on screen, visibility not working, form loader etc * fix: Fixed the height of the textare and fixed showing the main popover on click of make mandatory button * fix: Fixed the undo redo issue on deleting the form component * fix: removed the undo/redo while saving the form data section * chore: updated the default data for rawJSON * fix: Fixed bugs on toggleswitch, scroll, placeholder etc * fix: Added a condition to render the placeholder input * chore: taken care bito feedback * fix: fixed the modal closing issue * fix: Fixed the gutter issue as the canvas height needs to be updated once the child components are generated * chore: fixed design feedback * fix: Added hover to the modal body instead of each section
2025-06-27 14:38:15 +00:00
</>
);
};
const renderDynamicFx = () => {
if (codeShow) return null;
return (
<DynamicFxTypeRenderer
value={!error ? value : ''}
onChange={onChange}
paramName={paramName}
paramLabel={paramLabel}
paramType={paramType}
forceCodeBox={() => {
setForceCodeBox(true);
onFxPress(true);
}}
meta={fieldMeta}
cyLabel={cyLabel}
styleDefinition={styleDefinition}
component={component}
onVisibilityChange={onVisibilityChange}
/>
);
};
return (
<div className={cx({ 'codeShow-active': codeShow }, 'wrapper-div-code-editor')}>
<div className={cx('d-flex align-items-center justify-content-between code-flex-wrapper')}>
{renderedLabel()}
<div className={`${(paramType ?? 'code') === 'code' ? 'd-none' : ''} flex-grow-1`}>
<div style={{ marginBottom: codeShow ? '0.5rem' : '0px' }} className={`d-flex align-items-center ${fxClass}`}>
2025-04-19 10:52:26 +00:00
{renderFx()}
</div>
</div>
feat: Form 2.0 (#12941) * init: Added resetOnSubmit, validateOnSubmit properties and exposed formData value * Added the generate form from dropdown menu on the inspector * feat: Added generate form button and fields section * Added the generate column popup UI * feat: Added UI for form fields * feat: Added the UI for new custom field * chore: Added refresh data and custom schema UI * feat: Added the util function to map the JSON to component * chore: cleanup and fixed bugs on dropdown * feat: Added fields property to the form config * feat: save generated fields on form * feat: generated child components from the JSON * fix: bugs on generating component from JSON * chore: added functionality for view properties and styles on field popover * feat: Added local state for add new custom fields * feat: Added logic to create component on submitting new custom field * fix: bugfies on creating a custom fields * feat: Handled grouping of data in the manage column modal * feat: Handled deletion case of the fields * fix: fixed bug on deleting the fields * chore: Updated the form fields logic to store only the necessary values and fetch the remaining values from the component directly using componentId * chore: updated logic to handle fx in mandatory and selected fields * feat: Added functionality to update the component from form fields * fix: bug on componentType typo * chore: written logic to handle the componentType update * feat: Added multiple updates including componentType change * chore: Added few more input components * chore: Moved the form fields property logic to new formComponentSlice * fix: creating a custom field while dragging across the parent components * chore: reverted the deletion logic a bit to properly fetch the parentID from the component * fix: while moving the component with more than 1 form field, it is clearing the complete list * fix: handle the case of moving component from canvas to form * chore: Removed unwanted UI blocks and added logic to conditionally display data section when custom schema is turned off * chore: cleaned up the Dropdownmenu component & added memo to avoid re-render * feat: Added query support and updated logic to display the columns on the modal * chore: cleanup & passed the correct columns to the component * chore: cleaned up the form status constant * chore: wrapped functions in a * chore: created a separate function to create components from form * chore: cleaned up the code to use the same code for component creation * chore: updated the logic for the form field component update * feat: Added functionality for single field popover icons & moved the single field creation out of common function to simplify the field update * fix: removed the deleted fields while refreshing the form * fix: updated the logic for the refresh fields * feat: Added logic to ignore the components to be deleted for regeration of form * chore: moved the component list supported to a constant * fix: Added a backfill logic for the fields property to handle without migration * fix: added a correct key for custom field * fix: Fixed issue on adding custom fields while regenrating the form * fix: Fixed issues on generating form fields while refreshing the FORM * chore: cleanedup the code * chore: Fixed path and merged with main * fix: avoided the multiple re-renders on FORM and fixed the state issue on data & formData * fix: removed the child components from inspector & added a support for query even if it is an array to generate the form * fix: fixed few bugs and design feedbacks * fix: Added a logic to set the width of the dropdown menu same as dropdown trigger * feat: updated the deprecated section for Form * feat: Added a logic to run query on selecting the query on generate form from * fix: changed the logic of selection handled in the manage column modal. The components will be created only if the column is selected. * refactor: moved the manage fields from button to an icon * fix: merged the field definition with the existing default data to show it on manage column popup * feat: focused the codehinter when the rawJson is selected on the dropdown menu * chore: cleanup * feat: update formComponentSlice with latest changes - Fixed getCurrentPageIndex usage in setComponentPropertyByComponentIds - Enhanced component batch operations functionality - Improved form field management logic * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * fix: fixed the issues due to merge conflict * feat: Removed componentMapping modal for rawJson. Added JsonSchema in the dropdown menu and moved the refresh button inside the modal footer for the queries * fix: Added a loader in the column mapping & updated the styles * chore: cleanup and moves to separate files * chore: cleanup the components * fix: modal was not poping up when I click a different query * chore: cleanedup `ColumnMappingComponent` * fix: fixed bugs on regenerating the forms, shown the loader while running the query, added support for multiple queries etc * chore: removed unwanted props * fix: fixed the undo/redo issues * fix: Fixed the issue on custom fields not showing up on the columnMappingModal * fix: bugfixes like duplicate field, maping popup stays on screen, visibility not working, form loader etc * fix: Fixed the height of the textare and fixed showing the main popover on click of make mandatory button * fix: Fixed the undo redo issue on deleting the form component * fix: removed the undo/redo while saving the form data section * chore: updated the default data for rawJSON * fix: Fixed bugs on toggleswitch, scroll, placeholder etc * fix: Added a condition to render the placeholder input * chore: taken care bito feedback * fix: fixed the modal closing issue * fix: Fixed the gutter issue as the canvas height needs to be updated once the child components are generated * chore: fixed design feedback * fix: Added hover to the modal body instead of each section
2025-06-27 14:38:15 +00:00
{!newLine && renderDynamicFx()}
</div>
feat: Form 2.0 (#12941) * init: Added resetOnSubmit, validateOnSubmit properties and exposed formData value * Added the generate form from dropdown menu on the inspector * feat: Added generate form button and fields section * Added the generate column popup UI * feat: Added UI for form fields * feat: Added the UI for new custom field * chore: Added refresh data and custom schema UI * feat: Added the util function to map the JSON to component * chore: cleanup and fixed bugs on dropdown * feat: Added fields property to the form config * feat: save generated fields on form * feat: generated child components from the JSON * fix: bugs on generating component from JSON * chore: added functionality for view properties and styles on field popover * feat: Added local state for add new custom fields * feat: Added logic to create component on submitting new custom field * fix: bugfies on creating a custom fields * feat: Handled grouping of data in the manage column modal * feat: Handled deletion case of the fields * fix: fixed bug on deleting the fields * chore: Updated the form fields logic to store only the necessary values and fetch the remaining values from the component directly using componentId * chore: updated logic to handle fx in mandatory and selected fields * feat: Added functionality to update the component from form fields * fix: bug on componentType typo * chore: written logic to handle the componentType update * feat: Added multiple updates including componentType change * chore: Added few more input components * chore: Moved the form fields property logic to new formComponentSlice * fix: creating a custom field while dragging across the parent components * chore: reverted the deletion logic a bit to properly fetch the parentID from the component * fix: while moving the component with more than 1 form field, it is clearing the complete list * fix: handle the case of moving component from canvas to form * chore: Removed unwanted UI blocks and added logic to conditionally display data section when custom schema is turned off * chore: cleaned up the Dropdownmenu component & added memo to avoid re-render * feat: Added query support and updated logic to display the columns on the modal * chore: cleanup & passed the correct columns to the component * chore: cleaned up the form status constant * chore: wrapped functions in a * chore: created a separate function to create components from form * chore: cleaned up the code to use the same code for component creation * chore: updated the logic for the form field component update * feat: Added functionality for single field popover icons & moved the single field creation out of common function to simplify the field update * fix: removed the deleted fields while refreshing the form * fix: updated the logic for the refresh fields * feat: Added logic to ignore the components to be deleted for regeration of form * chore: moved the component list supported to a constant * fix: Added a backfill logic for the fields property to handle without migration * fix: added a correct key for custom field * fix: Fixed issue on adding custom fields while regenrating the form * fix: Fixed issues on generating form fields while refreshing the FORM * chore: cleanedup the code * chore: Fixed path and merged with main * fix: avoided the multiple re-renders on FORM and fixed the state issue on data & formData * fix: removed the child components from inspector & added a support for query even if it is an array to generate the form * fix: fixed few bugs and design feedbacks * fix: Added a logic to set the width of the dropdown menu same as dropdown trigger * feat: updated the deprecated section for Form * feat: Added a logic to run query on selecting the query on generate form from * fix: changed the logic of selection handled in the manage column modal. The components will be created only if the column is selected. * refactor: moved the manage fields from button to an icon * fix: merged the field definition with the existing default data to show it on manage column popup * feat: focused the codehinter when the rawJson is selected on the dropdown menu * chore: cleanup * feat: update formComponentSlice with latest changes - Fixed getCurrentPageIndex usage in setComponentPropertyByComponentIds - Enhanced component batch operations functionality - Improved form field management logic * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * Reverted the git changes reflected on the form PR * fix: fixed the issues due to merge conflict * feat: Removed componentMapping modal for rawJson. Added JsonSchema in the dropdown menu and moved the refresh button inside the modal footer for the queries * fix: Added a loader in the column mapping & updated the styles * chore: cleanup and moves to separate files * chore: cleanup the components * fix: modal was not poping up when I click a different query * chore: cleanedup `ColumnMappingComponent` * fix: fixed bugs on regenerating the forms, shown the loader while running the query, added support for multiple queries etc * chore: removed unwanted props * fix: fixed the undo/redo issues * fix: Fixed the issue on custom fields not showing up on the columnMappingModal * fix: bugfixes like duplicate field, maping popup stays on screen, visibility not working, form loader etc * fix: Fixed the height of the textare and fixed showing the main popover on click of make mandatory button * fix: Fixed the undo redo issue on deleting the form component * fix: removed the undo/redo while saving the form data section * chore: updated the default data for rawJSON * fix: Fixed bugs on toggleswitch, scroll, placeholder etc * fix: Added a condition to render the placeholder input * chore: taken care bito feedback * fix: fixed the modal closing issue * fix: Fixed the gutter issue as the canvas height needs to be updated once the child components are generated * chore: fixed design feedback * fix: Added hover to the modal body instead of each section
2025-06-27 14:38:15 +00:00
{newLine && renderDynamicFx()}
{codeShow && (
<div className={`row custom-row`} style={{ display: codeShow ? 'flex' : 'none' }}>
<div className={`col code-hinter-col`}>
<div className="d-flex">
Custom themes (#13064) * feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267) * feat: tab draggble option and popover menu (#11267) * feat: tab scrollable arrows and tabItem logic(#11267) * feat: remove logs(#11267) * feat: Tabslayout name change(#11267) * fix: component update on Tabs * fix: tab text color update * feat: setTabDisable CSA added(#11267) * feat: added CSA for tab specific changes(#11267) * feat: added handle function for tab specific changes(#11267) * feat: shimmer for tab nav and icon chooser (#11267) * feat: icon for each tab in TabNav items (#11267) * feat: equal split width fix for each tab in TabNav items (#11267) * feat: styles for Tab Nav (#11267) * feat: slide options(#11267) * feat: fix radius (#11267) * feat: slider (#11267) * feat: fix slide direction (#11267) * feat: fix slide direction 2 (#11267) * feat: fix styles right side inspector view (#11267) * feat: nav ellipsis ... (#11267) * feat: children different for dynamic and non-dynamic (#11267) * feat:[tabsLayout] change default values in config (#11267) * feat:[tabsLayout] split and auto fix (#11267) * feat: fix styles accent and text (#11267) * feat: fix styles divider and more 2(#11267) * feat: fix styles divider and more 3(#11267) * feat: fix styles 4(#11267) * feat: fix styles 5(#11267) * feat: fix tab icon visibility 6 (#11267) * feat: modify name of property from id to Tab 7(#11267) * fixes and changes * fix: csa for tabs * new changes and fixes * fix: dynamic options sytling * v2 changes * add: new properties and styles to inspector for range slider * fixes of range slider * fix: styling * fix: styling of icons * fixed endvalue and startvalue problem * ColorSwatches for table * fix: styling * transition effect fix * fix: properties and migration * fix: slider functionality * fixed transition * new changes * visible,disable,loading,width * feat: merge appbuilder/sprint-11 with main * fix: styling * style: extend tabpane background to whole pane * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component * review changes * fix: tinycolor import * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Date, Time, DateTime & Date Range Picker components * [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable Changes done for: Form, Textarea & Horizontal Divider component * Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value * Fix: Resolved custom theming issues in different components * feat: Revamps file uploader widget * Fixes added * Custom theme extra code for extra components * Submodule commit change * Submodule commit change * Textinput theming added * Number input theming added * Email & Password Theming added * Textarea theming added * Error system status added along with rating theming * ToggleV2 theming added * Toggle, RadioButton & Error related theming added * Checkbox Theming added * Dropdown V2 and legacy theming added * Multiselect V2 theming added * Adding ux friendly error messages * Misc1 and Misc 2 theming added * Multiselect legacy theming added * Form components theming added * Subcontainer related issues * Subcontainers theming added * Tabs theming added * Filepicker theming added * Range slider theming added * Steps theming added * Submodule update * Package update * Added Header text, background and container background color * Submodule Update * Submodule update * Submodule update * Submodule update * Hover effect added * feat: Revamps file uploader widget * Adding ux friendly error messages * Adds style tab * Adds min file validation * Reset vs code * Adds support for theme * Base theme added * Base theme added * Base theme added * initial commit * fix * Fixes * Submodule update * Added auto color assign feature for multiselect/select in table * Table column popover going out of bounds fix * Changed layout of component manager * DropdownV2 added to selectInputs * HTML column data type added * Table column icons added * Fix dropping widget width while dragging * Changed datepicker icon and added icons to table dropdown * Style: Update Accordion Component UI * Temp changes * Fix group selection in form * fix when dropping a component, shadow is coming on top of component manager. * improve performace on useGroupedTargetsScrollHandler * Fix * Review fixes * Minor changes * chore: update submodule references * Color swatches added icon/default and added disabled/loading state * Submodule update * Bugs solved * Fixes for Component sidebar * Custom theme related bug fixes * App Background Switch added * Submodule update * Submodule update * HTML fixes * Submodule update * Query breaking on Symbol fix * Import export property migration for Rangepicker & Textarea * Auto color pills not working for table select fix * Custom themes minor bugs * Submodule update * Minor fixes * Revamp pages in editor and viewer * bug fixes * merge base * fix conflicts * fix conflicts * bug fixes * Added swatches to page menu * Submodule update * Submodule update * Submodule update * Styling fixes * Changed few page styles * bug fixes * fix: pages icon and layout for right sidebar * fix: styling for pages menu * fix base styling * merge base * bug fixes * Bug fixes * Submodule update * Submodules updated * bug fixes * fix top styling of nav bar * Sass loader error fix * styles: correct styles to match the dsigns * Accordion design added with some minor styling fixes * fix: update default supported file of filepicker to any * fix: update styles mismatches * fix: hide min and max file count if multi file select is disabled * TJ Default changed to Tooljet Migration * Multiline code editor suggestions now close when out of view * add border to canvas * Dark theme link color fix for html column type * Spinner color fix * bug fixes * bug fixes * Submodules updated * update reference * Submodule update --------- Co-authored-by: Raman Kumar <k.raman1998@yahoo.in> Co-authored-by: Vijaykant Yadav <vjy239@gmail.com> Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com> Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com> Co-authored-by: NishidhJain11 <nishidh@tooljet.com> Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com> Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
2025-06-27 12:42:34 +00:00
<SingleLineCodeEditor {...props} initialValue={modifiedValue} />
</div>
</div>
</div>
)}
</div>
);
};
SingleLineCodeEditor.Editor = EditorInput;
SingleLineCodeEditor.EditorBridge = DynamicEditorBridge;
export default SingleLineCodeEditor;