{"version":3,"file":"js/8123-62901d9c7b6cd2ede05b.js","mappings":"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","sources":["webpack://app/./node_modules/@platform-ui/design-system/dist/esm/Dropdown/DropdownItem/index.js","webpack://app/./node_modules/@platform-ui/design-system/dist/esm/Dropdown/index.js","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/Editor/Editor.tsx","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/Editor/EditorMenuControls.tsx","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/Editor/SuggestionList.tsx","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/Editor/mentionSuggestionOptions.ts","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/Editor/useExtensions.ts","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/actionTypes.ts","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/components/IntegrationAppForm.tsx","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/components/Tabs/LocaleTab.tsx","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/components/Tabs/ServiceConfigurationTab.tsx","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/components/Tabs/UIConfigurationTab.tsx","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/components/Tabs/components/EditorBlock.tsx","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/components/Tabs/components/FieldBlock.tsx","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/components/Tabs/components/LocaleBlock.tsx","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/components/Tabs/components/MappingFields.tsx","webpack://app/./app/javascript/bundles/Admin/IntegrationApps/components/Tabs/components/types.ts"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/extends\";\nimport * as React from 'react';\nimport { MenuItem } from '@mui/material';\n\nvar DropdownItem = function DropdownItem(_ref) {\n var children = _ref.children,\n dsOnClick = _ref.dsOnClick,\n e2e = _ref.e2e,\n label = _ref.label;\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n onClick: dsOnClick\n }, e2e && {\n 'data-e2e': e2e\n }), children, label);\n};\n\nexport default DropdownItem;\n//# sourceMappingURL=index.js.map","import _extends from \"@babel/runtime/helpers/extends\";\nimport * as React from 'react';\nimport { Menu, useTheme } from '@mui/material';\n\nvar Dropdown = function Dropdown(_ref) {\n var children = _ref.children,\n _ref$anchorEl = _ref.anchorEl,\n anchorEl = _ref$anchorEl === void 0 ? null : _ref$anchorEl,\n _ref$open = _ref.open,\n open = _ref$open === void 0 ? false : _ref$open,\n dsOnClose = _ref.dsOnClose,\n e2e = _ref.e2e;\n var theme = useTheme();\n var anchorOrigin = React.useRef({\n vertical: 'bottom',\n horizontal: 'left'\n });\n var transformOrigin = React.useRef({\n vertical: 'top',\n horizontal: 'left'\n });\n\n if (!anchorEl) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Menu, _extends({\n anchorEl: anchorEl,\n sx: {\n marginTop: theme.spacing(1)\n }\n }, e2e && {\n 'data-e2e': e2e\n }, {\n anchorOrigin: anchorOrigin.current,\n transformOrigin: transformOrigin.current,\n open: open,\n onClose: dsOnClose\n }), children);\n};\n\nexport default Dropdown;\n//# sourceMappingURL=index.js.map","import { Lock, LockOpen, TextFields } from \"@mui/icons-material\";\nimport { Box, Button, Stack, Typography } from \"@mui/material\";\nimport type { EditorOptions } from \"@tiptap/core\";\nimport { Dispatch, useCallback, useRef, useState } from \"react\";\nimport {\n LinkBubbleMenu,\n MenuButton,\n RichTextEditor,\n RichTextReadOnly,\n TableBubbleMenu,\n insertImages,\n type RichTextEditorRef,\n} from \"mui-tiptap\";\nimport EditorMenuControls from \"./EditorMenuControls\";\nimport useExtensions from \"./useExtensions\";\nimport React from \"react\";\nimport { Action, useStoreContext } from \"../../../Store\";\nimport { IntegrationAppFormState } from \"../state\";\nimport { SET_OVERVIEW } from \"../actionTypes\";\n\nfunction fileListToImageFiles(fileList: FileList): File[] {\n // You may want to use a package like attr-accept\n // (https://www.npmjs.com/package/attr-accept) to restrict to certain file\n // types.\n return Array.from(fileList).filter((file) => {\n const mimeType = (file.type || \"\").toLowerCase();\n return mimeType.startsWith(\"image/\");\n });\n}\n\nexport default function Editor(props: any) {\n const { state, dispatch } = useStoreContext() as { state: IntegrationAppFormState, dispatch: Dispatch };\n const extensions = useExtensions({\n placeholder: \"Add your own content here...\",\n });\n const rteRef = useRef(null);\n const [isEditable, setIsEditable] = useState(true);\n const [showMenuBar, setShowMenuBar] = useState(true);\n const exampleContent = props.exampleContent;\n const [submittedContent, setSubmittedContent] = useState(\"\");\n\n function updateEditor(editorContent: string) {\n dispatch({\n type: SET_OVERVIEW,\n payload: {\n locale: props.locale,\n contentType: props.updateContent,\n content: editorContent,\n },\n });\n }\n\n const handleNewImageFiles = useCallback(\n (files: File[], insertPosition?: number): void => {\n if (!rteRef.current?.editor) {\n return;\n }\n\n // For the sake of a demo, we don't have a server to upload the files to,\n // so we'll instead convert each one to a local \"temporary\" object URL.\n // This will not persist properly in a production setting. You should\n // instead upload the image files to your server, or perhaps convert the\n // images to bas64 if you would like to encode the image data directly\n // into the editor content, though that can make the editor content very\n // large. You will probably want to use the same upload function here as\n // for the MenuButtonImageUpload `onUploadFiles` prop.\n const attributesForImageFiles = files.map((file) => ({\n src: URL.createObjectURL(file),\n alt: file.name,\n }));\n\n insertImages({\n images: attributesForImageFiles,\n editor: rteRef.current.editor,\n insertPosition,\n });\n },\n []\n );\n\n // Allow for dropping images into the editor\n const handleDrop: NonNullable =\n useCallback(\n (view, event, _slice, _moved) => {\n if (!(event instanceof DragEvent) || !event.dataTransfer) {\n return false;\n }\n\n const imageFiles = fileListToImageFiles(event.dataTransfer.files);\n if (imageFiles.length > 0) {\n const insertPosition = view.posAtCoords({\n left: event.clientX,\n top: event.clientY,\n })?.pos;\n\n handleNewImageFiles(imageFiles, insertPosition);\n\n // Return true to treat the event as handled. We call preventDefault\n // ourselves for good measure.\n event.preventDefault();\n return true;\n }\n\n return false;\n },\n [handleNewImageFiles]\n );\n\n // Allow for pasting images\n const handlePaste: NonNullable =\n useCallback(\n (_view, event, _slice) => {\n if (!event.clipboardData) {\n return false;\n }\n\n const pastedImageFiles = fileListToImageFiles(\n event.clipboardData.files\n );\n if (pastedImageFiles.length > 0) {\n handleNewImageFiles(pastedImageFiles);\n // Return true to mark the paste event as handled. This can for\n // instance prevent redundant copies of the same image showing up,\n // like if you right-click and copy an image from within the editor\n // (in which case it will be added to the clipboard both as a file and\n // as HTML, which Tiptap would otherwise separately parse.)\n return true;\n }\n\n // We return false here to allow the standard paste-handler to run.\n return false;\n },\n [handleNewImageFiles]\n );\n\n const [content, setContent] = useState(exampleContent);\n\n return (\n <>\n \n { props.updateContent ? \n {updateEditor(rteRef.current?.editor?.getHTML() ?? \"\")}}\n extensions={extensions}\n content={content}\n editable={isEditable}\n editorProps={{\n handleDrop: handleDrop,\n handlePaste: handlePaste,\n }}\n renderControls={() => }\n RichTextFieldProps={{\n // The \"outlined\" variant is the default (shown here only as\n // example), but can be changed to \"standard\" to remove the outlined\n // field border from the editor\n variant: \"outlined\",\n MenuBarProps: {\n hide: !showMenuBar,\n },\n // Below is an example of adding a toggle within the outlined field\n // for showing/hiding the editor menu bar, and a \"submit\" button for\n // saving/viewing the HTML content\n footer: (\n theme.palette.divider,\n py: 1,\n px: 1.5,\n }}\n >\n \n setShowMenuBar((currentState) => !currentState)\n }\n selected={showMenuBar}\n IconComponent={TextFields}\n />\n\n setIsEditable((currentState) => !currentState)}\n selected={!isEditable}\n IconComponent={isEditable ? Lock : LockOpen}\n />\n \n ),\n }}\n >\n {() => (\n <>\n \n \n \n )}\n \n :\n }\n RichTextFieldProps={{\n // The \"outlined\" variant is the default (shown here only as\n // example), but can be changed to \"standard\" to remove the outlined\n // field border from the editor\n variant: \"outlined\",\n MenuBarProps: {\n hide: !showMenuBar,\n },\n // Below is an example of adding a toggle within the outlined field\n // for showing/hiding the editor menu bar, and a \"submit\" button for\n // saving/viewing the HTML content\n footer: (\n theme.palette.divider,\n py: 1,\n px: 1.5,\n }}\n >\n \n setShowMenuBar((currentState) => !currentState)\n }\n selected={showMenuBar}\n IconComponent={TextFields}\n />\n\n setIsEditable((currentState) => !currentState)}\n selected={!isEditable}\n IconComponent={isEditable ? Lock : LockOpen}\n />\n\n {\n setSubmittedContent(\n rteRef.current?.editor?.getHTML() ?? \"\"\n );\n }}\n >\n Save\n \n \n ),\n }}\n >\n {() => (\n <>\n \n \n \n )}\n \n }\n \n\n {!props.updateContent && \n Saved result:\n }\n\n {submittedContent ? (\n <>\n
\n            {submittedContent}\n          
\n\n \n \n Read-only saved snapshot:\n \n\n \n \n \n ) : (\n <>\n {!props.updateContent && \"Press “Save” above to show the HTML markup for the editor content. Typically you’d use a similar editor.getHTML() approach to save your data in a form.\"}\n \n )}\n \n );\n}\n","import { useTheme } from \"@mui/material\";\nimport {\n MenuButtonAddTable,\n MenuButtonBlockquote,\n MenuButtonBold,\n MenuButtonBulletedList,\n MenuButtonCode,\n MenuButtonCodeBlock,\n MenuButtonEditLink,\n MenuButtonHighlightColor,\n MenuButtonHorizontalRule,\n MenuButtonImageUpload,\n MenuButtonIndent,\n MenuButtonItalic,\n MenuButtonOrderedList,\n MenuButtonRedo,\n MenuButtonRemoveFormatting,\n MenuButtonStrikethrough,\n MenuButtonSubscript,\n MenuButtonSuperscript,\n MenuButtonTaskList,\n MenuButtonTextColor,\n MenuButtonUnderline,\n MenuButtonUndo,\n MenuButtonUnindent,\n MenuControlsContainer,\n MenuDivider,\n MenuSelectFontFamily,\n MenuSelectFontSize,\n MenuSelectHeading,\n MenuSelectTextAlign,\n isTouchDevice,\n} from \"mui-tiptap\";\nimport React from \"react\";\n\nexport default function EditorMenuControls() {\n const theme = useTheme();\n return (\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n {/* On touch devices, we'll show indent/unindent buttons, since they're\n unlikely to have a keyboard that will allow for using Tab/Shift+Tab. These\n buttons probably aren't necessary for keyboard users and would add extra\n clutter. */}\n {isTouchDevice() && (\n <>\n \n\n \n \n )}\n\n \n\n \n\n \n\n \n\n \n\n \n\n \n // For the sake of a demo, we don't have a server to upload the files\n // to, so we'll instead convert each one to a local \"temporary\" object\n // URL. This will not persist properly in a production setting. You\n // should instead upload the image files to your server, or perhaps\n // convert the images to bas64 if you would like to encode the image\n // data directly into the editor content, though that can make the\n // editor content very large.\n files.map((file) => ({\n src: URL.createObjectURL(file),\n alt: file.name,\n }))\n }\n />\n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n \n );\n}\n","import { List, ListItem, ListItemButton, Paper } from \"@mui/material\";\nimport type { SuggestionOptions, SuggestionProps } from \"@tiptap/suggestion\";\nimport React from \"react\";\nimport { forwardRef, useEffect, useImperativeHandle, useState } from \"react\";\nimport type { MentionSuggestion } from \"./mentionSuggestionOptions\";\n\nexport type SuggestionListRef = {\n // For convenience using this SuggestionList from within the\n // mentionSuggestionOptions, we'll match the signature of SuggestionOptions's\n // `onKeyDown` returned in its `render` function\n onKeyDown: NonNullable<\n ReturnType<\n NonNullable[\"render\"]>\n >[\"onKeyDown\"]\n >;\n};\n\n// This type is based on\n// https://github.com/ueberdosis/tiptap/blob/a27c35ac8f1afc9d51f235271814702bc72f1e01/packages/extension-mention/src/mention.ts#L73-L103.\n// TODO(Steven DeMartini): Use the Tiptap exported MentionNodeAttrs interface\n// once https://github.com/ueberdosis/tiptap/pull/4136 is merged.\ninterface MentionNodeAttrs {\n id: string | null;\n label?: string | null;\n}\n\nexport type SuggestionListProps = SuggestionProps;\n\nconst SuggestionList = forwardRef(\n (props, ref) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n const selectItem = (index: number) => {\n if (index >= props.items.length) {\n // Make sure we actually have enough items to select the given index. For\n // instance, if a user presses \"Enter\" when there are no options, the index will\n // be 0 but there won't be any items, so just ignore the callback here\n return;\n }\n\n const suggestion = props.items[index];\n\n // Set all of the attributes of our Mention node based on the suggestion\n // data. The fields of `suggestion` will depend on whatever data you\n // return from your `items` function in your \"suggestion\" options handler.\n // Our suggestion handler returns `MentionSuggestion`s (which we've\n // indicated via SuggestionProps). We are passing an\n // object of the `MentionNodeAttrs` shape when calling `command` (utilized\n // by the Mention extension to create a Mention Node).\n const mentionItem: MentionNodeAttrs = {\n id: suggestion.id,\n label: suggestion.mentionLabel,\n };\n // @ts-expect-error there is currently a bug in the Tiptap SuggestionProps\n // type where if you specify the suggestion type (like\n // `SuggestionProps`), it will incorrectly require that\n // type variable for `command`'s argument as well (whereas instead the\n // type of that argument should be the Mention Node attributes). This\n // should be fixed once https://github.com/ueberdosis/tiptap/pull/4136 is\n // merged and we can add a separate type arg to `SuggestionProps` to\n // specify the type of the commanded selected item.\n props.command(mentionItem);\n };\n\n const upHandler = () => {\n setSelectedIndex(\n (selectedIndex + props.items.length - 1) % props.items.length\n );\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % props.items.length);\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => setSelectedIndex(0), [props.items]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }) => {\n if (event.key === \"ArrowUp\") {\n upHandler();\n return true;\n }\n\n if (event.key === \"ArrowDown\") {\n downHandler();\n return true;\n }\n\n if (event.key === \"Enter\") {\n enterHandler();\n return true;\n }\n\n return false;\n },\n }));\n\n return props.items.length > 0 ? (\n \n \n {props.items.map((item, index) => (\n \n selectItem(index)}\n >\n {item.mentionLabel}\n \n \n ))}\n \n \n ) : null;\n }\n);\n\nSuggestionList.displayName = \"SuggestionList\";\n\nexport default SuggestionList;\n","import type { MentionOptions } from \"@tiptap/extension-mention\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport tippy, { type Instance as TippyInstance } from \"tippy.js\";\nimport SuggestionList, { type SuggestionListRef } from \"./SuggestionList\";\n\nexport type MentionSuggestion = {\n id: string;\n mentionLabel: string;\n};\n\n/**\n * Workaround for the current typing incompatibility between Tippy.js and Tiptap\n * Suggestion utility.\n *\n * @see https://github.com/ueberdosis/tiptap/issues/2795#issuecomment-1160623792\n *\n * Adopted from\n * https://github.com/Doist/typist/blob/a1726a6be089e3e1452def641dfcfc622ac3e942/stories/typist-editor/constants/suggestions.ts#L169-L186\n */\nconst DOM_RECT_FALLBACK: DOMRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n x: 0,\n y: 0,\n toJSON() {\n return {};\n },\n};\n\nexport const mentionSuggestionOptions: MentionOptions[\"suggestion\"] = {\n // Replace this `items` code with a call to your API that returns suggestions\n // of whatever sort you like (including potentially additional data beyond\n // just an ID and a label). It need not be async but is written that way for\n // the sake of example.\n items: async ({ query }): Promise =>\n Promise.resolve(\n [\n \"Lea Thompson\",\n \"Cyndi Lauper\",\n \"Tom Cruise\",\n \"Madonna\",\n \"Jerry Hall\",\n \"Joan Collins\",\n \"Winona Ryder\",\n \"Christina Applegate\",\n \"Alyssa Milano\",\n \"Molly Ringwald\",\n \"Ally Sheedy\",\n \"Debbie Harry\",\n \"Olivia Newton-John\",\n \"Elton John\",\n \"Michael J. Fox\",\n \"Axl Rose\",\n \"Emilio Estevez\",\n \"Ralph Macchio\",\n \"Rob Lowe\",\n \"Jennifer Grey\",\n \"Mickey Rourke\",\n \"John Cusack\",\n \"Matthew Broderick\",\n \"Justine Bateman\",\n \"Lisa Bonet\",\n \"Benicio Monserrate Rafael del Toro Sánchez\",\n ]\n // Typically we'd be getting this data from an API where we'd have a\n // definitive \"id\" to use for each suggestion item, but for the sake of\n // example, we'll just set the index within this hardcoded list as the\n // ID of each item.\n .map((name, index) => ({ mentionLabel: name, id: index.toString() }))\n // Find matching entries based on what the user has typed so far (after\n // the @ symbol)\n .filter((item) =>\n item.mentionLabel.toLowerCase().startsWith(query.toLowerCase())\n )\n .slice(0, 5)\n ),\n\n render: () => {\n let component: ReactRenderer | undefined;\n let popup: TippyInstance | undefined;\n\n return {\n onStart: (props) => {\n component = new ReactRenderer(SuggestionList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n getReferenceClientRect: () =>\n props.clientRect?.() ?? DOM_RECT_FALLBACK,\n appendTo: () => document.body,\n content: component.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n })[0];\n },\n\n onUpdate(props) {\n component?.updateProps(props);\n\n popup?.setProps({\n getReferenceClientRect: () =>\n props.clientRect?.() ?? DOM_RECT_FALLBACK,\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup?.hide();\n return true;\n }\n\n if (!component?.ref) {\n return false;\n }\n\n return component.ref.onKeyDown(props);\n },\n\n onExit() {\n popup?.destroy();\n component?.destroy();\n\n // Remove references to the old popup and component upon destruction/exit.\n // (This should prevent redundant calls to `popup.destroy()`, which Tippy\n // warns in the console is a sign of a memory leak, as the `suggestion`\n // plugin seems to call `onExit` both when a suggestion menu is closed after\n // a user chooses an option, *and* when the editor itself is destroyed.)\n popup = undefined;\n component = undefined;\n },\n };\n },\n};\n","import type { EditorOptions } from \"@tiptap/core\";\nimport { Blockquote } from \"@tiptap/extension-blockquote\";\nimport { Bold } from \"@tiptap/extension-bold\";\nimport { BulletList } from \"@tiptap/extension-bullet-list\";\nimport { Code } from \"@tiptap/extension-code\";\nimport { CodeBlock } from \"@tiptap/extension-code-block\";\nimport { Color } from \"@tiptap/extension-color\";\nimport { Document } from \"@tiptap/extension-document\";\nimport { Dropcursor } from \"@tiptap/extension-dropcursor\";\nimport { FontFamily } from \"@tiptap/extension-font-family\";\nimport { Gapcursor } from \"@tiptap/extension-gapcursor\";\nimport { HardBreak } from \"@tiptap/extension-hard-break\";\nimport { Highlight } from \"@tiptap/extension-highlight\";\nimport { History } from \"@tiptap/extension-history\";\nimport { HorizontalRule } from \"@tiptap/extension-horizontal-rule\";\nimport { Italic } from \"@tiptap/extension-italic\";\nimport { Link } from \"@tiptap/extension-link\";\nimport { ListItem } from \"@tiptap/extension-list-item\";\nimport { Mention } from \"@tiptap/extension-mention\";\nimport { OrderedList } from \"@tiptap/extension-ordered-list\";\nimport { Paragraph } from \"@tiptap/extension-paragraph\";\nimport { Placeholder } from \"@tiptap/extension-placeholder\";\nimport { Strike } from \"@tiptap/extension-strike\";\nimport { Subscript } from \"@tiptap/extension-subscript\";\nimport { Superscript } from \"@tiptap/extension-superscript\";\nimport { TableCell } from \"@tiptap/extension-table-cell\";\nimport { TableHeader } from \"@tiptap/extension-table-header\";\nimport { TableRow } from \"@tiptap/extension-table-row\";\nimport { TaskItem } from \"@tiptap/extension-task-item\";\nimport { TaskList } from \"@tiptap/extension-task-list\";\nimport { Text } from \"@tiptap/extension-text\";\nimport { TextAlign } from \"@tiptap/extension-text-align\";\nimport { TextStyle } from \"@tiptap/extension-text-style\";\nimport { Underline } from \"@tiptap/extension-underline\";\nimport { useMemo } from \"react\";\nimport {\n FontSize,\n HeadingWithAnchor,\n LinkBubbleMenuHandler,\n ResizableImage,\n TableImproved,\n} from \"mui-tiptap\";\nimport { mentionSuggestionOptions } from \"./mentionSuggestionOptions\";\n\nexport type UseExtensionsOptions = {\n /** Placeholder hint to show in the text input area before a user types a message. */\n placeholder?: string;\n};\n\n// Don't treat the end cursor as \"inclusive\" of the Link mark, so that users can\n// actually \"exit\" a link if it's the last element in the editor (see\n// https://tiptap.dev/api/schema#inclusive and\n// https://github.com/ueberdosis/tiptap/issues/2572#issuecomment-1055827817).\n// This also makes the `isActive` behavior somewhat more consistent with\n// `extendMarkRange` (as described here\n// https://github.com/ueberdosis/tiptap/issues/2535), since a link won't be\n// treated as active if the cursor is at the end of the link. One caveat of this\n// approach: it seems that after creating or editing a link with the link menu\n// (as opposed to having a link created via autolink), the next typed character\n// will be part of the link unexpectedly, and subsequent characters will not be.\n// This may have to do with how we're using `insertContent` and `setLink` in\n// the LinkBubbleMenu, but I can't figure out an alternative approach that\n// avoids the issue. This is arguably better than being \"stuck\" in the link\n// without being able to leave it, but it is still not quite right. See the\n// related open issues here:\n// https://github.com/ueberdosis/tiptap/issues/2571,\n// https://github.com/ueberdosis/tiptap/issues/2572, and\n// https://github.com/ueberdosis/tiptap/issues/514\nconst CustomLinkExtension = Link.extend({\n inclusive: false,\n});\n\n// Make subscript and superscript mutually exclusive\n// https://github.com/ueberdosis/tiptap/pull/1436#issuecomment-1031937768\n\nconst CustomSubscript = Subscript.extend({\n excludes: \"superscript\",\n});\n\nconst CustomSuperscript = Superscript.extend({\n excludes: \"subscript\",\n});\n\n/**\n * A hook for providing a default set of useful extensions for the MUI-Tiptap\n * editor.\n */\nexport default function useExtensions({\n placeholder,\n}: UseExtensionsOptions = {}): EditorOptions[\"extensions\"] {\n return useMemo(() => {\n return [\n // We incorporate all of the functionality that's part of\n // https://tiptap.dev/api/extensions/starter-kit, plus a few additional\n // extensions, including mui-tiptap's\n\n // Note that the Table extension must come before other nodes that also have \"tab\"\n // shortcut keys so that when using the tab key within a table on a node that also\n // responds to that shortcut, it respects that inner node with higher precedence\n // than the Table. For instance, if you want to indent or dedent a list item\n // inside a table, you should be able to do that by pressing tab. Tab should only\n // move between table cells if not within such a nested node. See comment here for\n // notes on extension ordering\n // https://github.com/ueberdosis/tiptap/issues/1547#issuecomment-890848888, and\n // note in prosemirror-tables on the need to have these plugins be lower\n // precedence\n // https://github.com/ueberdosis/prosemirror-tables/blob/1a0428af3ca891d7db648ce3f08a2c74d47dced7/src/index.js#L26-L30\n TableImproved.configure({\n resizable: true,\n }),\n TableRow,\n TableHeader,\n TableCell,\n\n BulletList,\n CodeBlock,\n Document,\n HardBreak,\n ListItem,\n OrderedList,\n Paragraph,\n CustomSubscript,\n CustomSuperscript,\n Text,\n\n // Blockquote must come after Bold, since we want the \"Cmd+B\" shortcut to\n // have lower precedence than the Blockquote \"Cmd+Shift+B\" shortcut.\n // Otherwise using \"Cmd+Shift+B\" will mistakenly toggle the bold mark.\n // (See https://github.com/ueberdosis/tiptap/issues/4005,\n // https://github.com/ueberdosis/tiptap/issues/4006)\n Bold,\n Blockquote,\n\n Code,\n Italic,\n Underline,\n Strike,\n CustomLinkExtension.configure({\n // autolink is generally useful for changing text into links if they\n // appear to be URLs (like someone types in literally \"example.com\"),\n // though it comes with the caveat that if you then *remove* the link\n // from the text, and then add a space or newline directly after the\n // text, autolink will turn the text back into a link again. Not ideal,\n // but probably still overall worth having autolink enabled, and that's\n // how a lot of other tools behave as well.\n autolink: true,\n linkOnPaste: true,\n openOnClick: false,\n }),\n LinkBubbleMenuHandler,\n\n // Extensions\n Gapcursor,\n HeadingWithAnchor,\n TextAlign.configure({\n types: [\"heading\", \"paragraph\", \"image\"],\n }),\n TextStyle,\n Color,\n FontFamily,\n FontSize,\n Highlight.configure({ multicolor: true }),\n HorizontalRule,\n\n ResizableImage,\n // When images are dragged, we want to show the \"drop cursor\" for where they'll\n // land\n Dropcursor,\n\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n\n Mention.configure({\n suggestion: mentionSuggestionOptions,\n }),\n\n Placeholder.configure({\n placeholder,\n }),\n\n // We use the regular `History` (undo/redo) extension when not using\n // collaborative editing\n History,\n ];\n }, [placeholder]);\n}\n","export const SERVICE_CONFIGURATION = 'service_configuration';\nexport const UI_CONFIGURATION = 'ui_configuration';\nexport const ADD_LOCALE = 'add_locale';\nexport const UPDATE_SERVICE_DATA = 'update_service_data';\nexport const SET_META = 'set_meta';\nexport const SET_STATUS = 'set_status'\nexport const SET_REDIRECT_URL = 'set_redirect_url'\nexport const SET_MUSTACHE_CLASS = 'set_mustache_class';\nexport const TOGGLE_FEATURED = 'toggle_featured';\nexport const SET_OVERVIEW = 'set_overview';\nexport const TOGGLE_TAB = 'toggle_tab';\nexport const UPDATE_TITLE_TRANSLATION = 'update_title_translation';\nexport const UPDATE_DESCRIPTION_TRANSLATION = 'update_description_translation';\nexport const ADD_NEW_FIELD_GROUP = 'add_new_field_group';\nexport const DELETE_FIELD_GROUP = 'delete_field_group';\nexport const ADD_NEW_FIELD = 'add_new_field';\nexport const DELETE_FIELD = 'delete_field';\nexport const UPDATE_FIELD_TYPE = 'update_field_type';\nexport const UPDATE_FIELD_NAME = 'update_field_name';\nexport const TOGGLE_FIELD_REQUIRED = 'toggle_field_required';\nexport const TOGGLE_FIELD_READONLY = 'toggle_field_readonly';\nexport const TOGGLE_FIELD_MANUAL_INPUT_OPTION_ALLOWED = 'toggle_field_manual_input_option_allowed';\nexport const TOGGLE_USE_DEFAULT_VALUE = 'toggle_use_default_value';\nexport const UPDATE_DEFAULT_VALUE = 'update_default_value';\nexport const ADD_FIELD_OPTION = 'add_field_option';\nexport const UPDATE_FIELD_OPTION = 'update_field_option';\nexport const UPLOAD_ICON = 'upload_icon';\nexport const UPDATE_BUTTON_ONCLICK = 'update_button_onclick';\nexport const UPDATE_TAB_TITLE_TRANSLATION = 'update_tab_title_translation';\nexport const UPDATE_TAB_DESCRIPTION_TRANSLATION = 'update_tab_description_translation';\nexport const ADD_NEW_TAB = 'add_new_tab';\nexport const UPDATE_FIELD_GROUP_TITLE_TRANSLATION = 'update_field_group_title_translation';\nexport const TOGGLE_SHOW_TAB_CARD_HEADER = 'toggle_show_tab_card_header';\nexport const UPDATE_FIELD_ATTRIBUTE_TRANSLATION = 'update_field_attribute_translation';\nexport const TOGGLE_MULTIPLE_INSTANCES_META = 'toggle_multiple_instances_meta';\nexport const UPDATE_IFRAME_SRC = 'update_iframe_src';\nexport const UPDATE_SERVICE_DATA_FIELD = 'update_service_data_field';\nexport const UPDATE_SOURCE_HEADER = 'update_source_header';\nexport const UPDATE_TARGET_HEADER = 'update_target_header';\nexport const UPDATE_DEFAULT_MAPPINGS = 'update_default_mappings';","import { AutoThemeProvider, Tabs, Tab, Button, Dropdown, DropdownItem, Spinner, Grid, Alert } from '@platform-ui/design-system';\nimport React, { Dispatch, useEffect, useState } from 'react';\nimport { Action, useStoreContext } from '../../../Store';\nimport { IntegrationAppFormState } from '../state';\nimport ServiceConfigurationTab from './Tabs/ServiceConfigurationTab';\nimport UIConfigurationTab from './Tabs/UIConfigurationTab';\nimport { ADD_LOCALE } from '../actionTypes';\nimport LocaleTab from './Tabs/LocaleTab';\nimport { AlertColor } from '@platform-ui/design-system/node_modules/@mui/material';\nimport Connect from '../../../Connect/Connect';\n\ninterface IntegrationAppFormProps {\n locales: string[],\n path: string,\n indexPath: string,\n}\n\nexport const IntegrationAppForm = ({\n locales,\n path,\n indexPath,\n}: IntegrationAppFormProps) => {\n const { state, dispatch } = useStoreContext() as { state: IntegrationAppFormState, dispatch: Dispatch };\n const [tabs, setTabs] = useState(0);\n const [tabData, setTabData] = useState(Object.keys(state.title_translations));\n const [selectedLocale, setSelectedLocale] = useState('');\n const [anchorEl, setAnchorEl] = useState(null);\n const availableLocales = locales.filter(locale => !tabData.includes(locale));\n let fetching = false\n // NOTE(Xander): Check if the path includes an app id, if it does, we're updating, not creating\n const editApp = /\\d/.test(path);\n // Alert Consts\n const [isAlert, setIsAlert] = useState(false);\n const [alertSeverity, setAlertSeverity] = useState(\"success\");\n const [alertHeader, setAlertHeader] = useState(\"\");\n const [alertBody, setAlertBody] = useState(\"\");\n const [submitting, setSubmitting] = useState(false);\n\n const handleOpenDropdown = (event) => {\n setAnchorEl(event.currentTarget);\n };\n const handleDropdownClose = () => {\n setAnchorEl(null);\n };\n const closeMenu = () => {\n setAnchorEl(null);\n };\n\n useEffect(() => {\n if (selectedLocale) {\n setTabData([...tabData, selectedLocale]);\n dispatch({\n type: ADD_LOCALE,\n payload: {\n title_translations: {[selectedLocale]: {\"title\":\"\"}},\n description_translations: {[selectedLocale]: {\"long\":\"\", \"short\":\"\"}}\n }\n });\n setSelectedLocale('');\n closeMenu();\n }\n }, [selectedLocale, tabData]);\n\n function renderTab() {\n switch (tabs) {\n case 0:\n return ()\n case 1:\n return ()\n default:\n return ()\n }\n }\n\n const submitIntegrationApp = async (event) => {\n try {\n setSubmitting(true);\n const csrf = document.querySelector('meta[name=\\'csrf-token\\']').getAttribute('content');\n const { modified, ...filteredState } = state;\n\n const formData = new FormData();\n for (const key in filteredState) {\n // Note(Duc): skip images and unchanged icon\n if ((key === 'images') || (key === 'icon' && !(filteredState[key] instanceof File))) {\n continue;\n }\n const stateValue = filteredState[key];\n const formValue = stateValue instanceof File ? stateValue : typeof stateValue === 'object' ? JSON.stringify(stateValue || {}) : stateValue;\n formData.append(`integration_app[${key}]`, formValue);\n }\n\n const options = {\n method: editApp ? 'PATCH' : 'POST',\n headers: new Headers({\n 'X-CSRF-Token': csrf\n }),\n body: formData\n };\n const response = await window.fetch(path, options);\n if (!response.ok) throw Error(response.statusText);\n setAlertSeverity('success');\n setAlertBody(editApp ? 'App Updated Successfully' : 'App Created Successfully');\n setIsAlert(true);\n setSubmitting(false);\n window.location.href = indexPath;\n } catch (error) {\n Connect.log(error);\n setAlertSeverity('error');\n setAlertBody('App Not Saved');\n setIsAlert(true);\n setSubmitting(false);\n }\n }\n\n return (\n \n {\n fetching ?\n :\n <>\n \n \n

{editApp ? 'Edit Integration App' : 'New Integration App'}

\n
\n \n {\n setIsAlert(false);\n }}\n e2e=\"applicationAlert\"\n header={alertHeader}\n open={isAlert}\n severity={alertSeverity as AlertColor}\n />\n \n \n \n )}\n \n {availableLocales.map((option) => (\n setSelectedLocale(option)}\n e2e={option}\n >\n {option}\n \n ))}\n \n \n {renderTab()}\n \n }\n
\n );\n}\n\nexport default IntegrationAppForm;\n","import { Card, Grid, TextField } from \"@platform-ui/design-system\";\nimport React, { useState, useEffect, Dispatch } from 'react';\nimport { useStoreContext, Action } from \"../../../../Store\";\nimport { IntegrationAppFormState } from \"../../state\";\nimport EditorBlock from \"./components/EditorBlock\";\nimport { UPDATE_DESCRIPTION_TRANSLATION, UPDATE_TAB_DESCRIPTION_TRANSLATION, UPDATE_TAB_TITLE_TRANSLATION, UPDATE_TITLE_TRANSLATION } from \"../../actionTypes\";\nimport LocaleBlock from \"./components/LocaleBlock\";\nimport GridTile from \"../../../../GridView/GridTile\";\nimport Connect from \"../../../../Connect/Connect\";\n\nfunction LocaleTab(props: any) {\n const { state, dispatch } = useStoreContext() as { state: IntegrationAppFormState, dispatch: Dispatch };\n const locale = props.locale;\n // const tabList = state.ui_layout['tabs'].map((tab) => Object.keys(tab)[0])\n\n function toTitle(text) {\n const result = text.replace(/([A-Z])/g, \" $1\");\n return result.charAt(0).toUpperCase() + result.slice(1);\n }\n\n const [titleInputValue, setTitleInputValue] = useState(state.title_translations[locale]?.title || '');\n const [descriptionInputValue, setDescriptionInputValue] = useState(state.description_translations[locale]?.short || '');\n\n const updateTitleTranslation = (updatedTitle: string) => {\n const newTitleTranslations = {\n ...state.title_translations,\n [locale]: {\n ...state.title_translations[locale],\n title: updatedTitle,\n },\n };\n dispatch({\n type: UPDATE_TITLE_TRANSLATION,\n payload: { title_translations: newTitleTranslations }\n });\n };\n\n const updateDescriptionTranslation = (updatedDescription: string) => {\n const newDescriptionTranslations = {\n ...state.description_translations,\n [locale]: {\n ...state.description_translations[locale],\n short: updatedDescription,\n },\n };\n dispatch({\n type: UPDATE_DESCRIPTION_TRANSLATION,\n payload: { description_translations: newDescriptionTranslations }\n });\n };\n\n useEffect(() => {\n setTitleInputValue(state.title_translations[locale]?.title || '');\n setDescriptionInputValue(state.description_translations[locale]?.short || '');\n }, [locale]);\n\n useEffect(() => {\n const titleTimer = setTimeout(() => {\n updateTitleTranslation(titleInputValue);\n }, 500);\n\n const descriptionTimer = setTimeout(() => {\n updateDescriptionTranslation(descriptionInputValue);\n }, 500);\n\n return () => {\n clearTimeout(titleTimer);\n clearTimeout(descriptionTimer);\n };\n }, [titleInputValue, descriptionInputValue]);\n\n return (\n \n \n \n \n setTitleInputValue(e.target.value)}\n />\n \n \n setDescriptionInputValue(e.target.value)}\n />\n \n {/* NOTE(Xander): Disabled because it's laggy\n \n \n */}\n \n \n \n \n }\n />\n \n {state.ui_layout['tabs'].map((tab, tabIndex) => {\n const tabName = Object.keys(tab)[0]\n return (\n \n \n \n \n {\n dispatch({\n type: UPDATE_TAB_TITLE_TRANSLATION,\n payload: {\n tabIndex,\n tab: tabName,\n locale,\n key: 'tabName',\n value: event.target.value\n }\n });\n }}\n required\n />\n \n \n {\n dispatch({\n type: UPDATE_TAB_TITLE_TRANSLATION,\n payload: {\n tabIndex,\n tab: tabName,\n locale,\n key: 'cardHeader',\n value: event.target.value\n }\n });\n }}\n />\n \n \n {\n dispatch({\n type: UPDATE_TAB_DESCRIPTION_TRANSLATION,\n payload: {\n tabIndex,\n tab: tabName,\n locale,\n key: 'description',\n value: event.target.value\n }\n });\n }}\n required\n />\n \n \n {\n (tab[tabName]?.['fieldGroups'] || []).map((fieldGroup, fieldGroupIndex) => {\n return (\n \n );\n })\n }\n \n }\n />\n \n )\n })}\n \n );\n}\n\nexport default LocaleTab\n","import { FormControlLabel, IconButton, styled, TextField } from '@mui/material';\nimport InfoIcon from '@mui/icons-material/Info';\nimport { Card, Checkbox, Grid, Select, SelectItem, Tooltip, Typography } from '@platform-ui/design-system'\nimport React, { Dispatch, useRef, useState } from 'react'\nimport { useStoreContext, Action } from '../../../../Store';\nimport { SET_META, SET_REDIRECT_URL, SET_STATUS, TOGGLE_MULTIPLE_INSTANCES_META, UPDATE_SERVICE_DATA, UPLOAD_ICON, UPDATE_SERVICE_DATA_FIELD } from '../../actionTypes';\nimport { PLACEHOLDER_SERVICE_REQUEST } from '../../constants';\nimport { IntegrationAppFormState } from '../../state';\nimport Connect from '../../../../Connect/Connect';\nimport { useFlipperHook } from '../../../../Tables/helpers';\n\nfunction ServiceConfigurationTab(props: any) {\n const { state, dispatch } = useStoreContext() as { state: IntegrationAppFormState, dispatch: Dispatch };\n const serviceData = state.service_data || {};\n const multipleInstancesTooltipTitle = `Only applicable for connectors with multiple instances looked up by external_id. Please ignore it if you don't know what that means.`;\n const serviceDataCustomFields = Object.keys(serviceData).filter(key => !(['simple_url_or_path', 'workflow_template'].includes(key)));\n\n const isValidJSON = (text: string) => {\n try {\n JSON.parse(text);\n return true;\n } catch (error) {\n return false;\n }\n };\n\n const setProduct = (event) => {\n dispatch({\n type: SET_META,\n payload: {\n meta: {\"product\": event.target.value}\n }\n });\n };\n\n const setCategory = (event) => {\n dispatch({\n type: SET_META,\n payload: {\n meta: {\"category\": event.target.value}\n }\n });\n };\n\n const setStatus = (event) => {\n dispatch({\n type: SET_STATUS,\n payload: {\n status: event.target.value\n }\n });\n };\n\n const setRedirectUrl = (event) => {\n dispatch({\n type: SET_REDIRECT_URL,\n payload: {\n redirect_url: event.target.value\n }\n });\n };\n\n const toggleFeatured = (event) => {\n dispatch({\n type: SET_META,\n payload: {\n meta: {\"featured\": !state.meta['featured']}\n }\n });\n };\n\n const toggleMultipleInstances = (event) => {\n dispatch({\n type: TOGGLE_MULTIPLE_INSTANCES_META,\n payload: event.target.checked\n });\n };\n\n const VisuallyHiddenInput = styled('input')({\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: 1,\n overflow: 'hidden',\n position: 'absolute',\n bottom: 0,\n left: 0,\n whiteSpace: 'nowrap',\n width: 1,\n });\n\n const uploadImage = (event) => {\n dispatch({\n type: UPLOAD_ICON,\n payload: {\n icon: event.target.files[0]\n }\n });\n }\n\n const ImageWrapper = styled('div')({\n position: 'relative',\n display: 'inline-block',\n });\n\n const fileInputRef = useRef(null);\n\n const handleServiceDataFieldChange = (key) => (event) => {\n const value = event.target.value;\n const isJSON = isValidJSON(value);\n dispatch({\n type: UPDATE_SERVICE_DATA_FIELD,\n payload: { key, value, isJSON }\n });\n };\n\n const toLabel = (text: string) => {\n const result = text.replace(/[_-]/g, ' ');\n return result.charAt(0).toUpperCase() + result.slice(1);\n };\n\n return (\n \n \n \n \n \n fileInputRef.current?.click()}\n style={{ cursor: 'pointer' }}\n />\n \n \n \n \n \n Zuora Billing\n Zuora Revenue\n Zuora Payments\n Zephyr\n \n \n \n \n \n \n \n \n \n \n \n \n {}}\n dsOnOpen={() => {}}\n e2e='multiple-instances-tooltip'\n title={{multipleInstancesTooltipTitle}}\n >\n {<>Multiple Instances}\n \n }\n checked={!!state.meta['multiple']}\n />\n \n \n \n \n \n } />\n \n \n \n Setting Processing\n { } }\n dsOnOpen={() => { } } e2e={''}>\n \n \n \n \n } \n id='service-data' titleBar body={\n \n \n {\n ('name' in state.service_data) &&\n \n }\n \n \n {}}\n dsOnOpen={() => {}}\n e2e='multiple-instances-tooltip'\n title={This will send a post request with all settings information contained to the endpoint or Trigger the Windmill Flow for processing}\n >\n \n \n \n \n \n \n \n } />\n \n \n )\n}\n\nexport default ServiceConfigurationTab\n","import React, { Dispatch, useEffect, useState } from 'react';\nimport { useDrag, useDrop, DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { Button, Card, Checkbox, Grid, TextField, Toggle, Typography } from '@platform-ui/design-system';\nimport { useStoreContext, Action } from '../../../../Store';\nimport { IntegrationAppFormState } from '../../state';\nimport { Divider, List, ListItem } from '@mui/material';\nimport { ADD_NEW_FIELD, ADD_NEW_FIELD_GROUP, ADD_NEW_TAB, DELETE_FIELD_GROUP, TOGGLE_SHOW_TAB_CARD_HEADER, TOGGLE_TAB, UPDATE_IFRAME_SRC } from '../../actionTypes';\nimport FieldBlock from './components/FieldBlock';\n\ninterface CheckboxItemProps {\n name: string;\n label: string;\n index: number;\n disabled?: boolean;\n moveCheckbox: (fromIndex: number, toIndex: number) => void;\n}\n\nconst CheckboxItem: React.FC = ({name, label, index, disabled, moveCheckbox }) => {\n const { state, dispatch } = useStoreContext() as { state: IntegrationAppFormState, dispatch: Dispatch };\n\n const [, ref] = useDrag({\n type: 'CHECKBOX',\n item: { index },\n });\n\n const [, drop] = useDrop({\n accept: 'CHECKBOX',\n hover: (item: { index: number }) => {\n if (item.index !== index) {\n moveCheckbox(item.index, index);\n item.index = index;\n }\n },\n });\n\n const toggleTab = (event) => {\n dispatch({\n type: TOGGLE_TAB,\n payload: {\n tab: name,\n enabled: !state.ui_layout['tabs'][index][name]['enabled'],\n index: index\n },\n });\n };\n\n const addNewFieldGroup = (event) => {\n dispatch({\n type: ADD_NEW_FIELD_GROUP,\n payload: {\n tab: name,\n index: index\n }\n });\n }\n\n function deleteFieldGroup(fieldGroupIndex: number) {\n dispatch({\n type: DELETE_FIELD_GROUP,\n payload: {\n tab: name,\n index: index,\n fieldGroupIndex: fieldGroupIndex\n }\n });\n }\n\n function addNewField(fieldGroupIndex: number) {\n dispatch({\n type: ADD_NEW_FIELD,\n payload: {\n tab: name,\n index: index,\n fieldGroupIndex: fieldGroupIndex\n }\n });\n }\n\n const toggleShowTabCardHeader = (event) => {\n dispatch({\n type: TOGGLE_SHOW_TAB_CARD_HEADER,\n payload: {\n tabName: name,\n index: index,\n showHeader: event.target.checked\n }\n });\n };\n\n const updateIframeSrc = (event) => {\n dispatch({\n type: UPDATE_IFRAME_SRC,\n payload: {\n tabName: name,\n tabIndex: index,\n value: event.target.value\n }\n });\n };\n\n return (\n
ref(drop(node))}>\n \n \n \n \n \n \n \n {\n name.match(/^iframe.*/i)?.input &&\n \n \n \n }\n \n \n {state.ui_layout['tabs'][index][name]['fieldGroups'] && state.ui_layout['tabs'][index][name]['fieldGroups'].length > 0 && \n \n {state.ui_layout['tabs'][index][name]['fieldGroups'].map((fieldGroup, fieldGroupIndex) => {\n return (\n <>\n {{`Field Group ${fieldGroupIndex + 1}`}}\n \n \n {fieldGroup['fields'].map((field, fieldIndex) => {\n return (\n \n \n \n )\n })}\n \n \n \n \n \n \n \n )\n })}\n \n }\n \n { !name.match(/^iframe.*/i)?.input && }\n \n \n
\n );\n};\n\nconst UIConfigurationTab: React.FC = () => {\n const { state, dispatch } = useStoreContext() as { state: IntegrationAppFormState, dispatch: Dispatch };\n const [checkboxes, setCheckboxes] = useState(state.ui_layout['tabs']);\n\n const moveCheckbox = (fromIndex: number, toIndex: number) => {\n // Need a new action here to handle moving the ui layout\n const updatedCheckboxes = [...checkboxes];\n const [movedCheckbox] = updatedCheckboxes.splice(fromIndex, 1);\n updatedCheckboxes.splice(toIndex, 0, movedCheckbox);\n setCheckboxes(updatedCheckboxes);\n };\n\n const addNewTab = () => {\n let tabName: string = null;\n\n do {\n tabName = prompt('Enter a non-empty case-sensitive tab name');\n } while (!tabName);\n\n dispatch({\n type: ADD_NEW_TAB,\n payload: { tabName }\n });\n };\n\n function toTitle(text) {\n const result = text.replace(/([A-Z])/g, \" $1\");\n return result.charAt(0).toUpperCase() + result.slice(1);\n }\n\n useEffect(() => {\n if (state.ui_layout['tabs']?.length > 0) {\n setCheckboxes(state.ui_layout['tabs']);\n }\n }, [state.ui_layout['tabs']]);\n\n // TODO(Xander): Replace the \"checkboxes\" with separate cards that keep the intended DND functionality\n // rather than a singular card that al the field groups live on\n return (\n \n \n Tabs\n authentication, settings, and execution are natively rendered when defined.\n Other tab names are custom.\n \n }\n titleBar\n id=\"tabs-card\"\n headerAction={\n \n }\n body={\n <>\n {}} label={'Overview'} checked={true} disabled={true}/>}\n />\n {checkboxes.map((tab, index) => {\n const tabName = Object.keys(tab)[0]\n // const checkbox = tab[tabName];\n return (\n \n \n \n }\n />\n )\n })}\n \n }\n />\n \n );\n};\n\nexport default UIConfigurationTab;\n","import { Box, createTheme, CssBaseline, PaletteMode, ThemeProvider } from \"@mui/material\";\nimport { Grid } from \"@platform-ui/design-system\";\nimport React, { Dispatch, useCallback, useMemo, useState } from \"react\";\nimport { useStoreContext, Action } from \"../../../../../Store\";\nimport Editor from \"../../../Editor/Editor\";\nimport { IntegrationAppFormState } from \"../../../state\";\n\nfunction EditorBlock(props: any) {\n const { state, dispatch } = useStoreContext() as { state: IntegrationAppFormState, dispatch: Dispatch };\n\n const exampleBodyContent = '
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
';\n const exampleSidebarContent = '

Setup

Help

'; \n\n // Editor Wrappings\n const [paletteMode, setPaletteMode] = useState(\"light\");\n const togglePaletteMode = useCallback(\n () =>\n setPaletteMode((prevMode) => (prevMode === \"dark\" ? \"light\" : \"dark\")),\n []\n );\n const theme = useMemo(\n () =>\n createTheme({\n palette: {\n mode: paletteMode,\n secondary: {\n main: \"#42B81A\",\n },\n },\n }),\n [paletteMode]\n );\n\n return (\n \n \n
Body Content
\n \n \n \n \n \n \n
\n \n
Sidebar Content
\n \n \n \n \n \n \n
\n
\n );\n}\n\nexport default EditorBlock\n","import { Grid, Select, SelectItem, TextField, Checkbox, Button } from \"@platform-ui/design-system\";\nimport React, { useState } from \"react\";\nimport { useStoreContext } from \"../../../../../Store\";\nimport {\n UPDATE_FIELD_TYPE,\n UPDATE_FIELD_NAME,\n TOGGLE_FIELD_REQUIRED,\n TOGGLE_FIELD_READONLY,\n DELETE_FIELD,\n UPDATE_BUTTON_ONCLICK,\n UPDATE_DEFAULT_VALUE,\n TOGGLE_FIELD_MANUAL_INPUT_OPTION_ALLOWED\n} from \"../../../actionTypes\";\nimport { FieldTypes, Field, FieldLocation, FIELD_TYPE_OPTIONS } from \"./types\";\nimport { MappingFields } from \"./MappingFields\";\n\ninterface Props {\n field: Field;\n location: FieldLocation;\n}\n\nexport const FieldBlock: React.FC = ({ field, location }) => {\n const { dispatch } = useStoreContext();\n const [useDefaultValue, setUseDefaultValue] = useState(field.defaultValue != null);\n const allowsDefault = [FieldTypes.TEXT, FieldTypes.TEXTAREA, FieldTypes.DATEPICKER, FieldTypes.CHECKBOX];\n\n const dispatchFieldUpdate = (type: string, additionalPayload = {}) => {\n dispatch({\n type,\n payload: { ...location, ...additionalPayload }\n });\n };\n\n // Updated to handle the correct event type from the Select component\n const handleFieldTypeChange = (event: any, child: React.ReactNode) => {\n const newType = event.target.value;\n dispatchFieldUpdate(UPDATE_FIELD_TYPE, {\n type: newType,\n required: newType === FieldTypes.CHECKBOX ? false : field.required\n });\n };\n\n const handleFieldNameChange = (event: React.ChangeEvent) => {\n dispatchFieldUpdate(UPDATE_FIELD_NAME, { name: event.target.value });\n };\n\n const handleRequiredToggle = () => {\n dispatchFieldUpdate(TOGGLE_FIELD_REQUIRED, {\n type: field.fieldType,\n required: !field.required\n });\n };\n\n const handleReadonlyToggle = () => {\n dispatchFieldUpdate(TOGGLE_FIELD_READONLY, {\n type: field.fieldType,\n readonly: !field.readonly\n });\n };\n\n const handleManualInputOptionAllowedToggle = () => {\n dispatchFieldUpdate(TOGGLE_FIELD_MANUAL_INPUT_OPTION_ALLOWED, {\n type: field.fieldType,\n manualInputOptionAllowed: !field.manualInputOptionAllowed\n });\n };\n const handleDelete = () => {\n dispatchFieldUpdate(DELETE_FIELD);\n };\n\n const handleOnClickUpdate = (value: string) => {\n dispatchFieldUpdate(UPDATE_BUTTON_ONCLICK, { onClick: value });\n };\n\n const handleDefaultValueUpdate = (value: string) => {\n dispatchFieldUpdate(UPDATE_DEFAULT_VALUE, { defaultValue: value });\n };\n\n return (\n \n \n \n {FIELD_TYPE_OPTIONS.map(({ value, label }) => (\n \n {label}\n \n ))}\n \n \n \n \n \n \n\n \n {field.fieldType !== FieldTypes.CHECKBOX && (\n \n )}\n \n\n \n \n \n\n {field.fieldType === FieldTypes.FIELD_MAPPING && \n \n }\n\n {(field.fieldType === FieldTypes.FIELD_MAPPING || field.fieldType === FieldTypes.READONLY_FIELD_MAPPING) && (\n \n )}\n\n {field.fieldType === FieldTypes.BUTTON && (\n \n handleOnClickUpdate(event.target.value)}\n multiline\n rows={4}\n maxRows={5}\n wrap='hard'\n />\n \n )}\n\n {allowsDefault.includes(field.fieldType) &&\n ( \n {setUseDefaultValue(!useDefaultValue); handleDefaultValueUpdate(null);}} label='Use Default Value' checked={useDefaultValue} />\n )\n }\n {useDefaultValue && allowsDefault.includes(field.fieldType) && (\n <>\n {field.fieldType === FieldTypes.CHECKBOX? (\n \n handleDefaultValueUpdate(event.target.value)}\n label=\"Default Checked\"\n checked={field.defaultValue === 'true'}\n />\n \n ) : (\n \n handleDefaultValueUpdate(event.target.value)}\n label=\"Default Value\"\n value={typeof field.defaultValue === 'string' ? field.defaultValue : ''}\n />\n \n )}\n \n )}\n\n \n \n \n \n );\n};\n\nexport default FieldBlock;","import { Grid, TextField } from '@platform-ui/design-system';\nimport React, { Dispatch } from \"react\";\nimport { Action, useStoreContext } from '../../../../../Store';\nimport { IntegrationAppFormState } from '../../../state';\nimport { UPDATE_FIELD_ATTRIBUTE_TRANSLATION, UPDATE_FIELD_GROUP_TITLE_TRANSLATION } from '../../../actionTypes';\nimport { Divider } from '@mui/material';\nimport { Field, FieldTypes } from './types';\n\ninterface LocaleBlockProps {\n fieldGroup: any;\n fieldGroupIndex: number;\n tabName: string;\n tabIndex: number;\n locale: string;\n}\n\nfunction LocaleBlock(props: LocaleBlockProps) {\n const { state, dispatch } = useStoreContext() as { state: IntegrationAppFormState, dispatch: Dispatch };\n\n const handleFieldGroupTitleChange = (event) => {\n dispatch({\n type: UPDATE_FIELD_GROUP_TITLE_TRANSLATION,\n payload: {\n tabName: props.tabName,\n tabIndex: props.tabIndex,\n fieldGroupIndex: props.fieldGroupIndex,\n locale: props.locale,\n value: event.target.value\n }\n });\n };\n\n const handleLocalizationChange = (fieldAttribute: string, fieldIndex) => (event) => {\n dispatch({\n type: UPDATE_FIELD_ATTRIBUTE_TRANSLATION,\n payload: {\n fieldAttribute,\n tabName: props.tabName,\n tabIndex: props.tabIndex,\n fieldGroupIndex: props.fieldGroupIndex,\n locale: props.locale,\n fieldIndex,\n value: event.target.value\n }\n });\n };\n\n return (\n <>\n \n \n \n \n \n \n {\n (props.fieldGroup?.fields || []).map((field: Field, fieldIndex) => (\n \n \n {}} />\n \n \n \n \n \n \n \n \n \n \n {field.fieldType === FieldTypes.FIELD_MAPPING &&\n <>\n \n \n \n \n \n \n \n }\n \n ))\n }\n \n \n \n );\n}\n\nexport default LocaleBlock\n","import React, { useState } from \"react\";\nimport { useStoreContext } from \"../../../../../Store\";\nimport { FieldLocation } from \"./types\";\nimport { UPDATE_DEFAULT_MAPPINGS, UPDATE_SOURCE_HEADER, UPDATE_TARGET_HEADER } from \"../../../actionTypes\";\nimport { Grid, TextField } from \"@platform-ui/design-system\";\n\nexport const MappingFields: React.FC<{\n sourceHeader: string;\n targetHeader: string;\n rows: any[];\n location: FieldLocation;\n isReadonly?: boolean;\n}> = ({ sourceHeader, targetHeader, rows, location, isReadonly }) => {\n const { dispatch } = useStoreContext();\n const [fieldMappingDefaults, updateFieldMappingDefaults] = useState(JSON.stringify(rows, null, 4) || JSON.stringify([]));\n const [invalidDefaultMappings, setInvalidDefaultMappings] = useState(false);\n\n const handleSourceHeaderUpdate = (event: React.ChangeEvent) => {\n dispatch({\n type: UPDATE_SOURCE_HEADER,\n payload: { ...location, sourceHeader: event.target.value }\n });\n };\n\n const handleTargetHeaderUpdate = (event: React.ChangeEvent) => {\n dispatch({\n type: UPDATE_TARGET_HEADER,\n payload: { ...location, targetHeader: event.target.value }\n });\n };\n\n interface FieldDefinition {\n type: string;\n label: string;\n value: string | number | boolean;\n }\n \n interface MappingRow {\n type: string;\n sourceField: FieldDefinition;\n targetField: FieldDefinition;\n }\n \n const handleDefaultMappingsUpdate = (event: React.ChangeEvent) => {\n const input = event.target.value;\n updateFieldMappingDefaults(input);\n \n try {\n // Handle empty input\n if (!input.trim()) {\n dispatch({\n type: UPDATE_DEFAULT_MAPPINGS,\n payload: { ...location, rows: [] }\n });\n setInvalidDefaultMappings(false);\n return;\n }\n \n const parsedJson = JSON.parse(input);\n \n // Validate array structure\n if (!Array.isArray(parsedJson)) {\n setInvalidDefaultMappings(true);\n return;\n }\n \n // Validate each mapping row\n const isValid = parsedJson.every((item: MappingRow, index) => {\n // Check basic structure\n if (\n typeof item !== 'object' ||\n !('type' in item) ||\n !('sourceField' in item) ||\n !('targetField' in item)\n ) {\n return false;\n }\n \n // Validate type\n if (typeof item.type !== 'string') {\n return false;\n }\n \n // Validate source and target fields\n const validateField = (field: FieldDefinition) => {\n if (!field || typeof field !== 'object') return false;\n \n if (!('type' in field) || !('label' in field) || !('value' in field)) {\n return false;\n }\n \n // Validate type-specific value formats\n switch (field.type) {\n case 'string':\n return typeof field.value === 'string';\n case 'number':\n return typeof field.value === 'number';\n case 'boolean':\n return typeof field.value === 'string' || typeof field.value === 'boolean';\n default:\n return false;\n }\n };\n \n return validateField(item.sourceField) && validateField(item.targetField);\n });\n \n if (!isValid) {\n setInvalidDefaultMappings(true);\n return;\n }\n \n // If all validation passes, update the state\n dispatch({\n type: UPDATE_DEFAULT_MAPPINGS,\n payload: { ...location, rows: input }\n });\n setInvalidDefaultMappings(false);\n \n } catch (e) {\n // Invalid JSON syntax\n setInvalidDefaultMappings(true);\n }\n };\nreturn (\n <>\n \n \n \n \n \n \n \n \n \n \n );\n};","import { ReactNode } from 'react';\n\n// Changed from const enum to regular enum since we need to use Object.values\nexport enum FieldTypes {\n TEXT = 'text',\n TEXTAREA = 'textarea',\n PASSWORD = 'password',\n CHECKBOX = 'checkbox',\n BUTTON = 'button',\n SWITCH = 'switch',\n DATEPICKER = 'datepicker',\n FIELD_MAPPING = 'field_mapping',\n READONLY_FIELD_MAPPING = 'readonly_field_mapping'\n}\n\nexport interface FieldTypeOption {\n value: FieldTypes;\n label: string | ReactNode;\n}\n\nexport const FIELD_TYPE_OPTIONS: FieldTypeOption[] = [\n { value: FieldTypes.TEXT, label: 'Text' },\n { value: FieldTypes.TEXTAREA, label: 'Text Area' },\n { value: FieldTypes.PASSWORD, label: 'Password' },\n { value: FieldTypes.CHECKBOX, label: 'Checkbox' },\n { value: FieldTypes.BUTTON, label: 'Button' },\n { value: FieldTypes.SWITCH, label: 'Switch' },\n { value: FieldTypes.DATEPICKER, label: 'DatePicker' },\n { value: FieldTypes.FIELD_MAPPING, label: 'Field Mapping' },\n { value: FieldTypes.READONLY_FIELD_MAPPING, label: 'Readonly Field Mapping' }\n];\n\n// Base interface for mapping fields\nexport interface MappingRow {\n sourceField: string;\n targetField: string;\n}\n\n// Location information for a field within the form structure\nexport interface FieldLocation {\n tab: string;\n tabIndex: number;\n fieldGroupIndex: number;\n fieldIndex: number;\n}\n\n// Base field properties without location information\nexport interface Field {\n name: string;\n fieldType: FieldTypes;\n required: boolean;\n readonly: boolean;\n useDefaultValue: boolean;\n defaultValue: string;\n onClick?: string;\n rows?: MappingRow[];\n sourceHeader?: string;\n targetHeader?: string;\n manualInputOptionAllowed?: boolean;\n}\n\n// Complete field properties including location information\nexport interface FieldBlockProps extends Field, FieldLocation {}\n\n// Type guard to check if a field is a mapping field\nexport const isMappingField = (fieldType: FieldTypes): boolean => {\n return fieldType === FieldTypes.FIELD_MAPPING || \n fieldType === FieldTypes.READONLY_FIELD_MAPPING;\n};\n\n// Type guard to check if a field can have a required property\nexport const canBeRequired = (fieldType: FieldTypes): boolean => {\n return fieldType !== FieldTypes.CHECKBOX &&\n fieldType !== FieldTypes.BUTTON;\n};"],"names":["_ref","children","dsOnClick","e2e","label","onClick","_ref$anchorEl","anchorEl","_ref$open","open","dsOnClose","theme","anchorOrigin","vertical","horizontal","transformOrigin","sx","marginTop","spacing","current","onClose","fileListToImageFiles","fileList","Array","from","filter","file","type","toLowerCase","startsWith","Editor","props","state","dispatch","useStoreContext","extensions","useExtensions","placeholder","rteRef","useRef","isEditable","setIsEditable","useState","showMenuBar","setShowMenuBar","exampleContent","submittedContent","setSubmittedContent","handleNewImageFiles","useCallback","files","insertPosition","editor","attributesForImageFiles","map","src","URL","createObjectURL","alt","name","insertImages","images","handleDrop","view","event","_slice","_moved","DragEvent","dataTransfer","imageFiles","length","posAtCoords","left","clientX","top","clientY","pos","preventDefault","handlePaste","_view","clipboardData","pastedImageFiles","content","setContent","React","Box","scrollMarginTop","minHeight","updateContent","RichTextEditor","ref","onUpdate","editorContent","getHTML","SET_OVERVIEW","payload","locale","contentType","editable","editorProps","renderControls","EditorMenuControls","RichTextFieldProps","variant","MenuBarProps","hide","footer","Stack","direction","borderTopStyle","borderTopWidth","borderTopColor","palette","divider","py","px","MenuButton","value","tooltipLabel","size","currentState","selected","IconComponent","TextFields","Lock","LockOpen","LinkBubbleMenu","TableBubbleMenu","Button","Typography","mt","style","overflow","maxWidth","mb","RichTextReadOnly","useTheme","MenuControlsContainer","MenuSelectFontFamily","options","MenuDivider","MenuSelectHeading","MenuSelectFontSize","MenuButtonBold","MenuButtonItalic","MenuButtonUnderline","MenuButtonStrikethrough","MenuButtonSubscript","MenuButtonSuperscript","MenuButtonTextColor","defaultTextColor","text","primary","swatchColors","MenuButtonHighlightColor","MenuButtonEditLink","MenuSelectTextAlign","MenuButtonOrderedList","MenuButtonBulletedList","MenuButtonTaskList","isTouchDevice","MenuButtonIndent","MenuButtonUnindent","MenuButtonBlockquote","MenuButtonCode","MenuButtonCodeBlock","MenuButtonImageUpload","onUploadFiles","MenuButtonHorizontalRule","MenuButtonAddTable","MenuButtonRemoveFormatting","MenuButtonUndo","MenuButtonRedo","SuggestionList","forwardRef","selectedIndex","setSelectedIndex","selectItem","index","items","suggestion","mentionItem","id","mentionLabel","command","useEffect","useImperativeHandle","onKeyDown","key","Paper","elevation","List","dense","item","ListItem","disablePadding","ListItemButton","displayName","DOM_RECT_FALLBACK","bottom","height","right","width","x","y","toJSON","mentionSuggestionOptions","async","query","Promise","resolve","toString","slice","render","component","popup","onStart","ReactRenderer","tippy","getReferenceClientRect","clientRect","appendTo","document","body","element","showOnCreate","interactive","trigger","placement","updateProps","setProps","onExit","destroy","undefined","CustomLinkExtension","Link","extend","inclusive","CustomSubscript","Subscript","excludes","CustomSuperscript","Superscript","useMemo","TableImproved","configure","resizable","TableRow","TableHeader","TableCell","BulletList","CodeBlock","Document","HardBreak","OrderedList","Paragraph","Text","Bold","Blockquote","Code","Italic","Underline","Strike","autolink","linkOnPaste","openOnClick","LinkBubbleMenuHandler","Gapcursor","HeadingWithAnchor","TextAlign","types","TextStyle","Color","FontFamily","FontSize","Highlight","multicolor","HorizontalRule","ResizableImage","Dropcursor","TaskList","TaskItem","nested","Mention","Placeholder","History","SERVICE_CONFIGURATION","UI_CONFIGURATION","ADD_LOCALE","UPDATE_SERVICE_DATA","SET_META","SET_STATUS","SET_REDIRECT_URL","SET_MUSTACHE_CLASS","TOGGLE_FEATURED","TOGGLE_TAB","UPDATE_TITLE_TRANSLATION","UPDATE_DESCRIPTION_TRANSLATION","ADD_NEW_FIELD_GROUP","DELETE_FIELD_GROUP","ADD_NEW_FIELD","DELETE_FIELD","UPDATE_FIELD_TYPE","UPDATE_FIELD_NAME","TOGGLE_FIELD_REQUIRED","TOGGLE_FIELD_READONLY","TOGGLE_FIELD_MANUAL_INPUT_OPTION_ALLOWED","TOGGLE_USE_DEFAULT_VALUE","UPDATE_DEFAULT_VALUE","ADD_FIELD_OPTION","UPDATE_FIELD_OPTION","UPLOAD_ICON","UPDATE_BUTTON_ONCLICK","UPDATE_TAB_TITLE_TRANSLATION","UPDATE_TAB_DESCRIPTION_TRANSLATION","ADD_NEW_TAB","UPDATE_FIELD_GROUP_TITLE_TRANSLATION","TOGGLE_SHOW_TAB_CARD_HEADER","UPDATE_FIELD_ATTRIBUTE_TRANSLATION","TOGGLE_MULTIPLE_INSTANCES_META","UPDATE_IFRAME_SRC","UPDATE_SERVICE_DATA_FIELD","UPDATE_SOURCE_HEADER","UPDATE_TARGET_HEADER","UPDATE_DEFAULT_MAPPINGS","IntegrationAppForm","locales","path","indexPath","tabs","setTabs","tabData","setTabData","Object","keys","title_translations","selectedLocale","setSelectedLocale","setAnchorEl","availableLocales","includes","editApp","test","isAlert","setIsAlert","alertSeverity","setAlertSeverity","alertHeader","setAlertHeader","alertBody","setAlertBody","submitting","setSubmitting","description_translations","AutoThemeProvider","Grid","container","xs","Alert","dismissible","header","severity","textAlign","disabled","modified","csrf","querySelector","getAttribute","filteredState","formData","FormData","File","stateValue","formValue","JSON","stringify","append","method","headers","Headers","response","window","fetch","ok","Error","statusText","location","href","error","Connect","log","Tabs","a11yLabel","dsOnChange","_","newIndex","Tab","tabLabel","endIcon","currentTarget","Dropdown","a11yId","handleDropdownClose","option","DropdownItem","ServiceConfigurationTab","UIConfigurationTab","LocaleTab","renderTab","toTitle","result","replace","charAt","toUpperCase","titleInputValue","setTitleInputValue","title","descriptionInputValue","setDescriptionInputValue","short","titleTimer","setTimeout","updatedTitle","newTitleTranslations","updateTitleTranslation","descriptionTimer","updatedDescription","newDescriptionTranslations","updateDescriptionTranslation","clearTimeout","Card","titleBar","TextField","e","target","multiline","maxRows","rows","EditorBlock","ui_layout","tab","tabIndex","tabName","required","fieldGroup","fieldGroupIndex","LocaleBlock","serviceData","service_data","VisuallyHiddenInput","styled","clip","clipPath","position","whiteSpace","ImageWrapper","display","fileInputRef","handleServiceDataFieldChange","isJSON","parse","isValidJSON","icon","public_path","click","cursor","onChange","Select","meta","SelectItem","status","redirect_url","Checkbox","checked","Tooltip","dsOnOpen","alignItems","IconButton","InfoIcon","fontSize","InputProps","resize","paddingTop","paddingBottom","minRows","CheckboxItem","moveCheckbox","useDrag","drop","useDrop","accept","hover","node","enabled","Toggle","showHeader","match","input","Divider","field","fieldIndex","FieldBlock","marginLeft","marginRight","addNewField","deleteFieldGroup","checkboxes","setCheckboxes","fromIndex","toIndex","updatedCheckboxes","movedCheckbox","splice","DndProvider","backend","HTML5Backend","headerAction","addNewTab","prompt","autoDistance","paletteMode","setPaletteMode","prevMode","createTheme","mode","secondary","main","ThemeProvider","CssBaseline","p","margin","padding","useDefaultValue","setUseDefaultValue","defaultValue","allowsDefault","FieldTypes","TEXT","TEXTAREA","DATEPICKER","CHECKBOX","dispatchFieldUpdate","additionalPayload","handleDefaultValueUpdate","handleFieldTypeChange","child","newType","fieldType","FIELD_TYPE_OPTIONS","handleRequiredToggle","handleReadonlyToggle","readonly","FIELD_MAPPING","handleManualInputOptionAllowedToggle","manualInputOptionAllowed","READONLY_FIELD_MAPPING","MappingFields","sourceHeader","targetHeader","isReadonly","BUTTON","handleOnClickUpdate","wrap","handleDelete","handleLocalizationChange","fieldAttribute","marginBottom","fields","fieldMappingDefaults","updateFieldMappingDefaults","invalidDefaultMappings","setInvalidDefaultMappings","trim","parsedJson","isArray","every","validateField","sourceField","targetField","helperText","PASSWORD","SWITCH"],"sourceRoot":""}