@flowgram.ai/form-materials 0.2.18 → 0.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/components/variable-selector/index.tsx","../src/components/variable-selector/use-variable-tree.tsx","../src/components/type-selector/constants.tsx","../src/utils/json-schema/index.ts","../src/components/variable-selector/styles.tsx","../src/components/type-selector/index.tsx","../src/components/json-schema-editor/index.tsx","../src/components/json-schema-editor/styles.tsx","../src/components/json-schema-editor/hooks.tsx","../src/components/json-schema-editor/default-value.tsx","../src/components/json-schema-editor/utils.ts","../src/components/constant-input/index.tsx","../src/components/json-schema-editor/components/blur-input.tsx","../src/components/batch-variable-selector/index.tsx","../src/components/dynamic-value-input/index.tsx","../src/components/dynamic-value-input/styles.tsx","../src/components/condition-row/index.tsx","../src/components/condition-row/styles.tsx","../src/components/condition-row/hooks/useRule.ts","../src/components/condition-row/constants.ts","../src/utils/format-legacy-refs/index.ts","../src/components/condition-row/hooks/useOp.tsx","../src/components/batch-outputs/index.tsx","../src/components/batch-outputs/use-list.ts","../src/components/batch-outputs/styles.tsx","../src/components/prompt-editor/index.tsx","../src/components/prompt-editor/styles.tsx","../src/components/prompt-editor/extensions/markdown.tsx","../src/components/prompt-editor/extensions/language-support.tsx","../src/components/prompt-editor/extensions/jinja.tsx","../src/components/prompt-editor-with-variables/index.tsx","../src/components/prompt-editor-with-variables/extensions/variable.tsx","../src/effects/provide-batch-input/index.ts","../src/effects/provide-batch-outputs/index.ts","../src/effects/auto-rename-ref/index.ts","../src/effects/provide-json-schema-outputs/index.ts","../src/effects/sync-variable-title/index.ts","../src/form-plugins/batch-outputs-plugin/index.ts"],"sourcesContent":["/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './components';\nexport * from './effects';\nexport * from './utils';\nexport * from './typings';\nexport * from './form-plugins';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { TriggerRenderProps } from '@douyinfe/semi-ui/lib/es/treeSelect';\nimport { TreeNodeData } from '@douyinfe/semi-ui/lib/es/tree';\nimport { IconChevronDownStroked, IconIssueStroked } from '@douyinfe/semi-icons';\n\nimport { IJsonSchema } from '../../typings/json-schema';\nimport { useVariableTree } from './use-variable-tree';\nimport { UIRootTitle, UITag, UITreeSelect, UIVarName } from './styles';\n\ninterface PropTypes {\n value?: string[];\n config?: {\n placeholder?: string;\n notFoundContent?: string;\n };\n onChange: (value?: string[]) => void;\n includeSchema?: IJsonSchema | IJsonSchema[];\n excludeSchema?: IJsonSchema | IJsonSchema[];\n readonly?: boolean;\n hasError?: boolean;\n style?: React.CSSProperties;\n triggerRender?: (props: TriggerRenderProps) => React.ReactNode;\n}\n\nexport type VariableSelectorProps = PropTypes;\n\nexport { useVariableTree };\n\nexport const VariableSelector = ({\n value,\n config = {},\n onChange,\n style,\n readonly = false,\n includeSchema,\n excludeSchema,\n hasError,\n triggerRender,\n}: PropTypes) => {\n const treeData = useVariableTree({ includeSchema, excludeSchema });\n\n const treeValue = useMemo(() => {\n if (typeof value === 'string') {\n console.warn(\n 'The Value of VariableSelector is a string, it should be an ARRAY. \\n',\n 'Please check the value of VariableSelector \\n'\n );\n return value;\n }\n return value?.join('.');\n }, [value]);\n\n const renderIcon = (icon: string | JSX.Element) => {\n if (typeof icon === 'string') {\n return <img style={{ marginRight: 8 }} width={12} height={12} src={icon} />;\n }\n\n return icon;\n };\n\n return (\n <>\n <UITreeSelect\n dropdownMatchSelectWidth={false}\n disabled={readonly}\n treeData={treeData}\n size=\"small\"\n value={treeValue}\n clearIcon={null}\n $error={hasError}\n style={style}\n validateStatus={hasError ? 'error' : undefined}\n onChange={(_, _config) => {\n onChange((_config as TreeNodeData).keyPath as string[]);\n }}\n renderSelectedItem={(_option: TreeNodeData) => {\n if (!_option?.keyPath) {\n return (\n <UITag\n prefixIcon={<IconIssueStroked />}\n color=\"amber\"\n closable={!readonly}\n onClose={() => onChange(undefined)}\n >\n {config?.notFoundContent ?? 'Undefined'}\n </UITag>\n );\n }\n\n return (\n <UITag\n prefixIcon={renderIcon(_option.rootMeta?.icon || _option?.icon)}\n closable={!readonly}\n onClose={() => onChange(undefined)}\n >\n <UIRootTitle>\n {_option.rootMeta?.title ? `${_option.rootMeta?.title} -` : null}\n </UIRootTitle>\n <UIVarName>{_option.label}</UIVarName>\n </UITag>\n );\n }}\n showClear={false}\n arrowIcon={<IconChevronDownStroked size=\"small\" />}\n triggerRender={triggerRender}\n placeholder={config?.placeholder ?? 'Select Variable...'}\n />\n </>\n );\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useCallback } from 'react';\n\nimport { ASTMatch, BaseVariableField, useAvailableVariables } from '@flowgram.ai/editor';\nimport { TreeNodeData } from '@douyinfe/semi-ui/lib/es/tree';\nimport { Icon } from '@douyinfe/semi-ui';\n\nimport { ArrayIcons, VariableTypeIcons } from '../type-selector/constants';\nimport { JsonSchemaUtils } from '../../utils/json-schema';\nimport { IJsonSchema } from '../../typings/json-schema';\n\ntype VariableField = BaseVariableField<{ icon?: string | JSX.Element; title?: string }>;\n\nexport function useVariableTree(params: {\n includeSchema?: IJsonSchema | IJsonSchema[];\n excludeSchema?: IJsonSchema | IJsonSchema[];\n}): TreeNodeData[] {\n const { includeSchema, excludeSchema } = params;\n\n const variables = useAvailableVariables();\n\n const getVariableTypeIcon = useCallback((variable: VariableField) => {\n if (variable.meta?.icon) {\n if (typeof variable.meta.icon === 'string') {\n return <img style={{ marginRight: 8 }} width={12} height={12} src={variable.meta.icon} />;\n }\n\n return variable.meta.icon;\n }\n\n const _type = variable.type;\n\n if (ASTMatch.isArray(_type)) {\n return (\n <Icon\n size=\"small\"\n svg={ArrayIcons[_type.items?.kind.toLowerCase()] || VariableTypeIcons.array}\n />\n );\n }\n\n if (ASTMatch.isCustomType(_type)) {\n return <Icon size=\"small\" svg={VariableTypeIcons[_type.typeName.toLowerCase()]} />;\n }\n\n return <Icon size=\"small\" svg={VariableTypeIcons[variable.type?.kind.toLowerCase()]} />;\n }, []);\n\n const renderVariable = (\n variable: VariableField,\n parentFields: VariableField[] = []\n ): TreeNodeData | null => {\n let type = variable?.type;\n\n if (!type) {\n return null;\n }\n\n let children: TreeNodeData[] | undefined;\n\n if (ASTMatch.isObject(type)) {\n children = (type.properties || [])\n .map((_property) => renderVariable(_property as VariableField, [...parentFields, variable]))\n .filter(Boolean) as TreeNodeData[];\n }\n\n const keyPath = [...parentFields.map((_field) => _field.key), variable.key];\n const key = keyPath.join('.');\n\n const isSchemaInclude = includeSchema\n ? JsonSchemaUtils.isASTMatchSchema(type, includeSchema)\n : true;\n const isSchemaExclude = excludeSchema\n ? JsonSchemaUtils.isASTMatchSchema(type, excludeSchema)\n : false;\n\n const isSchemaMatch = isSchemaInclude && !isSchemaExclude;\n\n // If not match, and no children, return null\n if (!isSchemaMatch && !children?.length) {\n return null;\n }\n\n return {\n key: key,\n label: variable.meta?.title || variable.key,\n value: key,\n keyPath,\n icon: getVariableTypeIcon(variable),\n children,\n disabled: !isSchemaMatch,\n rootMeta: parentFields[0]?.meta,\n };\n };\n\n return [...variables.slice(0).reverse()]\n .map((_variable) => renderVariable(_variable as VariableField))\n .filter(Boolean) as TreeNodeData[];\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { CascaderData } from '@douyinfe/semi-ui/lib/es/cascader';\nimport Icon from '@douyinfe/semi-icons';\n\nimport { IJsonSchema } from '../../typings';\n\nexport const VariableTypeIcons: { [key: string]: React.ReactNode } = {\n custom: (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.1 18L4.5032 20.1702C4.24999 21.0909 4.94281 22 5.89773 22C6.54881 22 7.11964 21.565 7.29227 20.9372L8.1 18H12.1L11.5032 20.1702C11.25 21.0909 11.9428 22 12.8977 22C13.5488 22 14.1196 21.565 14.2923 20.9372L15.1 18H19.5C20.3284 18 21 17.3284 21 16.5C21 15.6716 20.3284 15 19.5 15H15.925L17.575 9H20.5C21.3284 9 22 8.32843 22 7.5C22 6.67157 21.3284 6 20.5 6H18.4L18.9968 3.8298C19.25 2.90906 18.5572 2 17.6023 2C16.9512 2 16.3804 2.43504 16.2077 3.06281L15.4 6H11.4L11.9968 3.8298C12.25 2.90906 11.5572 2 10.6023 2C9.95119 2 9.38036 2.43504 9.20773 3.06281L8.4 6H4.5C3.67157 6 3 6.67157 3 7.5C3 8.32843 3.67157 9 4.5 9H7.575L5.925 15H3.5C2.67157 15 2 15.6716 2 16.5C2 17.3284 2.67157 18 3.5 18H5.1ZM8.925 15L10.575 9H14.575L12.925 15H8.925Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n ),\n object: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.33893 1.5835C5.66613 1.5835 5.93137 1.88142 5.93137 2.20862C5.93137 2.53582 5.66613 2.76838 5.33893 2.76838H4.9099C4.34717 2.76838 4.08062 3.07557 4.08062 3.71921V6.58633C4.08062 7.30996 3.80723 7.84734 3.26798 8.19105C3.11426 8.28902 3.10884 8.55273 3.26068 8.65359C3.80476 9.01503 4.08062 9.53994 4.08062 10.2434V13.1251C4.08062 13.7395 4.34717 14.0613 4.9099 14.0613H5.33893C5.66613 14.0613 5.93137 14.3435 5.93137 14.6707C5.93137 14.9979 5.66613 15.2462 5.33893 15.2462H4.64335C3.99177 15.2462 3.48828 15.0268 3.13287 14.6172C2.80708 14.2369 2.64419 13.7103 2.64419 13.0666V10.3165C2.64419 9.8923 2.55534 9.58511 2.37764 9.39494C2.26816 9.27135 1.80618 9.17938 1.38154 9.11602C1.02726 9.06315 0.759057 8.76744 0.765747 8.4093C0.772379 8.0543 1.03439 7.7566 1.38545 7.70346C1.80778 7.63952 2.26906 7.54968 2.37764 7.43477C2.55534 7.22997 2.64419 6.92278 2.64419 6.51319V3.77772C2.64419 3.11945 2.80708 2.59284 3.13287 2.21251C3.48828 1.78829 3.99177 1.5835 4.64335 1.5835H5.33893Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M10.962 15.2463C10.6348 15.2463 10.3696 14.9483 10.3696 14.6211C10.3696 14.2939 10.6348 14.0614 10.962 14.0614H11.391C11.9538 14.0614 12.2203 13.7542 12.2203 13.1105V10.2434C12.2203 9.51979 12.4937 8.98241 13.033 8.6387C13.1867 8.54073 13.1921 8.27703 13.0403 8.17616C12.4962 7.81472 12.2203 7.28982 12.2203 6.58638V3.70463C12.2203 3.09024 11.9538 2.76842 11.391 2.76842L10.962 2.76842C10.6348 2.76842 10.3696 2.48627 10.3696 2.15907C10.3696 1.83188 10.6348 1.58354 10.962 1.58354L11.6576 1.58354C12.3092 1.58354 12.8127 1.80296 13.1681 2.21255C13.4939 2.59289 13.6568 3.1195 13.6568 3.76314V6.51324C13.6568 6.93745 13.7456 7.24464 13.9233 7.43481C14.03 7.5553 14.4328 7.64858 14.8186 7.71393C15.1718 7.77376 15.4401 8.06977 15.4334 8.42791C15.4268 8.78291 15.1646 9.08018 14.814 9.13633C14.4306 9.19774 14.0291 9.28303 13.9233 9.39499C13.7456 9.59978 13.6568 9.90697 13.6568 10.3166V13.052C13.6568 13.7103 13.4939 14.2369 13.1681 14.6172C12.8127 15.0415 12.3092 15.2463 11.6576 15.2463H10.962Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n boolean: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.668 4.66683H5.33463C3.49369 4.66683 2.0013 6.15921 2.0013 8.00016C2.0013 9.84111 3.49369 11.3335 5.33463 11.3335H10.668C12.5089 11.3335 14.0013 9.84111 14.0013 8.00016C14.0013 6.15921 12.5089 4.66683 10.668 4.66683ZM5.33463 3.3335C2.75731 3.3335 0.667969 5.42283 0.667969 8.00016C0.667969 10.5775 2.75731 12.6668 5.33463 12.6668H10.668C13.2453 12.6668 15.3346 10.5775 15.3346 8.00016C15.3346 5.42283 13.2453 3.3335 10.668 3.3335H5.33463Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.66797 8.00016C8.66797 6.89559 9.5634 6.00016 10.668 6.00016C11.7725 6.00016 12.668 6.89559 12.668 8.00016C12.668 9.10473 11.7725 10.0002 10.668 10.0002C9.5634 10.0002 8.66797 9.10473 8.66797 8.00016ZM10.668 7.3335C10.2998 7.3335 10.0013 7.63197 10.0013 8.00016C10.0013 8.36835 10.2998 8.66683 10.668 8.66683C11.0362 8.66683 11.3346 8.36835 11.3346 8.00016C11.3346 7.63197 11.0362 7.3335 10.668 7.3335Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n string: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.3342 3.33321C8.96601 3.33321 8.66753 3.63169 8.66753 3.99988C8.66753 4.36807 8.96601 4.66655 9.3342 4.66655H14.6675C15.0357 4.66655 15.3342 4.36807 15.3342 3.99988C15.3342 3.63169 15.0357 3.33321 14.6675 3.33321H9.3342Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M10.0009 7.99988C10.0009 7.63169 10.2993 7.33321 10.6675 7.33321H14.6675C15.0357 7.33321 15.3342 7.63169 15.3342 7.99988C15.3342 8.36807 15.0357 8.66655 14.6675 8.66655H10.6675C10.2993 8.66655 10.0009 8.36807 10.0009 7.99988Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.0009 11.3332C11.6327 11.3332 11.3342 11.6317 11.3342 11.9999C11.3342 12.3681 11.6327 12.6665 12.0009 12.6665H14.6675C15.0357 12.6665 15.3342 12.3681 15.3342 11.9999C15.3342 11.6317 15.0357 11.3332 14.6675 11.3332H12.0009Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M9.86659 14.1482L8.23444 10.1844H3.18136C3.13868 10.1844 3.09685 10.1808 3.05616 10.1738L1.66589 14.1129C1.53049 14.4965 1.10971 14.6978 0.726058 14.5624C0.342408 14.427 0.141166 14.0062 0.276572 13.6225L4.37566 2.00848C4.71323 1.05202 6.05321 1.01763 6.4394 1.95552L11.2289 13.5872C11.3838 13.9634 11.2044 14.394 10.8282 14.5489C10.452 14.7038 10.0215 14.5244 9.86659 14.1482ZM5.44412 3.40791L3.57241 8.71109H7.62778L5.44412 3.40791Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n integer: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15.132 11.4601C15.644 11.0121 15.9 10.3921 15.9 9.60007C15.9 8.60807 15.5 7.93607 14.7 7.58407C15.412 7.23207 15.768 6.62407 15.768 5.76007C15.768 5.05607 15.536 4.48007 15.072 4.03207C14.608 3.59207 14.012 3.37207 13.284 3.37207C12.588 3.37207 12.008 3.58007 11.544 3.99607C11.064 4.42007 10.808 4.98807 10.776 5.70007H12C12.064 4.88407 12.492 4.47607 13.284 4.47607C14.124 4.47607 14.544 4.91607 14.544 5.79607C14.544 6.66007 14.112 7.09207 13.248 7.09207H13.044V8.16007H13.248C14.2 8.16007 14.676 8.62807 14.676 9.56407C14.676 10.5081 14.212 10.9801 13.284 10.9801C12.9 10.9801 12.584 10.8761 12.336 10.6681C12.064 10.4441 11.916 10.1161 11.892 9.68407H10.668C10.692 10.4761 10.964 11.0841 11.484 11.5081C11.948 11.8921 12.548 12.0841 13.284 12.0841C14.036 12.0841 14.652 11.8761 15.132 11.4601Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M4.46875 12.0003V10.9083L7.75675 6.91228C8.06075 6.54428 8.21275 6.16428 8.21275 5.77228C8.21275 4.90828 7.79675 4.47628 6.96475 4.47628C6.60475 4.47628 6.31275 4.57628 6.08875 4.77628C5.83275 5.00828 5.70475 5.34828 5.70475 5.79628H4.48075C4.48075 5.07628 4.71275 4.49228 5.17675 4.04428C5.64075 3.60428 6.23675 3.38428 6.96475 3.38428C7.70075 3.38428 8.29675 3.60028 8.75275 4.03228C9.20875 4.47228 9.43675 5.05628 9.43675 5.78428C9.43675 6.13628 9.36875 6.45628 9.23275 6.74428C9.12075 6.97628 8.92075 7.27228 8.63275 7.63228L5.95675 10.9083H9.43675V12.0003H4.46875Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M1.668 12.0001V4.78805L0 6.25205V4.89605L1.668 3.45605H2.892V12.0001H1.668Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n number: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.44151 5.3068C3.44151 3.83404 4.71542 2.64014 6.18818 2.64014C7.66094 2.64014 8.93484 3.83404 8.93484 5.3068V10.6135C8.93484 12.0862 7.66094 13.2801 6.18818 13.2801C4.71542 13.2801 3.44151 12.0862 3.44151 10.6135V5.3068ZM7.60151 5.3068C7.60151 4.57042 6.92456 3.97347 6.18818 3.97347C5.4518 3.97347 4.77484 4.57042 4.77484 5.3068V10.6135C4.77484 11.3498 5.4518 11.9468 6.18818 11.9468C6.92456 11.9468 7.60151 11.3498 7.60151 10.6135V5.3068Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.9882 2.64014C11.5154 2.64014 10.2415 3.83404 10.2415 5.3068V10.6135C10.2415 12.0862 11.5154 13.2801 12.9882 13.2801C14.4609 13.2801 15.7348 12.0862 15.7348 10.6135V5.3068C15.7348 3.83404 14.4609 2.64014 12.9882 2.64014ZM14.4015 10.6135C14.4015 11.3498 13.7246 11.9468 12.9882 11.9468C12.2518 11.9468 11.5748 11.3498 11.5748 10.6135V5.3068C11.5748 4.57042 12.2518 3.97347 12.9882 3.97347C13.7246 3.97347 14.4015 4.57042 14.4015 5.3068V10.6135Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M1.21484 13.2001C1.76713 13.2001 2.21484 12.7524 2.21484 12.2001C2.21484 11.6479 1.76713 11.2001 1.21484 11.2001C0.662559 11.2001 0.214844 11.6479 0.214844 12.2001C0.214844 12.7524 0.662559 13.2001 1.21484 13.2001Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n array: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.23759 1.00342H2.00391V14.997H5.23759V13.6251H3.35127V2.37534H5.23759V1.00342Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M10.7624 1.00342H13.9961V14.997H10.7624V13.6251H12.6487V2.37534H10.7624V1.00342Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n\n stream: (\n <svg\n viewBox=\"0 0 1024 1024\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n >\n <path\n d=\"M879.674 544.51l-158.254-0.221c-8.534 2.287-17.305-2.776-19.588-11.307l-23.862-75.877-74.742 350.891c0 0-1.523 18.507-11.518 18.507s-26.9 0.281-26.9 0.281c-8.259 2.213-16.748-2.687-18.961-10.949l-92.741-457.648-70.305 330.634c-2.261 8.291-11.94 15.206-20.385 12.986l-24.876 0.339c-8.723 2.293-17.685-2.789-20.023-11.349L270.629 544.51 143.993 544.51c-8.831 0-15.993-7.159-15.993-15.993l0-31.986c0-8.831 7.162-15.993 15.993-15.993l157.429-0.516c9.565-0.304 17.685 0.788 20.023 9.351l24.386 76.092 68.642-358.907c0 0 3.4-10.894 14.397-10.894 10.994 0 34.107-0.448 34.107-0.448 8.262-2.213 16.751 2.687 18.965 10.949l91.912 454.126 67.948-326.182c2.213-8.262 8.707-15.161 16.965-12.948l27.316-0.333c8.531-2.287 17.301 2.776 19.588 11.31l46.665 148.4 127.337 0c8.835 0 15.993 7.162 15.993 15.993l0 31.986C895.667 537.352 888.508 544.51 879.674 544.51z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n ),\n\n map: (\n <svg\n viewBox=\"0 0 1024 1024\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n >\n <path\n d=\"M877.860571 938.642286h-645.851428c-27.574857 0-54.052571-11.337143-73.508572-31.744a110.957714 110.957714 0 0 1-30.500571-76.8V193.828571c0-28.745143 10.971429-56.32 30.500571-76.726857a101.888 101.888 0 0 1 73.508572-31.817143h574.171428c27.501714 0 53.979429 11.337143 73.508572 31.744 19.529143 20.333714 30.500571 48.054857 30.500571 76.8v522.020572a34.157714 34.157714 0 0 1-6.948571 22.820571c-37.156571 19.382857-57.636571 39.350857-57.636572 72.630857 0 39.716571 19.894857 50.029714 57.636572 72.777143a34.816 34.816 0 0 1-8.045714 49.298286 32.256 32.256 0 0 1-17.334858 5.193143z m-32.256-254.537143V193.828571a40.228571 40.228571 0 0 0-39.497142-41.179428H232.009143a40.301714 40.301714 0 0 0-39.497143 41.252571V699.245714c17.773714-9.874286 37.449143-14.994286 57.417143-14.921143h595.675428v-0.073142z m-595.675428 187.245714h566.198857c-22.893714-11.190857-27.940571-39.497143-28.013714-59.977143 0-20.260571 3.218286-43.885714 28.013714-59.904h-566.125714c-31.670857 0-57.417143 26.843429-57.417143 59.977143 0 33.060571 25.746286 59.904 57.344 59.904z\"\n fill=\"currentColor\"\n ></path>\n <path\n d=\"M320 128m32.036571 0l-0.073142 0q32.036571 0 32.036571 32.036571l0 511.926858q0 32.036571-32.036571 32.036571l0.073142 0q-32.036571 0-32.036571-32.036571l0-511.926858q0-32.036571 32.036571-32.036571Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n ),\n};\n\nexport const ArrayIcons: { [key: string]: React.ReactNode } = {\n object: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 1.58105H3.6139V2.87326H1.36702V13.1264H3.6139V14.4186H0V1.58105ZM3.41656 13.3264V13.3266H1.17155V13.3264H3.41656ZM0.197344 14.2186H0.199219V1.78125H3.41656V1.78105H0.197344V14.2186ZM12.3861 1.58105H16V14.4186H12.3861V13.1264H14.633V2.87326H12.3861V1.58105ZM12.5834 2.67326V1.78105H15.8027V1.78125H12.5853V2.67326H12.5834ZM12.5853 13.3266V14.2186H12.5834V13.3264H14.8303V2.67345H14.8322V13.3266H12.5853ZM3.82031 5.9091C3.82031 5.18535 4.40703 4.59863 5.13078 4.59863C5.85453 4.59863 6.44124 5.18535 6.44124 5.9091C6.44124 6.56485 5.9596 7.1081 5.33078 7.2044V8.70018H5.32877C5.32982 8.75093 5.33078 8.80912 5.33078 8.87034V9.72111C5.33078 10.0195 5.57268 10.2614 5.87109 10.2614H6.24124C6.55613 10.2614 6.8114 10.5167 6.8114 10.8316C6.8114 11.1465 6.55613 11.4017 6.24124 11.4017H5.87109C4.94291 11.4017 4.19047 10.6493 4.19047 9.72111V6.82186C3.96158 6.58607 3.82031 6.26397 3.82031 5.9091ZM7.33679 5.9091C7.33679 5.59421 7.59205 5.33894 7.90694 5.33894H11.6085C11.9234 5.33894 12.1786 5.59421 12.1786 5.9091C12.1786 6.22399 11.9234 6.47925 11.6085 6.47925H7.90694C7.59205 6.47925 7.33679 6.22399 7.33679 5.9091ZM7.33679 9.86846C7.33679 9.55357 7.59205 9.2983 7.90694 9.2983H11.6085C11.9234 9.2983 12.1786 9.55357 12.1786 9.86846C12.1786 10.1833 11.9234 10.4386 11.6085 10.4386H7.90694C7.59205 10.4386 7.33679 10.1833 7.33679 9.86846Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n boolean: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 1.58105H3.6139V2.87326H1.36702V13.1264H3.6139V14.4186H0V1.58105ZM3.41656 13.3264V13.3266H1.17155V13.3264H3.41656ZM0.197344 14.2186H0.199219V1.78125H3.41656V1.78105H0.197344V14.2186ZM12.3861 1.58105H16V14.4186H12.3861V13.1264H14.633V2.87326H12.3861V1.58105ZM12.5834 2.67326V1.78105H15.8027V1.78125H12.5853V2.67326H12.5834ZM12.5853 13.3266V14.2186H12.5834V13.3264H14.8303V2.67345H14.8322V13.3266H12.5853ZM2.75 7.99993C2.75 6.14518 4.25358 4.6416 6.10833 4.6416H9.775C11.6298 4.6416 13.1333 6.14518 13.1333 7.99993C13.1333 9.85469 11.6298 11.3583 9.775 11.3583H6.10833C4.25358 11.3583 2.75 9.85469 2.75 7.99993ZM6.10833 5.85827C4.92552 5.85827 3.96667 6.81713 3.96667 7.99993C3.96667 9.18274 4.92552 10.1416 6.10833 10.1416H9.775C10.9578 10.1416 11.9167 9.18274 11.9167 7.99993C11.9167 6.81713 10.9578 5.85827 9.775 5.85827H6.10833ZM8.25 7.99993C8.25 7.1577 8.93277 6.47493 9.775 6.47493C10.6172 6.47493 11.3 7.1577 11.3 7.99993C11.3 8.84217 10.6172 9.52493 9.775 9.52493C8.93277 9.52493 8.25 8.84217 8.25 7.99993ZM9.775 7.6916C9.60471 7.6916 9.46667 7.82965 9.46667 7.99993C9.46667 8.17022 9.60471 8.30827 9.775 8.30827C9.94529 8.30827 10.0833 8.17022 10.0833 7.99993C10.0833 7.82965 9.94529 7.6916 9.775 7.6916Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n string: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 1.58105H3.6139V2.87326H1.36702V13.1264H3.6139V14.4186H0V1.58105ZM3.41656 13.3264V13.3266H1.17155V13.3264H3.41656ZM0.197344 14.2186H0.199219V1.78125H3.41656V1.78105H0.197344V14.2186ZM12.3861 1.58105H16V14.4186H12.3861V13.1264H14.633V2.87326H12.3861V1.58105ZM12.5834 2.67326V1.78105H15.8027V1.78125H12.5853V2.67326H12.5834ZM12.5853 13.3266V14.2186H12.5834V13.3264H14.8303V2.67345H14.8322V13.3266H12.5853ZM5.23701 4.07158C5.50364 3.3161 6.56205 3.28894 6.86709 4.02974L10 11.6383C10.1329 11.9609 9.979 12.3302 9.65631 12.4631C9.33363 12.596 8.96434 12.4421 8.83147 12.1194L7.8021 9.61951H4.61903L3.7474 12.0891C3.63126 12.4182 3.27034 12.5908 2.94127 12.4747C2.6122 12.3585 2.43958 11.9976 2.55573 11.6685L5.23701 4.07158ZM6.08814 5.45704L5.06505 8.35579H7.28174L6.08814 5.45704ZM8.81938 6.07534C8.81938 5.75166 9.08177 5.48926 9.40545 5.48926H12.8941C13.2178 5.48926 13.4802 5.75166 13.4802 6.07534C13.4802 6.39902 13.2178 6.66142 12.8941 6.66142H9.40545C9.08177 6.66142 8.81938 6.39902 8.81938 6.07534ZM10.2668 9.69181C10.2668 9.36812 10.5292 9.10573 10.8529 9.10573H12.8941C13.2178 9.10573 13.4802 9.36812 13.4802 9.69181C13.4802 10.0155 13.2178 10.2779 12.8941 10.2779H10.8529C10.5292 10.2779 10.2668 10.0155 10.2668 9.69181Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n integer: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 1.58105H3.6139V2.87326H1.36702V13.1264H3.6139V14.4186H0V1.58105ZM3.41656 13.3264V13.3266H1.17155V13.3264H3.41656ZM0.197344 14.2186H0.199219V1.78125H3.41656V1.78105H0.197344V14.2186ZM12.3861 1.58105H16V14.4186H12.3861V13.1264H14.633V2.87326H12.3861V1.58105ZM12.5834 2.67326V1.78105H15.8027V1.78125H12.5853V2.67326H12.5834ZM12.5853 13.3266V14.2186H12.5834V13.3264H14.8303V2.67345H14.8322V13.3266H12.5853ZM10.3614 5.22374C10.7161 4.90585 11.1581 4.75 11.6762 4.75C12.2173 4.75 12.6723 4.91467 13.0281 5.25207L13.0291 5.253C13.3852 5.59688 13.561 6.03946 13.561 6.56767C13.561 6.89 13.4945 7.17448 13.3539 7.41445C13.2572 7.57972 13.1279 7.71948 12.9685 7.83428C13.1575 7.95643 13.3099 8.11182 13.4225 8.30109C13.5793 8.5644 13.6531 8.88311 13.6531 9.24936C13.6531 9.83787 13.4612 10.3151 13.0656 10.6612C12.6982 10.9795 12.2305 11.1341 11.6762 11.1341C11.1356 11.1341 10.6805 10.9925 10.324 10.6977C9.92124 10.3691 9.71723 9.90026 9.69942 9.31256L9.69473 9.15802H10.846L10.8539 9.2997C10.8689 9.5698 10.9591 9.75553 11.1096 9.87941L11.1106 9.88027C11.2519 9.99882 11.4365 10.0631 11.6762 10.0631C11.9765 10.0631 12.1743 9.98692 12.2984 9.86071C12.4229 9.73404 12.4984 9.53136 12.4984 9.22422C12.4984 8.92116 12.4215 8.72127 12.2939 8.59581C12.1658 8.46989 11.961 8.39373 11.6511 8.39373H11.3586V7.34788H11.6511C11.9297 7.34788 12.111 7.27834 12.2238 7.16555C12.3366 7.05276 12.4062 6.87138 12.4062 6.59281C12.4062 6.30696 12.3378 6.12041 12.2277 6.00501C12.1188 5.89092 11.9446 5.82098 11.6762 5.82098C11.4248 5.82098 11.2539 5.88537 11.1407 5.99325C11.0268 6.10185 10.9497 6.27522 10.9291 6.5375L10.9183 6.67577H9.76788L9.77492 6.51904C9.79886 5.98644 9.99237 5.54989 10.3614 5.22374ZM5.91032 5.26037C6.26612 4.92297 6.72112 4.7583 7.26219 4.7583C7.80751 4.7583 8.26297 4.91938 8.61401 5.25194L8.61501 5.25289C8.96719 5.59272 9.13852 6.04185 9.13852 6.58435C9.13852 6.84997 9.08709 7.09565 8.9817 7.31883L8.98114 7.31999C8.89563 7.49712 8.74775 7.71415 8.54418 7.96862L8.54322 7.96981L6.87446 10.0127H9.13852V11.0753H5.36909V10.1089L7.69946 7.27679C7.89456 7.04062 7.98374 6.80773 7.98374 6.57597C7.98374 6.29602 7.91626 6.11385 7.8078 6.00122C7.70036 5.88964 7.52811 5.8209 7.26219 5.8209C7.04017 5.8209 6.87439 5.88173 6.75075 5.99193C6.61227 6.11766 6.53226 6.30918 6.53226 6.59273V6.74273H5.37747V6.59273C5.37747 6.05443 5.55248 5.60586 5.90934 5.2613L5.91032 5.26037ZM3.50907 4.80865H4.56964V11.0754H3.41486V6.2201L2.25 7.24249V5.89561L3.50907 4.80865Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n number: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.6139 1.58154H0V14.4191H3.6139V13.1269H1.36702V2.87375H3.6139V1.58154ZM3.41656 13.3271V13.3269H1.17155V13.3271H3.41656ZM0.199219 14.2191H0.197344V1.78154H3.41656V1.78174H0.199219V14.2191ZM16 1.58154H12.3861V2.87375H14.633V13.1269H12.3861V14.4191H16V1.58154ZM12.5834 1.78154V2.67375H12.5853V1.78174H15.8027V1.78154H12.5834ZM12.5853 14.2191V13.3271H14.8322V2.67394H14.8303V13.3269H12.5834V14.2191H12.5853ZM6.86771 4.5C5.87019 4.5 5.00104 5.30767 5.00104 6.31667V9.63333C5.00104 10.6423 5.87019 11.45 6.86771 11.45C7.86523 11.45 8.73438 10.6423 8.73438 9.63333V6.31667C8.73438 5.30767 7.86523 4.5 6.86771 4.5ZM11.1177 4.5C10.1202 4.5 9.25104 5.30767 9.25104 6.31667V9.63333C9.25104 10.6423 10.1202 11.45 11.1177 11.45C12.1152 11.45 12.9844 10.6423 12.9844 9.63333V6.31667C12.9844 5.30767 12.1152 4.5 11.1177 4.5ZM6.13438 6.31667C6.13438 5.9503 6.47884 5.63333 6.86771 5.63333C7.25657 5.63333 7.60104 5.9503 7.60104 6.31667V9.63333C7.60104 9.9997 7.25657 10.3167 6.86771 10.3167C6.47884 10.3167 6.13438 9.9997 6.13438 9.63333V6.31667ZM10.3844 6.31667C10.3844 5.9503 10.7288 5.63333 11.1177 5.63333C11.5066 5.63333 11.851 5.9503 11.851 6.31667V9.63333C11.851 9.9997 11.5066 10.3167 11.1177 10.3167C10.7288 10.3167 10.3844 9.9997 10.3844 9.63333V6.31667ZM3.75938 9.85C3.33135 9.85 2.98438 10.197 2.98438 10.625C2.98438 11.053 3.33135 11.4 3.75938 11.4C4.1874 11.4 4.53438 11.053 4.53438 10.625C4.53438 10.197 4.1874 9.85 3.75938 9.85Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n};\n\nexport const getSchemaIcon = (value?: Partial<IJsonSchema>) => {\n if (value?.type === 'array') {\n return ArrayIcons[value.items?.type || 'object'];\n }\n\n return VariableTypeIcons[value?.type || 'object'];\n};\n\nconst labelStyle: React.CSSProperties = { display: 'flex', alignItems: 'center', gap: 5 };\n\nconst firstUppercase = (str: string) => str.charAt(0).toUpperCase() + str.slice(1);\n\nconst baseOptions: CascaderData[] = [\n {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={getSchemaIcon({ type: 'string' })} />\n {firstUppercase('string')}\n </div>\n ),\n value: 'string',\n },\n {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={getSchemaIcon({ type: 'integer' })} />\n {firstUppercase('integer')}\n </div>\n ),\n value: 'integer',\n },\n {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={getSchemaIcon({ type: 'number' })} />\n {firstUppercase('number')}\n </div>\n ),\n value: 'number',\n },\n\n {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={getSchemaIcon({ type: 'boolean' })} />\n {firstUppercase('boolean')}\n </div>\n ),\n value: 'boolean',\n },\n {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={getSchemaIcon({ type: 'object' })} />\n {firstUppercase('object')}\n </div>\n ),\n value: 'object',\n },\n];\n\nexport const options: CascaderData[] = [\n ...baseOptions,\n {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={getSchemaIcon({ type: 'array' })} />\n {firstUppercase('array')}\n </div>\n ),\n value: 'array',\n children: baseOptions.map((_opt) => ({\n ..._opt,\n value: `${_opt.value}`,\n label: (\n <div style={labelStyle}>\n <Icon\n size=\"small\"\n svg={getSchemaIcon({ type: 'array', items: { type: _opt.value as string } })}\n />\n {firstUppercase(_opt.value as string)}\n </div>\n ),\n })),\n },\n];\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { get } from 'lodash';\nimport { ASTFactory, ASTKind, ASTMatch, ASTNode, ASTNodeJSON, BaseType } from '@flowgram.ai/editor';\n\nimport { IJsonSchema } from '../../typings/json-schema';\n\nexport namespace JsonSchemaUtils {\n /**\n * Converts a JSON schema to an Abstract Syntax Tree (AST) representation.\n * This function recursively processes the JSON schema and creates corresponding AST nodes.\n *\n * For more information on JSON Schema, refer to the official documentation:\n * https://json-schema.org/\n *\n * @param jsonSchema - The JSON schema to convert.\n * @returns An AST node representing the JSON schema, or undefined if the schema type is not recognized.\n */\n export function schemaToAST(jsonSchema: IJsonSchema): ASTNodeJSON | undefined {\n const { type, extra } = jsonSchema || {};\n const { weak = false } = extra || {};\n\n if (!type) {\n return undefined;\n }\n\n switch (type) {\n case 'object':\n if (weak) {\n return { kind: ASTKind.Object, weak: true };\n }\n return ASTFactory.createObject({\n properties: Object.entries(jsonSchema.properties || {})\n /**\n * Sorts the properties of a JSON schema based on the 'extra.index' field.\n * If the 'extra.index' field is not present, the property will be treated as having an index of 0.\n */\n .sort((a, b) => (get(a?.[1], 'extra.index') || 0) - (get(b?.[1], 'extra.index') || 0))\n .map(([key, _property]) => ({\n key,\n type: schemaToAST(_property),\n meta: {\n title: _property.title,\n description: _property.description,\n },\n })),\n });\n case 'array':\n if (weak) {\n return { kind: ASTKind.Array, weak: true };\n }\n return ASTFactory.createArray({\n items: schemaToAST(jsonSchema.items!),\n });\n case 'map':\n if (weak) {\n return { kind: ASTKind.Map, weak: true };\n }\n return ASTFactory.createMap({\n valueType: schemaToAST(jsonSchema.additionalProperties!),\n });\n case 'string':\n return ASTFactory.createString();\n case 'number':\n return ASTFactory.createNumber();\n case 'boolean':\n return ASTFactory.createBoolean();\n case 'integer':\n return ASTFactory.createInteger();\n\n default:\n // If the type is not recognized, return CustomType\n return ASTFactory.createCustomType({ typeName: type });\n }\n }\n\n /**\n * Convert AST To JSON Schema\n * @param typeAST\n * @returns\n */\n export function astToSchema(\n typeAST: ASTNode,\n options?: { drilldown?: boolean }\n ): IJsonSchema | undefined {\n const { drilldown = true } = options || {};\n\n if (ASTMatch.isString(typeAST)) {\n return {\n type: 'string',\n };\n }\n\n if (ASTMatch.isBoolean(typeAST)) {\n return {\n type: 'boolean',\n };\n }\n\n if (ASTMatch.isNumber(typeAST)) {\n return {\n type: 'number',\n };\n }\n\n if (ASTMatch.isInteger(typeAST)) {\n return {\n type: 'integer',\n };\n }\n\n if (ASTMatch.isObject(typeAST)) {\n return {\n type: 'object',\n properties: drilldown\n ? Object.fromEntries(\n typeAST.properties.map((property) => {\n const schema = astToSchema(property.type);\n\n if (property.meta?.title && schema) {\n schema.title = property.meta.title;\n }\n if (property.meta?.description && schema) {\n schema.description = property.meta.description;\n }\n\n return [property.key, schema!];\n })\n )\n : {},\n };\n }\n\n if (ASTMatch.isArray(typeAST)) {\n return {\n type: 'array',\n items: drilldown ? astToSchema(typeAST.items) : undefined,\n };\n }\n\n if (ASTMatch.isMap(typeAST)) {\n return {\n type: 'map',\n items: drilldown ? astToSchema(typeAST.valueType) : undefined,\n };\n }\n\n if (ASTMatch.isCustomType(typeAST)) {\n return {\n type: typeAST.typeName,\n };\n }\n\n return undefined;\n }\n\n /**\n * Check if the AST type is match the JSON Schema\n * @param typeAST\n * @param schema\n * @returns\n */\n export function isASTMatchSchema(\n typeAST: BaseType,\n schema: IJsonSchema | IJsonSchema[]\n ): boolean {\n if (Array.isArray(schema)) {\n return typeAST.isTypeEqual(\n ASTFactory.createUnion({\n types: schema.map((_schema) => schemaToAST(_schema)!).filter(Boolean),\n })\n );\n }\n\n return typeAST.isTypeEqual(schemaToAST(schema));\n }\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\nimport { Tag, TreeSelect } from '@douyinfe/semi-ui';\n\nexport const UIRootTitle = styled.div`\n margin-right: 4px;\n min-width: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--semi-color-text-2);\n`;\n\nexport const UIVarName = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 50%;\n`;\n\nexport const UITag = styled(Tag)`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n & .semi-tag-content-center {\n justify-content: flex-start;\n }\n\n &.semi-tag {\n margin: 0;\n }\n`;\n\nexport const UITreeSelect = styled(TreeSelect)<{ $error?: boolean }>`\n outline: ${({ $error }) => ($error ? '1px solid red' : 'none')};\n\n height: 22px;\n min-height: 22px;\n line-height: 22px;\n\n & .semi-tree-select-selection {\n padding: 0 2px;\n height: 22px;\n }\n\n & .semi-tree-select-selection-content {\n width: 100%;\n }\n\n & .semi-tree-select-selection-placeholder {\n padding-left: 10px;\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { Button, Cascader } from '@douyinfe/semi-ui';\n\nimport { IJsonSchema } from '../../typings';\nimport { ArrayIcons, VariableTypeIcons, getSchemaIcon, options } from './constants';\n\ninterface PropTypes {\n value?: Partial<IJsonSchema>;\n onChange: (value?: Partial<IJsonSchema>) => void;\n disabled?: boolean;\n style?: React.CSSProperties;\n}\n\nexport const getTypeSelectValue = (value?: Partial<IJsonSchema>): string[] | undefined => {\n if (value?.type === 'array' && value?.items) {\n return [value.type, ...(getTypeSelectValue(value.items) || [])];\n }\n\n return value?.type ? [value.type] : undefined;\n};\n\nexport const parseTypeSelectValue = (value?: string[]): Partial<IJsonSchema> | undefined => {\n const [type, ...subTypes] = value || [];\n\n if (type === 'array') {\n return { type: 'array', items: parseTypeSelectValue(subTypes) };\n }\n\n return { type };\n};\n\nexport function TypeSelector(props: PropTypes) {\n const { value, onChange, disabled, style } = props;\n\n const selectValue = useMemo(() => getTypeSelectValue(value), [value]);\n\n return (\n <Cascader\n disabled={disabled}\n size=\"small\"\n triggerRender={() => (\n <Button size=\"small\" style={style}>\n {getSchemaIcon(value)}\n </Button>\n )}\n treeData={options}\n value={selectValue}\n leafOnly={true}\n onChange={(value) => {\n onChange(parseTypeSelectValue(value as string[]));\n }}\n />\n );\n}\n\nexport { VariableTypeIcons, ArrayIcons, getSchemaIcon };\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo, useState } from 'react';\n\nimport { Button, Checkbox, IconButton } from '@douyinfe/semi-ui';\nimport {\n IconExpand,\n IconShrink,\n IconPlus,\n IconChevronDown,\n IconChevronRight,\n IconMinus,\n} from '@douyinfe/semi-icons';\n\nimport { TypeSelector } from '../type-selector';\nimport { IJsonSchema } from '../../typings';\nimport { ConfigType, PropertyValueType } from './types';\nimport {\n IconAddChildren,\n UIActions,\n UICollapseTrigger,\n UICollapsible,\n UIContainer,\n UIExpandDetail,\n UILabel,\n UIProperties,\n UIPropertyLeft,\n UIPropertyMain,\n UIPropertyRight,\n UIRequired,\n UIType,\n} from './styles';\nimport { UIName } from './styles';\nimport { DefaultValueWrapper, UIRow } from './styles';\nimport { usePropertiesEdit } from './hooks';\nimport { DefaultValue } from './default-value';\nimport { BlurInput } from './components/blur-input';\n\nexport function JsonSchemaEditor(props: {\n value?: IJsonSchema;\n onChange?: (value: IJsonSchema) => void;\n config?: ConfigType;\n className?: string;\n}) {\n const { value = { type: 'object' }, config = {}, onChange: onChangeProps } = props;\n const { propertyList, onAddProperty, onRemoveProperty, onEditProperty } = usePropertiesEdit(\n value,\n onChangeProps\n );\n\n return (\n <UIContainer className={props.className}>\n <UIProperties>\n {propertyList.map((_property, index) => (\n <PropertyEdit\n key={_property.key}\n value={_property}\n config={config}\n $index={index}\n onChange={(_v) => {\n onEditProperty(_property.key!, _v);\n }}\n onRemove={() => {\n onRemoveProperty(_property.key!);\n }}\n />\n ))}\n </UIProperties>\n <Button\n size=\"small\"\n style={{ marginTop: 10, marginLeft: 16 }}\n icon={<IconPlus />}\n onClick={onAddProperty}\n >\n {config?.addButtonText ?? 'Add'}\n </Button>\n </UIContainer>\n );\n}\n\nfunction PropertyEdit(props: {\n value?: PropertyValueType;\n config?: ConfigType;\n onChange?: (value: PropertyValueType) => void;\n onRemove?: () => void;\n $isLast?: boolean;\n $index?: number;\n $isFirst?: boolean;\n $parentExpand?: boolean;\n $parentType?: string;\n $showLine?: boolean;\n $level?: number; // 添加层级属性\n}) {\n const {\n value,\n config,\n $level = 0,\n onChange: onChangeProps,\n onRemove,\n $index,\n $isFirst,\n $isLast,\n $parentExpand = false,\n $parentType = '',\n $showLine,\n } = props;\n\n const [expand, setExpand] = useState(false);\n const [collapse, setCollapse] = useState(false);\n\n const { name, type, items, default: defaultValue, description, isPropertyRequired } = value || {};\n\n const typeSelectorValue = useMemo(() => ({ type, items }), [type, items]);\n\n const { propertyList, isDrilldownObject, onAddProperty, onRemoveProperty, onEditProperty } =\n usePropertiesEdit(value, onChangeProps);\n\n const onChange = (key: string, _value: any) => {\n onChangeProps?.({\n ...(value || {}),\n [key]: _value,\n });\n };\n\n const showCollapse = isDrilldownObject && propertyList.length > 0;\n\n return (\n <>\n <UIPropertyLeft\n type={type}\n $index={$index}\n $isFirst={$isFirst}\n $isLast={$isLast}\n $showLine={$showLine}\n $isExpand={expand}\n $parentExpand={$parentExpand}\n $parentType={$parentType}\n >\n {showCollapse && (\n <UICollapseTrigger onClick={() => setCollapse((_collapse) => !_collapse)}>\n {collapse ? <IconChevronDown size=\"small\" /> : <IconChevronRight size=\"small\" />}\n </UICollapseTrigger>\n )}\n </UIPropertyLeft>\n <UIPropertyRight>\n <UIPropertyMain\n $showCollapse={showCollapse}\n $collapse={collapse}\n $expand={expand}\n type={type}\n >\n <UIRow>\n <UIName>\n <BlurInput\n placeholder={config?.placeholder ?? 'Input Variable Name'}\n size=\"small\"\n value={name}\n onChange={(value) => onChange('name', value)}\n />\n </UIName>\n <UIType>\n <TypeSelector\n value={typeSelectorValue}\n onChange={(_value) => {\n onChangeProps?.({\n ...(value || {}),\n ..._value,\n });\n }}\n />\n </UIType>\n <UIRequired>\n <Checkbox\n checked={isPropertyRequired}\n onChange={(e) => onChange('isPropertyRequired', e.target.checked)}\n />\n </UIRequired>\n <UIActions>\n <IconButton\n size=\"small\"\n theme=\"borderless\"\n icon={expand ? <IconShrink size=\"small\" /> : <IconExpand size=\"small\" />}\n onClick={() => {\n setExpand((_expand) => !_expand);\n }}\n />\n {isDrilldownObject && (\n <IconButton\n size=\"small\"\n theme=\"borderless\"\n icon={<IconAddChildren />}\n onClick={() => {\n onAddProperty();\n setCollapse(true);\n }}\n />\n )}\n <IconButton\n size=\"small\"\n theme=\"borderless\"\n icon={<IconMinus size=\"small\" />}\n onClick={onRemove}\n />\n </UIActions>\n </UIRow>\n {expand && (\n <UIExpandDetail>\n <UILabel>{config?.descTitle ?? 'Description'}</UILabel>\n <BlurInput\n size=\"small\"\n value={description}\n onChange={(value) => onChange('description', value)}\n placeholder={config?.descPlaceholder ?? 'Help LLM to understand the property'}\n />\n {$level === 0 && type && type !== 'array' && (\n <>\n <UILabel style={{ marginTop: 10 }}>\n {config?.defaultValueTitle ?? 'Default Value'}\n </UILabel>\n <DefaultValueWrapper>\n <DefaultValue\n value={defaultValue}\n schema={value}\n type={type}\n placeholder={config?.defaultValuePlaceholder}\n jsonFormatText={config?.jsonFormatText}\n onChange={(value) => onChange('default', value)}\n />\n </DefaultValueWrapper>\n </>\n )}\n </UIExpandDetail>\n )}\n </UIPropertyMain>\n {showCollapse && (\n <UICollapsible $collapse={collapse}>\n <UIProperties $shrink={true}>\n {propertyList.map((_property, index) => (\n <PropertyEdit\n key={_property.key}\n value={_property}\n config={config}\n $level={$level + 1} // 传递递增的层级\n $parentExpand={expand}\n $parentType={type}\n onChange={(_v) => {\n onEditProperty(_property.key!, _v);\n }}\n onRemove={() => {\n onRemoveProperty(_property.key!);\n }}\n $isLast={index === propertyList.length - 1}\n $isFirst={index === 0}\n $index={index}\n $showLine={true}\n />\n ))}\n </UIProperties>\n </UICollapsible>\n )}\n </UIPropertyRight>\n </>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport styled, { css } from 'styled-components';\nimport Icon from '@douyinfe/semi-icons';\n\nexport const UIContainer = styled.div`\n /* & .semi-input {\n background-color: #fff;\n border-radius: 6px;\n height: 24px;\n } */\n`;\n\nexport const UIRow = styled.div`\n display: flex;\n align-items: center;\n gap: 6px;\n`;\n\nexport const UICollapseTrigger = styled.div`\n cursor: pointer;\n margin-right: 5px;\n`;\n\nexport const UIExpandDetail = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport const UILabel = styled.div`\n font-size: 12px;\n color: #999;\n font-weight: 400;\n margin-bottom: 2px;\n`;\n\nexport const UIProperties = styled.div<{ $shrink?: boolean }>`\n display: grid;\n grid-template-columns: auto 1fr;\n\n ${({ $shrink }) =>\n $shrink &&\n css`\n padding-left: 10px;\n margin-top: 10px;\n `}\n`;\n\nexport const UIPropertyLeft = styled.div<{\n $isLast?: boolean;\n $showLine?: boolean;\n $isExpand?: boolean;\n type?: string;\n $isFirst?: boolean;\n $index?: number;\n $parentExpand?: boolean;\n $parentType?: string;\n}>`\n grid-column: 1;\n position: relative;\n width: 16px;\n\n ${({ $showLine, $isLast, $parentType }) => {\n let height = '100%';\n if ($parentType && $isLast) {\n height = '24px';\n }\n\n return (\n $showLine &&\n css`\n &::before {\n /* 竖线 */\n content: '';\n height: ${height};\n position: absolute;\n left: -22px;\n top: -16px;\n width: 1px;\n background: #d9d9d9;\n display: block;\n }\n\n &::after {\n /* 横线 */\n content: '';\n position: absolute;\n left: -22px; // 横线起点和竖线对齐\n top: 8px; // 跟随你的行高调整\n width: 18px; // 横线长度\n height: 1px;\n background: #d9d9d9;\n display: block;\n }\n `\n );\n }}\n`;\n\nexport const UIPropertyRight = styled.div`\n grid-column: 2;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0px;\n }\n`;\n\nexport const UIPropertyMain = styled.div<{\n $expand?: boolean;\n type?: string;\n $collapse?: boolean;\n $showCollapse?: boolean;\n}>`\n display: flex;\n flex-direction: column;\n gap: 10px;\n position: relative;\n\n ${({ $expand, type, $collapse, $showCollapse }) => {\n const beforeElement = `\n &::before {\n /* 竖线 */\n content: '';\n height: 100%;\n position: absolute;\n left: -12px;\n top: 18px;\n width: 1px;\n background: #d9d9d9;\n display: block;\n }`;\n\n return (\n $expand &&\n css`\n background-color: #f5f5f5;\n padding: 10px;\n border-radius: 4px;\n\n ${$showCollapse &&\n $collapse &&\n (type === 'array' || type === 'object') &&\n css`\n ${beforeElement}\n `}\n `\n );\n }}\n`;\n\nexport const UICollapsible = styled.div<{ $collapse?: boolean }>`\n display: none;\n\n ${({ $collapse }) =>\n $collapse &&\n css`\n display: block;\n `}\n`;\n\nexport const UIName = styled.div`\n flex-grow: 1;\n`;\n\nexport const UIType = styled.div``;\n\nexport const UIRequired = styled.div``;\n\nexport const UIActions = styled.div`\n white-space: nowrap;\n`;\n\nconst iconAddChildrenSvg = (\n <svg\n className=\"icon-icon icon-icon-coz_add_node \"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11 6.49988C11 8.64148 9.50397 10.4337 7.49995 10.8884V15.4998C7.49995 16.0521 7.94767 16.4998 8.49995 16.4998H11.208C11.0742 16.8061 11 17.1443 11 17.4998C11 17.8554 11.0742 18.1936 11.208 18.4998H8.49995C6.8431 18.4998 5.49995 17.1567 5.49995 15.4998V10.8884C3.49599 10.4336 2 8.64145 2 6.49988C2 4.0146 4.01472 1.99988 6.5 1.99988C8.98528 1.99988 11 4.0146 11 6.49988ZM6.5 8.99988C7.88071 8.99988 9 7.88059 9 6.49988C9 5.11917 7.88071 3.99988 6.5 3.99988C5.11929 3.99988 4 5.11917 4 6.49988C4 7.88059 5.11929 8.99988 6.5 8.99988Z\"\n ></path>\n <path d=\"M17.5 12.4999C18.0523 12.4999 18.5 12.9476 18.5 13.4999V16.4999H21.5C22.0523 16.4999 22.5 16.9476 22.5 17.4999C22.5 18.0522 22.0523 18.4999 21.5 18.4999H18.5V21.4999C18.5 22.0522 18.0523 22.4999 17.5 22.4999C16.9477 22.4999 16.5 22.0522 16.5 21.4999V18.4999H13.5C12.9477 18.4999 12.5 18.0522 12.5 17.4999C12.5 16.9476 12.9477 16.4999 13.5 16.4999H16.5V13.4999C16.5 12.9476 16.9477 12.4999 17.5 12.4999Z\"></path>\n </svg>\n);\n\nexport const IconAddChildren = () => <Icon size=\"small\" svg={iconAddChildrenSvg} />;\n\nexport const DefaultValueWrapper = styled.div`\n margin: 0;\n`;\n\nexport const JSONViewerWrapper = styled.div`\n padding: 0 0 24px;\n &:first-child {\n margin-top: 0px;\n }\n`;\n\nexport const JSONHeader = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n background-color: var(--semi-color-fill-0);\n border-radius: 6px 6px 0 0;\n height: 36px;\n padding: 0 8px 0 12px;\n`;\n\nexport const JSONHeaderLeft = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n`;\n\nexport const JSONHeaderRight = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n`;\n\nexport const ConstantInputWrapper = styled.div`\n flex-grow: 1;\n\n & .semi-tree-select,\n & .semi-input-number,\n & .semi-select {\n width: 100%;\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { IJsonSchema } from '../../typings';\nimport { PropertyValueType } from './types';\n\nlet _id = 0;\nfunction genId() {\n return _id++;\n}\n\nfunction getDrilldownSchema(\n value?: PropertyValueType,\n path?: (keyof PropertyValueType)[]\n): { schema?: PropertyValueType | null; path?: (keyof PropertyValueType)[] } {\n if (!value) {\n return {};\n }\n\n if (value.type === 'array' && value.items) {\n return getDrilldownSchema(value.items, [...(path || []), 'items']);\n }\n\n return { schema: value, path };\n}\n\nexport function usePropertiesEdit(\n value?: PropertyValueType,\n onChange?: (value: PropertyValueType) => void\n) {\n // Get drilldown (array.items.items...)\n const drilldown = useMemo(() => getDrilldownSchema(value), [value, value?.type, value?.items]);\n\n const isDrilldownObject = drilldown.schema?.type === 'object';\n\n // Generate Init Property List\n const initPropertyList = useMemo(\n () =>\n isDrilldownObject\n ? Object.entries(drilldown.schema?.properties || {})\n .sort(([, a], [, b]) => (a.extra?.index ?? 0) - (b.extra?.index ?? 0))\n .map(\n ([name, _value], index) =>\n ({\n key: genId(),\n name,\n isPropertyRequired: drilldown.schema?.required?.includes(name) || false,\n ..._value,\n extra: {\n ...(_value.extra || {}),\n index,\n },\n } as PropertyValueType)\n )\n : [],\n [isDrilldownObject]\n );\n\n const [propertyList, setPropertyList] = useState<PropertyValueType[]>(initPropertyList);\n\n const mountRef = useRef(false);\n\n useEffect(() => {\n // If initRef is true, it means the component has been mounted\n if (mountRef.current) {\n // If the value is changed, update the property list\n setPropertyList((_list) => {\n const nameMap = new Map<string, PropertyValueType>();\n\n for (const _property of _list) {\n if (_property.name) {\n nameMap.set(_property.name, _property);\n }\n }\n return Object.entries(drilldown.schema?.properties || {})\n .sort(([, a], [, b]) => (a.extra?.index ?? 0) - (b.extra?.index ?? 0))\n .map(([name, _value]) => {\n const _property = nameMap.get(name);\n if (_property) {\n return {\n key: _property.key,\n name,\n isPropertyRequired: drilldown.schema?.required?.includes(name) || false,\n ..._value,\n };\n }\n return {\n key: genId(),\n name,\n isPropertyRequired: drilldown.schema?.required?.includes(name) || false,\n ..._value,\n };\n });\n });\n }\n mountRef.current = true;\n }, [drilldown.schema]);\n\n const updatePropertyList = (updater: (list: PropertyValueType[]) => PropertyValueType[]) => {\n setPropertyList((_list) => {\n const next = updater(_list);\n\n // onChange to parent\n const nextProperties: Record<string, IJsonSchema> = {};\n const nextRequired: string[] = [];\n\n for (const _property of next) {\n if (!_property.name) {\n continue;\n }\n\n nextProperties[_property.name] = _property;\n\n if (_property.isPropertyRequired) {\n nextRequired.push(_property.name);\n }\n }\n\n let drilldownSchema = value || {};\n if (drilldown.path) {\n drilldownSchema = drilldown.path.reduce((acc, key) => acc[key], value || {});\n }\n drilldownSchema.properties = nextProperties;\n drilldownSchema.required = nextRequired;\n\n onChange?.(value || {});\n\n return next;\n });\n };\n\n const onAddProperty = () => {\n updatePropertyList((_list) => [\n ..._list,\n { key: genId(), name: '', type: 'string', extra: { index: _list.length + 1 } },\n ]);\n };\n\n const onRemoveProperty = (key: number) => {\n updatePropertyList((_list) => _list.filter((_property) => _property.key !== key));\n };\n\n const onEditProperty = (key: number, nextValue: PropertyValueType) => {\n updatePropertyList((_list) =>\n _list.map((_property) => (_property.key === key ? nextValue : _property))\n );\n };\n\n useEffect(() => {\n if (!isDrilldownObject) {\n setPropertyList([]);\n }\n }, [isDrilldownObject]);\n\n return {\n propertyList,\n isDrilldownObject,\n onAddProperty,\n onRemoveProperty,\n onEditProperty,\n };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useRef, useState, useCallback } from 'react';\n\nimport { IconButton, JsonViewer, Tooltip } from '@douyinfe/semi-ui';\nimport { IconBrackets } from '@douyinfe/semi-icons';\n\nimport { getValueType } from './utils';\nimport {\n ConstantInputWrapper,\n JSONHeader,\n JSONHeaderLeft,\n JSONHeaderRight,\n JSONViewerWrapper,\n} from './styles';\nimport { ConstantInput } from '../constant-input';\nimport { IJsonSchema } from '../../typings';\n\n/**\n * 根据不同的数据类型渲染对应的默认值输入组件。\n * @param props - 组件属性,包括 value, type, placeholder, onChange。\n * @returns 返回对应类型的输入组件或 null。\n */\nexport function DefaultValue(props: {\n value: any;\n schema?: IJsonSchema;\n name?: string;\n type?: string;\n placeholder?: string;\n jsonFormatText?: string;\n onChange: (value: any) => void;\n}) {\n const { value, schema, type, onChange, placeholder, jsonFormatText } = props;\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const JsonViewerRef = useRef<JsonViewer>(null);\n\n // 为 JsonViewer 添加状态管理\n const [internalJsonValue, setInternalJsonValue] = useState<string>(\n getValueType(value) === 'string' ? value : ''\n );\n\n // 使用 useCallback 创建稳定的回调函数\n const handleJsonChange = useCallback((val: string) => {\n // 只在值真正改变时才更新状态\n if (val !== internalJsonValue) {\n setInternalJsonValue(val);\n }\n }, []);\n\n // 处理编辑完成事件\n const handleEditComplete = useCallback(() => {\n // 只有当存在key,编辑完成时才触发父组件的 onChange\n onChange(internalJsonValue);\n // 确保在更新后移除焦点\n requestAnimationFrame(() => {\n // JsonViewerRef.current?.format();\n wrapperRef.current?.blur();\n });\n setJsonReadOnly(true);\n }, [internalJsonValue, onChange]);\n\n const [jsonReadOnly, setJsonReadOnly] = useState<boolean>(true);\n\n const handleFormatJson = useCallback(() => {\n try {\n const parsed = JSON.parse(internalJsonValue);\n const formatted = JSON.stringify(parsed, null, 4);\n setInternalJsonValue(formatted);\n onChange(formatted);\n } catch (error) {\n console.error('Invalid JSON:', error);\n }\n }, [internalJsonValue, onChange]);\n\n return type === 'object' ? (\n <>\n <JSONHeader>\n <JSONHeaderLeft>json</JSONHeaderLeft>\n <JSONHeaderRight>\n <Tooltip content={jsonFormatText ?? 'Format'}>\n <IconButton\n icon={<IconBrackets style={{ color: 'var(--semi-color-primary)' }} />}\n size=\"small\"\n type=\"tertiary\"\n theme=\"borderless\"\n onClick={handleFormatJson}\n />\n </Tooltip>\n </JSONHeaderRight>\n </JSONHeader>\n\n <JSONViewerWrapper\n ref={wrapperRef}\n tabIndex={-1}\n onBlur={(e) => {\n if (wrapperRef.current && !wrapperRef.current?.contains(e.relatedTarget as Node)) {\n handleEditComplete();\n }\n }}\n onClick={(e: React.MouseEvent) => {\n setJsonReadOnly(false);\n }}\n >\n <JsonViewer\n ref={JsonViewerRef}\n value={getValueType(value) === 'string' ? value : ''}\n height={120}\n width=\"100%\"\n showSearch={false}\n options={{\n readOnly: jsonReadOnly,\n formatOptions: { tabSize: 4, insertSpaces: true, eol: '\\n' },\n }}\n style={{\n padding: 0,\n }}\n onChange={handleJsonChange}\n />\n </JSONViewerWrapper>\n </>\n ) : (\n <ConstantInputWrapper>\n <ConstantInput\n value={value}\n onChange={(_v) => onChange(_v)}\n schema={schema || { type: 'string' }}\n placeholder={placeholder ?? 'Default value if parameter is not provided'}\n />\n </ConstantInputWrapper>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\n/**\n * Return the corresponding string description according to the type of the input value.根据输入值的类型返回对应的字符串描述。\n * @param value - 需要判断类型的值。The value whose type needs to be judged.\n * @returns 返回值的类型字符串 The type string of the return value('string', 'integer', 'number', 'boolean', 'object', 'array', 'other')。\n */\nexport function getValueType(value: any): string {\n const type = typeof value;\n\n if (type === 'string') {\n return 'string';\n } else if (type === 'number') {\n return Number.isInteger(value) ? 'integer' : 'number';\n } else if (type === 'boolean') {\n return 'boolean';\n } else if (type === 'object') {\n if (value === null) {\n return 'other';\n }\n return Array.isArray(value) ? 'array' : 'object';\n } else {\n // undefined, function, symbol, bigint etc.\n return 'other';\n }\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\n/* eslint-disable react/prop-types */\nimport React, { useMemo } from 'react';\n\nimport { Input, InputNumber, Select } from '@douyinfe/semi-ui';\n\nimport { PropsType, Strategy } from './types';\n\nconst defaultStrategies: Strategy[] = [\n {\n hit: (schema) => schema?.type === 'string',\n Renderer: (props) => (\n <Input placeholder=\"Please Input String\" size=\"small\" disabled={props.readonly} {...props} />\n ),\n },\n {\n hit: (schema) => schema?.type === 'number',\n Renderer: (props) => (\n <InputNumber\n placeholder=\"Please Input Number\"\n size=\"small\"\n disabled={props.readonly}\n hideButtons\n {...props}\n />\n ),\n },\n {\n hit: (schema) => schema?.type === 'integer',\n Renderer: (props) => (\n <InputNumber\n placeholder=\"Please Input Integer\"\n size=\"small\"\n disabled={props.readonly}\n hideButtons\n precision={0}\n {...props}\n />\n ),\n },\n {\n hit: (schema) => schema?.type === 'boolean',\n Renderer: (props) => {\n const { value, onChange, ...rest } = props;\n return (\n <Select\n placeholder=\"Please Select Boolean\"\n size=\"small\"\n disabled={props.readonly}\n optionList={[\n { label: 'True', value: 1 },\n { label: 'False', value: 0 },\n ]}\n value={value ? 1 : 0}\n onChange={(value) => onChange?.(!!value)}\n {...rest}\n />\n );\n },\n },\n];\n\nexport function ConstantInput(props: PropsType) {\n const { value, onChange, schema, strategies: extraStrategies, readonly, ...rest } = props;\n\n const strategies = useMemo(\n () => [...defaultStrategies, ...(extraStrategies || [])],\n [extraStrategies]\n );\n\n const Renderer = useMemo(() => {\n const strategy = strategies.find((_strategy) => _strategy.hit(schema));\n\n return strategy?.Renderer;\n }, [strategies, schema]);\n\n if (!Renderer) {\n return <Input size=\"small\" disabled placeholder=\"Unsupported type\" />;\n }\n\n return <Renderer value={value} onChange={onChange} readonly={readonly} {...rest} />;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useEffect, useState } from 'react';\n\nimport Input, { InputProps } from '@douyinfe/semi-ui/lib/es/input';\n\nexport function BlurInput(props: InputProps) {\n const [value, setValue] = useState('');\n\n useEffect(() => {\n setValue(props.value as string);\n }, [props.value]);\n\n return (\n <Input\n {...props}\n value={value}\n onChange={(value) => {\n setValue(value);\n }}\n onBlur={(e) => props.onChange?.(value, e)}\n />\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { PrivateScopeProvider } from '@flowgram.ai/editor';\n\nimport { VariableSelector, VariableSelectorProps } from '../variable-selector';\nimport { IJsonSchema } from '../../typings';\n\nconst batchVariableSchema: IJsonSchema = {\n type: 'array',\n extra: { weak: true },\n};\n\nexport function BatchVariableSelector(props: VariableSelectorProps) {\n return (\n <PrivateScopeProvider>\n <VariableSelector {...props} includeSchema={batchVariableSchema} />\n </PrivateScopeProvider>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { IconButton } from '@douyinfe/semi-ui';\nimport { IconSetting } from '@douyinfe/semi-icons';\n\nimport { Strategy } from '../constant-input/types';\nimport { ConstantInput } from '../constant-input';\nimport { IFlowConstantRefValue } from '../../typings/flow-value';\nimport { UIContainer, UIMain, UITrigger } from './styles';\nimport { VariableSelector } from '../variable-selector';\nimport { IJsonSchema } from '../../typings';\n\ninterface PropsType {\n value?: IFlowConstantRefValue;\n onChange: (value?: IFlowConstantRefValue) => void;\n readonly?: boolean;\n hasError?: boolean;\n style?: React.CSSProperties;\n schema?: IJsonSchema;\n constantProps?: {\n strategies?: Strategy[];\n schema?: IJsonSchema; // set schema of constant input only\n [key: string]: any;\n };\n}\n\nexport function DynamicValueInput({\n value,\n onChange,\n readonly,\n style,\n schema,\n constantProps,\n}: PropsType) {\n // When is number type, include integer as well\n const includeSchema = useMemo(() => {\n if (schema?.type === 'number') {\n return [schema, { type: 'integer' }];\n }\n return schema;\n }, [schema]);\n\n const renderMain = () => {\n if (value?.type === 'ref') {\n // Display Variable Or Delete\n return (\n <VariableSelector\n style={{ width: '100%' }}\n value={value?.content}\n onChange={(_v) => onChange(_v ? { type: 'ref', content: _v } : undefined)}\n includeSchema={includeSchema}\n readonly={readonly}\n />\n );\n }\n\n return (\n <ConstantInput\n value={value?.content}\n onChange={(_v) => onChange({ type: 'constant', content: _v })}\n schema={schema || { type: 'string' }}\n readonly={readonly}\n {...constantProps}\n />\n );\n };\n\n const renderTrigger = () => (\n <VariableSelector\n style={{ width: '100%' }}\n value={value?.type === 'ref' ? value?.content : undefined}\n onChange={(_v) => onChange({ type: 'ref', content: _v })}\n includeSchema={includeSchema}\n readonly={readonly}\n triggerRender={() => (\n <IconButton disabled={readonly} size=\"small\" icon={<IconSetting size=\"small\" />} />\n )}\n />\n );\n\n return (\n <UIContainer style={style}>\n <UIMain>{renderMain()}</UIMain>\n <UITrigger>{renderTrigger()}</UITrigger>\n </UIContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nexport const UIMain = styled.div`\n flex-grow: 1;\n overflow: hidden;\n min-width: 0;\n\n & .semi-tree-select,\n & .semi-input-number,\n & .semi-select {\n width: 100%;\n }\n`;\n\nexport const UITrigger = styled.div``;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { Input } from '@douyinfe/semi-ui';\n\nimport { ConditionRowValueType, Op } from './types';\nimport { UIContainer, UILeft, UIOperator, UIRight, UIValues } from './styles';\nimport { useRule } from './hooks/useRule';\nimport { useOp } from './hooks/useOp';\nimport { VariableSelector } from '../variable-selector';\nimport { DynamicValueInput } from '../dynamic-value-input';\nimport { JsonSchemaBasicType } from '../../typings';\n\ninterface PropTypes {\n value?: ConditionRowValueType;\n onChange: (value?: ConditionRowValueType) => void;\n style?: React.CSSProperties;\n readonly?: boolean;\n}\n\nexport function ConditionRow({ style, value, onChange, readonly }: PropTypes) {\n const { left, operator, right } = value || {};\n const { rule } = useRule(left);\n const { renderOpSelect, opConfig } = useOp({\n rule,\n op: operator,\n onChange: (v) => onChange({ ...value, operator: v }),\n });\n\n const targetSchema = useMemo(() => {\n const targetType: JsonSchemaBasicType | null = rule?.[operator as Op] || null;\n return targetType ? { type: targetType, extra: { weak: true } } : null;\n }, [rule, opConfig]);\n\n return (\n <UIContainer style={style}>\n <UIOperator>{renderOpSelect()}</UIOperator>\n <UIValues>\n <UILeft>\n <VariableSelector\n readonly={readonly}\n style={{ width: '100%' }}\n value={left?.content}\n onChange={(v) =>\n onChange({\n ...value,\n left: {\n type: 'ref',\n content: v,\n },\n })\n }\n />\n </UILeft>\n <UIRight>\n {targetSchema ? (\n <DynamicValueInput\n readonly={readonly || !rule}\n value={right}\n schema={targetSchema}\n onChange={(v) => onChange({ ...value, right: v })}\n />\n ) : (\n <Input size=\"small\" disabled value={opConfig?.rightDisplay || 'Empty'} />\n )}\n </UIRight>\n </UIValues>\n </UIContainer>\n );\n}\n\nexport { type ConditionRowValueType };\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nexport const UIOperator = styled.div``;\n\nexport const UILeft = styled.div`\n width: 100%;\n`;\n\nexport const UIRight = styled.div`\n width: 100%;\n`;\n\nexport const UIValues = styled.div`\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useMemo } from 'react';\n\nimport { useScopeAvailable } from '@flowgram.ai/editor';\n\nimport { rules } from '../constants';\nimport { JsonSchemaUtils } from '../../../utils';\nimport { IFlowRefValue, JsonSchemaBasicType } from '../../../typings';\n\nexport function useRule(left?: IFlowRefValue) {\n const available = useScopeAvailable();\n\n const variable = useMemo(() => {\n if (!left) return undefined;\n return available.getByKeyPath(left.content);\n }, [available, left]);\n\n const rule = useMemo(() => {\n if (!variable) return undefined;\n\n const schema = JsonSchemaUtils.astToSchema(variable.type, { drilldown: false });\n\n return rules[schema?.type as JsonSchemaBasicType];\n }, [variable?.type]);\n\n return { rule };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { IRules, Op, OpConfigs } from './types';\n\nexport const rules: IRules = {\n string: {\n [Op.EQ]: 'string',\n [Op.NEQ]: 'string',\n [Op.CONTAINS]: 'string',\n [Op.NOT_CONTAINS]: 'string',\n [Op.IN]: 'array',\n [Op.NIN]: 'array',\n [Op.IS_EMPTY]: 'string',\n [Op.IS_NOT_EMPTY]: 'string',\n },\n number: {\n [Op.EQ]: 'number',\n [Op.NEQ]: 'number',\n [Op.GT]: 'number',\n [Op.GTE]: 'number',\n [Op.LT]: 'number',\n [Op.LTE]: 'number',\n [Op.IN]: 'array',\n [Op.NIN]: 'array',\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n integer: {\n [Op.EQ]: 'number',\n [Op.NEQ]: 'number',\n [Op.GT]: 'number',\n [Op.GTE]: 'number',\n [Op.LT]: 'number',\n [Op.LTE]: 'number',\n [Op.IN]: 'array',\n [Op.NIN]: 'array',\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n boolean: {\n [Op.EQ]: 'boolean',\n [Op.NEQ]: 'boolean',\n [Op.IS_TRUE]: null,\n [Op.IS_FALSE]: null,\n [Op.IN]: 'array',\n [Op.NIN]: 'array',\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n object: {\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n array: {\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n map: {\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n};\n\nexport const opConfigs: OpConfigs = {\n [Op.EQ]: {\n label: 'Equal',\n abbreviation: '=',\n },\n [Op.NEQ]: {\n label: 'Not Equal',\n abbreviation: '≠',\n },\n [Op.GT]: {\n label: 'Greater Than',\n abbreviation: '>',\n },\n [Op.GTE]: {\n label: 'Greater Than or Equal',\n abbreviation: '>=',\n },\n [Op.LT]: {\n label: 'Less Than',\n abbreviation: '<',\n },\n [Op.LTE]: {\n label: 'Less Than or Equal',\n abbreviation: '<=',\n },\n [Op.IN]: {\n label: 'In',\n abbreviation: '∈',\n },\n [Op.NIN]: {\n label: 'Not In',\n abbreviation: '∉',\n },\n [Op.CONTAINS]: {\n label: 'Contains',\n abbreviation: '⊇',\n },\n [Op.NOT_CONTAINS]: {\n label: 'Not Contains',\n abbreviation: '⊉',\n },\n [Op.IS_EMPTY]: {\n label: 'Is Empty',\n abbreviation: '=',\n rightDisplay: 'Empty',\n },\n [Op.IS_NOT_EMPTY]: {\n label: 'Is Not Empty',\n abbreviation: '≠',\n rightDisplay: 'Empty',\n },\n [Op.IS_TRUE]: {\n label: 'Is True',\n abbreviation: '=',\n rightDisplay: 'True',\n },\n [Op.IS_FALSE]: {\n label: 'Is False',\n abbreviation: '=',\n rightDisplay: 'False',\n },\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { isObject } from 'lodash';\n\ninterface LegacyFlowRefValueSchema {\n type: 'ref';\n content: string;\n}\n\ninterface NewFlowRefValueSchema {\n type: 'ref';\n content: string[];\n}\n\n/**\n * In flowgram 0.2.0, for introducing Loop variable functionality,\n * the FlowRefValueSchema type definition is updated:\n *\n * interface LegacyFlowRefValueSchema {\n * type: 'ref';\n * content: string;\n * }\n *\n * interface NewFlowRefValueSchema {\n * type: 'ref';\n * content: string[];\n * }\n *\n *\n * For making sure backend json will not be changed, we provide format legacy ref utils for updating the formData\n *\n * How to use:\n *\n * 1. Call formatLegacyRefOnSubmit on the formData before submitting\n * 2. Call formatLegacyRefOnInit on the formData after submitting\n *\n * Example:\n * import { formatLegacyRefOnSubmit, formatLegacyRefOnInit } from '@flowgram.ai/form-materials';\n * formMeta: {\n * formatOnSubmit: (data) => formatLegacyRefOnSubmit(data),\n * formatOnInit: (data) => formatLegacyRefOnInit(data),\n * }\n */\nexport function formatLegacyRefOnSubmit(value: any): any {\n if (isObject(value)) {\n if (isLegacyFlowRefValueSchema(value)) {\n return formatLegacyRefToNewRef(value);\n }\n\n return Object.fromEntries(\n Object.entries(value).map(([key, value]: [string, any]) => [\n key,\n formatLegacyRefOnSubmit(value),\n ])\n );\n }\n\n if (Array.isArray(value)) {\n return value.map(formatLegacyRefOnSubmit);\n }\n\n return value;\n}\n\n/**\n * In flowgram 0.2.0, for introducing Loop variable functionality,\n * the FlowRefValueSchema type definition is updated:\n *\n * interface LegacyFlowRefValueSchema {\n * type: 'ref';\n * content: string;\n * }\n *\n * interface NewFlowRefValueSchema {\n * type: 'ref';\n * content: string[];\n * }\n *\n *\n * For making sure backend json will not be changed, we provide format legacy ref utils for updating the formData\n *\n * How to use:\n *\n * 1. Call formatLegacyRefOnSubmit on the formData before submitting\n * 2. Call formatLegacyRefOnInit on the formData after submitting\n *\n * Example:\n * import { formatLegacyRefOnSubmit, formatLegacyRefOnInit } from '@flowgram.ai/form-materials';\n *\n * formMeta: {\n * formatOnSubmit: (data) => formatLegacyRefOnSubmit(data),\n * formatOnInit: (data) => formatLegacyRefOnInit(data),\n * }\n */\nexport function formatLegacyRefOnInit(value: any): any {\n if (isObject(value)) {\n if (isNewFlowRefValueSchema(value)) {\n return formatNewRefToLegacyRef(value);\n }\n\n return Object.fromEntries(\n Object.entries(value).map(([key, value]: [string, any]) => [\n key,\n formatLegacyRefOnInit(value),\n ])\n );\n }\n\n if (Array.isArray(value)) {\n return value.map(formatLegacyRefOnInit);\n }\n\n return value;\n}\n\nexport function isLegacyFlowRefValueSchema(value: any): value is LegacyFlowRefValueSchema {\n return (\n isObject(value) &&\n Object.keys(value).length === 2 &&\n (value as any).type === 'ref' &&\n typeof (value as any).content === 'string'\n );\n}\n\nexport function isNewFlowRefValueSchema(value: any): value is NewFlowRefValueSchema {\n return (\n isObject(value) &&\n Object.keys(value).length === 2 &&\n (value as any).type === 'ref' &&\n Array.isArray((value as any).content)\n );\n}\n\nexport function formatLegacyRefToNewRef(value: LegacyFlowRefValueSchema) {\n const keyPath = value.content.split('.');\n\n if (keyPath[1] === 'outputs') {\n return {\n type: 'ref',\n content: [`${keyPath[0]}.${keyPath[1]}`, ...(keyPath.length > 2 ? keyPath.slice(2) : [])],\n };\n }\n\n return {\n type: 'ref',\n content: keyPath,\n };\n}\n\nexport function formatNewRefToLegacyRef(value: NewFlowRefValueSchema) {\n return {\n type: 'ref',\n content: value.content.join('.'),\n };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { Button, Select } from '@douyinfe/semi-ui';\nimport { IconChevronDownStroked } from '@douyinfe/semi-icons';\n\nimport { IRule, Op } from '../types';\nimport { opConfigs } from '../constants';\n\ninterface HookParams {\n rule?: IRule;\n op?: Op;\n onChange: (op: Op) => void;\n}\n\nexport function useOp({ rule, op, onChange }: HookParams) {\n const options = useMemo(\n () =>\n Object.keys(rule || {}).map((_op) => ({\n ...(opConfigs[_op as Op] || {}),\n value: _op,\n })),\n [rule]\n );\n\n const opConfig = useMemo(() => opConfigs[op as Op], [op]);\n\n const renderOpSelect = () => (\n <Select\n style={{ height: 22 }}\n size=\"small\"\n value={op}\n optionList={options}\n onChange={(v) => {\n onChange(v as Op);\n }}\n triggerRender={({ value }) => (\n <Button size=\"small\" disabled={!rule}>\n {opConfig?.abbreviation || <IconChevronDownStroked size=\"small\" />}\n </Button>\n )}\n />\n );\n\n return { renderOpSelect, opConfig };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { Button, Input } from '@douyinfe/semi-ui';\nimport { IconDelete, IconPlus } from '@douyinfe/semi-icons';\n\nimport { useList } from './use-list';\nimport { PropsType } from './types';\nimport { VariableSelector } from '../variable-selector';\nimport { UIRow, UIRows } from './styles';\n\nexport function BatchOutputs(props: PropsType) {\n const { readonly, style } = props;\n\n const { list, add, update, remove } = useList(props);\n\n return (\n <div>\n <UIRows style={style}>\n {list.map((item) => (\n <UIRow key={item.id}>\n <Input\n style={{ width: 100 }}\n disabled={readonly}\n size=\"small\"\n value={item.key}\n onChange={(v) => update({ ...item, key: v })}\n />\n <VariableSelector\n style={{ flexGrow: 1 }}\n readonly={readonly}\n value={item.value?.content}\n onChange={(v) =>\n update({\n ...item,\n value: {\n type: 'ref',\n content: v,\n },\n })\n }\n />\n <Button\n disabled={readonly}\n icon={<IconDelete />}\n size=\"small\"\n onClick={() => remove(item.id)}\n />\n </UIRow>\n ))}\n </UIRows>\n <Button disabled={readonly} icon={<IconPlus />} size=\"small\" onClick={add}>\n Add\n </Button>\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useEffect, useState } from 'react';\n\nimport { difference } from 'lodash';\n\nimport { OutputItem, PropsType } from './types';\n\nlet _id = 0;\nfunction genId() {\n return _id++;\n}\n\nexport function useList({ value, onChange }: PropsType) {\n const [list, setList] = useState<OutputItem[]>([]);\n\n useEffect(() => {\n setList((_prevList) => {\n const newKeys = Object.keys(value || {});\n const oldKeys = _prevList.map((item) => item.key).filter(Boolean) as string[];\n const addKeys = difference(newKeys, oldKeys);\n\n return _prevList\n .filter((item) => !item.key || newKeys.includes(item.key))\n .map((item) => ({\n id: item.id,\n key: item.key,\n value: item.key ? value?.[item.key!] : undefined,\n }))\n .concat(\n addKeys.map((_key) => ({\n id: genId(),\n key: _key,\n value: value?.[_key],\n }))\n );\n });\n }, [value]);\n\n const add = () => {\n setList((prevList) => [\n ...prevList,\n {\n id: genId(),\n },\n ]);\n };\n\n const update = (item: OutputItem) => {\n setList((prevList) => {\n const nextList = prevList.map((_item) => {\n if (_item.id === item.id) {\n return item;\n }\n return _item;\n });\n\n onChange(\n Object.fromEntries(\n nextList.filter((item) => item.key).map((item) => [item.key!, item.value])\n )\n );\n\n return nextList;\n });\n };\n\n const remove = (itemId: number) => {\n setList((prevList) => {\n const nextList = prevList.filter((_item) => _item.id !== itemId);\n\n onChange(\n Object.fromEntries(\n nextList.filter((item) => item.key).map((item) => [item.key!, item.value])\n )\n );\n\n return nextList;\n });\n };\n\n return { list, add, update, remove };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIRows = styled.div`\n display: flex;\n flex-direction: column;\n gap: 10px;\n margin-bottom: 10px;\n`;\n\nexport const UIRow = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { Renderer, EditorProvider } from '@coze-editor/editor/react';\nimport preset from '@coze-editor/editor/preset-prompt';\n\nimport { PropsType } from './types';\nimport { UIContainer } from './styles';\nimport MarkdownHighlight from './extensions/markdown';\nimport LanguageSupport from './extensions/language-support';\nimport JinjaHighlight from './extensions/jinja';\n\nexport type PromptEditorPropsType = PropsType;\n\nexport function PromptEditor(props: PropsType) {\n const { value, onChange, readonly, style, hasError, children } = props || {};\n\n return (\n <UIContainer $hasError={hasError} style={style}>\n <EditorProvider>\n <Renderer\n plugins={preset}\n defaultValue={String(value?.content)}\n options={{\n readOnly: readonly,\n editable: !readonly,\n }}\n onChange={(e) => {\n onChange({ type: 'template', content: e.value });\n }}\n />\n <MarkdownHighlight />\n <LanguageSupport />\n <JinjaHighlight />\n {children}\n </EditorProvider>\n </UIContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled, { css } from 'styled-components';\n\nexport const UIContainer = styled.div<{ $hasError?: boolean }>`\n background-color: var(--semi-color-fill-0);\n padding-left: 10px;\n padding-right: 6px;\n\n ${({ $hasError }) =>\n $hasError &&\n css`\n border: 1px solid var(--semi-color-danger-6);\n `}\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useLayoutEffect } from 'react';\n\nimport { useInjector } from '@coze-editor/editor/react';\nimport { astDecorator } from '@coze-editor/editor';\nimport { EditorView } from '@codemirror/view';\n\nfunction MarkdownHighlight() {\n const injector = useInjector();\n\n useLayoutEffect(\n () =>\n injector.inject([\n astDecorator.whole.of((cursor) => {\n // # heading\n if (cursor.name.startsWith('ATXHeading')) {\n return {\n type: 'className',\n className: 'heading',\n };\n }\n\n // *italic*\n if (cursor.name === 'Emphasis') {\n return {\n type: 'className',\n className: 'emphasis',\n };\n }\n\n // **bold**\n if (cursor.name === 'StrongEmphasis') {\n return {\n type: 'className',\n className: 'strong-emphasis',\n };\n }\n\n // -\n // 1.\n // >\n if (cursor.name === 'ListMark' || cursor.name === 'QuoteMark') {\n return {\n type: 'className',\n className: 'mark',\n };\n }\n }),\n EditorView.theme({\n '.heading': {\n color: '#00818C',\n fontWeight: 'bold',\n },\n '.emphasis': {\n fontStyle: 'italic',\n },\n '.strong-emphasis': {\n fontWeight: 'bold',\n },\n '.mark': {\n color: '#4E40E5',\n },\n }),\n ]),\n [injector]\n );\n\n return null;\n}\n\nexport default MarkdownHighlight;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useLayoutEffect } from 'react';\n\nimport { useInjector } from '@coze-editor/editor/react';\nimport { languageSupport } from '@coze-editor/editor/preset-prompt';\n\nfunction LanguageSupport() {\n const injector = useInjector();\n\n useLayoutEffect(() => injector.inject([languageSupport]), [injector]);\n\n return null;\n}\n\nexport default LanguageSupport;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useLayoutEffect } from 'react';\n\nimport { useInjector } from '@coze-editor/editor/react';\nimport { astDecorator } from '@coze-editor/editor';\nimport { EditorView } from '@codemirror/view';\n\nfunction JinjaHighlight() {\n const injector = useInjector();\n\n useLayoutEffect(\n () =>\n injector.inject([\n astDecorator.whole.of((cursor) => {\n if (cursor.name === 'JinjaStatementStart' || cursor.name === 'JinjaStatementEnd') {\n return {\n type: 'className',\n className: 'jinja-statement-bracket',\n };\n }\n\n if (cursor.name === 'JinjaComment') {\n return {\n type: 'className',\n className: 'jinja-comment',\n };\n }\n\n if (cursor.name === 'JinjaExpression') {\n return {\n type: 'className',\n className: 'jinja-expression',\n };\n }\n }),\n EditorView.theme({\n '.jinja-statement-bracket': {\n color: '#D1009D',\n },\n '.jinja-comment': {\n color: '#0607094D',\n },\n '.jinja-expression': {\n color: '#4E40E5',\n },\n }),\n ]),\n [injector]\n );\n\n return null;\n}\n\nexport default JinjaHighlight;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport Variable from './extensions/variable';\nimport { PromptEditor, PromptEditorPropsType } from '../prompt-editor';\n\nexport function PromptEditorWithVariables(props: PromptEditorPropsType) {\n return (\n <PromptEditor {...props}>\n <Variable />\n </PromptEditor>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useEffect, useState } from 'react';\n\nimport { Popover, Tree } from '@douyinfe/semi-ui';\nimport {\n Mention,\n MentionOpenChangeEvent,\n getCurrentMentionReplaceRange,\n useEditor,\n PositionMirror,\n} from '@coze-editor/editor/react';\nimport { EditorAPI } from '@coze-editor/editor/preset-prompt';\n\nimport { useVariableTree } from '../../variable-selector';\n\nfunction Variable() {\n const [posKey, setPosKey] = useState('');\n const [visible, setVisible] = useState(false);\n const [position, setPosition] = useState(-1);\n const editor = useEditor<EditorAPI>();\n\n function insert(variablePath: string) {\n const range = getCurrentMentionReplaceRange(editor.$view.state);\n\n if (!range) {\n return;\n }\n\n editor.replaceText({\n ...range,\n text: '{{' + variablePath + '}}',\n });\n\n setVisible(false);\n }\n\n function handleOpenChange(e: MentionOpenChangeEvent) {\n setPosition(e.state.selection.main.head);\n setVisible(e.value);\n }\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n }, [editor, visible]);\n\n const treeData = useVariableTree({});\n\n return (\n <>\n <Mention triggerCharacters={['{', '{}']} onOpenChange={handleOpenChange} />\n\n <Popover\n visible={visible}\n trigger=\"custom\"\n position=\"topLeft\"\n rePosKey={posKey}\n content={\n <div style={{ width: 300 }}>\n <Tree\n treeData={treeData}\n onSelect={(v) => {\n insert(v);\n }}\n />\n </div>\n }\n >\n {/* PositionMirror allows the Popover to appear at the specified cursor position */}\n <PositionMirror\n position={position}\n // When Doc scroll, update position\n onChange={() => setPosKey(String(Math.random()))}\n />\n </Popover>\n </>\n );\n}\n\nexport default Variable;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n ASTFactory,\n EffectOptions,\n FlowNodeRegistry,\n createEffectFromVariableProvider,\n getNodeForm,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '../../typings';\n\nexport const provideBatchInputEffect: EffectOptions[] = createEffectFromVariableProvider({\n private: true,\n parse: (value: IFlowRefValue, ctx) => [\n ASTFactory.createVariableDeclaration({\n key: `${ctx.node.id}_locals`,\n meta: {\n title: getNodeForm(ctx.node)?.getValueIn('title'),\n icon: ctx.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n },\n type: ASTFactory.createObject({\n properties: [\n ASTFactory.createProperty({\n key: 'item',\n initializer: ASTFactory.createEnumerateExpression({\n enumerateFor: ASTFactory.createKeyPathExpression({\n keyPath: value.content || [],\n }),\n }),\n }),\n ASTFactory.createProperty({\n key: 'index',\n type: ASTFactory.createNumber(),\n }),\n ],\n }),\n }),\n ],\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n ASTFactory,\n EffectOptions,\n FlowNodeRegistry,\n createEffectFromVariableProvider,\n getNodeForm,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '../../typings';\n\nexport const provideBatchOutputsEffect: EffectOptions[] = createEffectFromVariableProvider({\n parse: (value: Record<string, IFlowRefValue>, ctx) => [\n ASTFactory.createVariableDeclaration({\n key: `${ctx.node.id}`,\n meta: {\n title: getNodeForm(ctx.node)?.getValueIn('title'),\n icon: ctx.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n },\n type: ASTFactory.createObject({\n properties: Object.entries(value).map(([_key, value]) =>\n ASTFactory.createProperty({\n key: _key,\n initializer: ASTFactory.createWrapArrayExpression({\n wrapFor: ASTFactory.createKeyPathExpression({\n keyPath: value.content || [],\n }),\n }),\n })\n ),\n }),\n }),\n ],\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { isArray, isObject } from 'lodash';\nimport {\n DataEvent,\n Effect,\n EffectOptions,\n VariableFieldKeyRenameService,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '../../typings';\n\n/**\n * Auto rename ref when form item's key is renamed\n *\n * Example:\n *\n * formMeta: {\n * effects: {\n * \"inputsValues\": autoRenameRefEffect,\n * }\n * }\n */\nexport const autoRenameRefEffect: EffectOptions[] = [\n {\n event: DataEvent.onValueInit,\n effect: ((params) => {\n const { context, form, name } = params;\n\n const renameService = context.node.getService(VariableFieldKeyRenameService);\n\n const disposable = renameService.onRename(({ before, after }) => {\n const beforeKeyPath = [\n ...before.parentFields.map((_field) => _field.key).reverse(),\n before.key,\n ];\n const afterKeyPath = [\n ...after.parentFields.map((_field) => _field.key).reverse(),\n after.key,\n ];\n\n // traverse rename refs inside form item 'name'\n traverseRef(name, form.getValueIn(name), (_drilldownName, _v) => {\n if (isRefMatch(_v, beforeKeyPath)) {\n _v.content = [...afterKeyPath, ...(_v.content || [])?.slice(beforeKeyPath.length)];\n form.setValueIn(_drilldownName, _v);\n }\n });\n });\n\n return () => {\n disposable.dispose();\n };\n }) as Effect,\n },\n];\n\n/**\n * If ref value's keyPath is the under as targetKeyPath\n * @param value\n * @param targetKeyPath\n * @returns\n */\nfunction isRefMatch(value: IFlowRefValue, targetKeyPath: string[]) {\n return targetKeyPath.every((_key, index) => _key === value.content?.[index]);\n}\n\n/**\n * If value is ref\n * @param value\n * @returns\n */\nfunction isRef(value: any): value is IFlowRefValue {\n return (\n value?.type === 'ref' && Array.isArray(value?.content) && typeof value?.content[0] === 'string'\n );\n}\n\n/**\n * Traverse value to find ref\n * @param value\n * @param options\n * @returns\n */\nfunction traverseRef(name: string, value: any, cb: (name: string, _v: IFlowRefValue) => void) {\n if (isObject(value)) {\n if (isRef(value)) {\n cb(name, value);\n return;\n }\n\n Object.entries(value).forEach(([_key, _value]) => {\n traverseRef(`${name}.${_key}`, _value, cb);\n });\n return;\n }\n\n if (isArray(value)) {\n value.forEach((_value, idx) => {\n traverseRef(`${name}[${idx}]`, _value, cb);\n });\n return;\n }\n\n return;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n ASTFactory,\n EffectOptions,\n FlowNodeRegistry,\n createEffectFromVariableProvider,\n getNodeForm,\n} from '@flowgram.ai/editor';\n\nimport { JsonSchemaUtils } from '../../utils';\nimport { IJsonSchema } from '../../typings';\n\nexport const provideJsonSchemaOutputs: EffectOptions[] = createEffectFromVariableProvider({\n parse: (value: IJsonSchema, ctx) => [\n ASTFactory.createVariableDeclaration({\n key: `${ctx.node.id}`,\n meta: {\n title: getNodeForm(ctx.node)?.getValueIn('title') || ctx.node.id,\n icon: ctx.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n },\n type: JsonSchemaUtils.schemaToAST(value),\n }),\n ],\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n DataEvent,\n Effect,\n EffectOptions,\n FlowNodeRegistry,\n FlowNodeVariableData,\n} from '@flowgram.ai/editor';\n\nexport const syncVariableTitle: EffectOptions[] = [\n {\n event: DataEvent.onValueChange,\n effect: (({ value, context }) => {\n context.node.getData(FlowNodeVariableData).allScopes.forEach((_scope) => {\n _scope.output.variables.forEach((_var) => {\n _var.updateMeta({\n title: value || context.node.id,\n icon: context.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n });\n });\n });\n }) as Effect,\n },\n];\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n ASTFactory,\n createEffectFromVariableProvider,\n defineFormPluginCreator,\n FlowNodeRegistry,\n getNodeForm,\n getNodePrivateScope,\n getNodeScope,\n ScopeChainTransformService,\n type EffectOptions,\n type FormPluginCreator,\n FlowNodeScopeType,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '../../typings';\n\nexport const provideBatchOutputsEffect: EffectOptions[] = createEffectFromVariableProvider({\n parse: (value: Record<string, IFlowRefValue>, ctx) => [\n ASTFactory.createVariableDeclaration({\n key: `${ctx.node.id}`,\n meta: {\n title: getNodeForm(ctx.node)?.getValueIn('title'),\n icon: ctx.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n },\n type: ASTFactory.createObject({\n properties: Object.entries(value).map(([_key, value]) =>\n ASTFactory.createProperty({\n key: _key,\n initializer: ASTFactory.createWrapArrayExpression({\n wrapFor: ASTFactory.createKeyPathExpression({\n keyPath: value?.content || [],\n }),\n }),\n })\n ),\n }),\n }),\n ],\n});\n\n/**\n * Free Layout only right now\n */\nexport const createBatchOutputsFormPlugin: FormPluginCreator<{ outputKey: string }> =\n defineFormPluginCreator({\n name: 'batch-outputs-plugin',\n onSetupFormMeta({ mergeEffect }, { outputKey }) {\n mergeEffect({\n [outputKey]: provideBatchOutputsEffect,\n });\n },\n onInit(ctx, { outputKey }) {\n const chainTransformService = ctx.node.getService(ScopeChainTransformService);\n\n const batchNodeType = ctx.node.flowNodeType;\n\n const transformerId = `${batchNodeType}-outputs`;\n\n if (chainTransformService.hasTransformer(transformerId)) {\n return;\n }\n\n chainTransformService.registerTransformer(transformerId, {\n transformCovers: (covers, ctx) => {\n const node = ctx.scope.meta?.node;\n\n // Child Node's variable can cover parent\n if (node?.parent?.flowNodeType === batchNodeType) {\n return [...covers, getNodeScope(node.parent)];\n }\n\n return covers;\n },\n transformDeps(scopes, ctx) {\n const scopeMeta = ctx.scope.meta;\n\n if (scopeMeta?.type === FlowNodeScopeType.private) {\n return scopes;\n }\n\n const node = scopeMeta?.node;\n\n // Public of Loop Node depends on child Node\n if (node?.flowNodeType === batchNodeType) {\n // Get all child blocks\n const childBlocks = node.blocks;\n\n // public scope of all child blocks\n return [\n getNodePrivateScope(node),\n ...childBlocks.map((_childBlock) => getNodeScope(_childBlock)),\n ];\n }\n\n return scopes;\n },\n });\n },\n });\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKA,IAAAA,gBAA+B;AAI/B,IAAAC,qBAAyD;;;ACJzD,IAAAC,gBAAmC;AAEnC,IAAAC,iBAAmE;AAEnE,qBAAqB;;;ACJrB,mBAAkB;AAGlB,wBAAiB;AAIV,IAAM,oBAAwD;AAAA,EACnE,QACE,6BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACN,OAAM;AAAA,MACN,QAAO;AAAA,MACP,WAAU;AAAA,MACV,eAAY;AAAA;AAAA,IAEZ,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACN;AAAA,EACH;AAAA,EAEF,QACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,IACA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEF,SACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,IACA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEF,QACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,IACA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,IACA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,IACA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEF,SACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,IACA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,IACA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEF,QACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,IACA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,IACA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEF,OACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,IACA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,EACF;AAAA,EAGF,QACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAQ;AAAA,MACR,OAAM;AAAA,MACN,OAAM;AAAA,MACN,QAAO;AAAA;AAAA,IAEP,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACN;AAAA,EACH;AAAA,EAGF,KACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAQ;AAAA,MACR,OAAM;AAAA,MACN,OAAM;AAAA,MACN,QAAO;AAAA;AAAA,IAEP,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACN;AAAA,IACD,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACN;AAAA,EACH;AAEJ;AAEO,IAAM,aAAiD;AAAA,EAC5D,QACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEF,SACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEF,QACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEF,SACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEF,QACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,EACF;AAEJ;AAEO,IAAM,gBAAgB,CAAC,UAAiC;AAC7D,MAAI,OAAO,SAAS,SAAS;AAC3B,WAAO,WAAW,MAAM,OAAO,QAAQ,QAAQ;AAAA,EACjD;AAEA,SAAO,kBAAkB,OAAO,QAAQ,QAAQ;AAClD;AAEA,IAAM,aAAkC,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,EAAE;AAExF,IAAM,iBAAiB,CAAC,QAAgB,IAAI,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC;AAEjF,IAAM,cAA8B;AAAA,EAClC;AAAA,IACE,OACE,6BAAAA,QAAA,cAAC,SAAI,OAAO,cACV,6BAAAA,QAAA,cAAC,kBAAAC,SAAA,EAAK,MAAK,SAAQ,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC,GAAG,GAC1D,eAAe,QAAQ,CAC1B;AAAA,IAEF,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OACE,6BAAAD,QAAA,cAAC,SAAI,OAAO,cACV,6BAAAA,QAAA,cAAC,kBAAAC,SAAA,EAAK,MAAK,SAAQ,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC,GAAG,GAC3D,eAAe,SAAS,CAC3B;AAAA,IAEF,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OACE,6BAAAD,QAAA,cAAC,SAAI,OAAO,cACV,6BAAAA,QAAA,cAAC,kBAAAC,SAAA,EAAK,MAAK,SAAQ,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC,GAAG,GAC1D,eAAe,QAAQ,CAC1B;AAAA,IAEF,OAAO;AAAA,EACT;AAAA,EAEA;AAAA,IACE,OACE,6BAAAD,QAAA,cAAC,SAAI,OAAO,cACV,6BAAAA,QAAA,cAAC,kBAAAC,SAAA,EAAK,MAAK,SAAQ,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC,GAAG,GAC3D,eAAe,SAAS,CAC3B;AAAA,IAEF,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OACE,6BAAAD,QAAA,cAAC,SAAI,OAAO,cACV,6BAAAA,QAAA,cAAC,kBAAAC,SAAA,EAAK,MAAK,SAAQ,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC,GAAG,GAC1D,eAAe,QAAQ,CAC1B;AAAA,IAEF,OAAO;AAAA,EACT;AACF;AAEO,IAAM,UAA0B;AAAA,EACrC,GAAG;AAAA,EACH;AAAA,IACE,OACE,6BAAAD,QAAA,cAAC,SAAI,OAAO,cACV,6BAAAA,QAAA,cAAC,kBAAAC,SAAA,EAAK,MAAK,SAAQ,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC,GAAG,GACzD,eAAe,OAAO,CACzB;AAAA,IAEF,OAAO;AAAA,IACP,UAAU,YAAY,IAAI,CAAC,UAAU;AAAA,MACnC,GAAG;AAAA,MACH,OAAO,GAAG,KAAK,KAAK;AAAA,MACpB,OACE,6BAAAD,QAAA,cAAC,SAAI,OAAO,cACV,6BAAAA,QAAA;AAAA,QAAC,kBAAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,KAAK,cAAc,EAAE,MAAM,SAAS,OAAO,EAAE,MAAM,KAAK,MAAgB,EAAE,CAAC;AAAA;AAAA,MAC7E,GACC,eAAe,KAAK,KAAe,CACtC;AAAA,IAEJ,EAAE;AAAA,EACJ;AACF;;;ACtWA,oBAAoB;AACpB,oBAA8E;AAIvE,IAAU;AAAA,CAAV,CAAUC,qBAAV;AAWE,WAAS,YAAY,YAAkD;AAC5E,UAAM,EAAE,MAAM,MAAM,IAAI,cAAc,CAAC;AACvC,UAAM,EAAE,OAAO,MAAM,IAAI,SAAS,CAAC;AAEnC,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AAEA,YAAQ,MAAM;AAAA,MACZ,KAAK;AACH,YAAI,MAAM;AACR,iBAAO,EAAE,MAAM,sBAAQ,QAAQ,MAAM,KAAK;AAAA,QAC5C;AACA,eAAO,yBAAW,aAAa;AAAA,UAC7B,YAAY,OAAO,QAAQ,WAAW,cAAc,CAAC,CAAC,EAKnD,KAAK,CAAC,GAAG,WAAO,mBAAI,IAAI,CAAC,GAAG,aAAa,KAAK,UAAM,mBAAI,IAAI,CAAC,GAAG,aAAa,KAAK,EAAE,EACpF,IAAI,CAAC,CAAC,KAAK,SAAS,OAAO;AAAA,YAC1B;AAAA,YACA,MAAM,YAAY,SAAS;AAAA,YAC3B,MAAM;AAAA,cACJ,OAAO,UAAU;AAAA,cACjB,aAAa,UAAU;AAAA,YACzB;AAAA,UACF,EAAE;AAAA,QACN,CAAC;AAAA,MACH,KAAK;AACH,YAAI,MAAM;AACR,iBAAO,EAAE,MAAM,sBAAQ,OAAO,MAAM,KAAK;AAAA,QAC3C;AACA,eAAO,yBAAW,YAAY;AAAA,UAC5B,OAAO,YAAY,WAAW,KAAM;AAAA,QACtC,CAAC;AAAA,MACH,KAAK;AACH,YAAI,MAAM;AACR,iBAAO,EAAE,MAAM,sBAAQ,KAAK,MAAM,KAAK;AAAA,QACzC;AACA,eAAO,yBAAW,UAAU;AAAA,UAC1B,WAAW,YAAY,WAAW,oBAAqB;AAAA,QACzD,CAAC;AAAA,MACH,KAAK;AACH,eAAO,yBAAW,aAAa;AAAA,MACjC,KAAK;AACH,eAAO,yBAAW,aAAa;AAAA,MACjC,KAAK;AACH,eAAO,yBAAW,cAAc;AAAA,MAClC,KAAK;AACH,eAAO,yBAAW,cAAc;AAAA,MAElC;AAEE,eAAO,yBAAW,iBAAiB,EAAE,UAAU,KAAK,CAAC;AAAA,IACzD;AAAA,EACF;AAxDO,EAAAA,iBAAS;AA+DT,WAAS,YACd,SACAC,UACyB;AACzB,UAAM,EAAE,YAAY,KAAK,IAAIA,YAAW,CAAC;AAEzC,QAAI,uBAAS,SAAS,OAAO,GAAG;AAC9B,aAAO;AAAA,QACL,MAAM;AAAA,MACR;AAAA,IACF;AAEA,QAAI,uBAAS,UAAU,OAAO,GAAG;AAC/B,aAAO;AAAA,QACL,MAAM;AAAA,MACR;AAAA,IACF;AAEA,QAAI,uBAAS,SAAS,OAAO,GAAG;AAC9B,aAAO;AAAA,QACL,MAAM;AAAA,MACR;AAAA,IACF;AAEA,QAAI,uBAAS,UAAU,OAAO,GAAG;AAC/B,aAAO;AAAA,QACL,MAAM;AAAA,MACR;AAAA,IACF;AAEA,QAAI,uBAAS,SAAS,OAAO,GAAG;AAC9B,aAAO;AAAA,QACL,MAAM;AAAA,QACN,YAAY,YACR,OAAO;AAAA,UACL,QAAQ,WAAW,IAAI,CAAC,aAAa;AACnC,kBAAM,SAAS,YAAY,SAAS,IAAI;AAExC,gBAAI,SAAS,MAAM,SAAS,QAAQ;AAClC,qBAAO,QAAQ,SAAS,KAAK;AAAA,YAC/B;AACA,gBAAI,SAAS,MAAM,eAAe,QAAQ;AACxC,qBAAO,cAAc,SAAS,KAAK;AAAA,YACrC;AAEA,mBAAO,CAAC,SAAS,KAAK,MAAO;AAAA,UAC/B,CAAC;AAAA,QACH,IACA,CAAC;AAAA,MACP;AAAA,IACF;AAEA,QAAI,uBAAS,QAAQ,OAAO,GAAG;AAC7B,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO,YAAY,YAAY,QAAQ,KAAK,IAAI;AAAA,MAClD;AAAA,IACF;AAEA,QAAI,uBAAS,MAAM,OAAO,GAAG;AAC3B,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO,YAAY,YAAY,QAAQ,SAAS,IAAI;AAAA,MACtD;AAAA,IACF;AAEA,QAAI,uBAAS,aAAa,OAAO,GAAG;AAClC,aAAO;AAAA,QACL,MAAM,QAAQ;AAAA,MAChB;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAzEO,EAAAD,iBAAS;AAiFT,WAAS,iBACd,SACA,QACS;AACT,QAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,aAAO,QAAQ;AAAA,QACb,yBAAW,YAAY;AAAA,UACrB,OAAO,OAAO,IAAI,CAAC,YAAY,YAAY,OAAO,CAAE,EAAE,OAAO,OAAO;AAAA,QACtE,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO,QAAQ,YAAY,YAAY,MAAM,CAAC;AAAA,EAChD;AAbO,EAAAA,iBAAS;AAAA,GA3JD;;;AFOV,SAAS,gBAAgB,QAGb;AACjB,QAAM,EAAE,eAAe,cAAc,IAAI;AAEzC,QAAM,gBAAY,sCAAsB;AAExC,QAAM,0BAAsB,2BAAY,CAAC,aAA4B;AACnE,QAAI,SAAS,MAAM,MAAM;AACvB,UAAI,OAAO,SAAS,KAAK,SAAS,UAAU;AAC1C,eAAO,8BAAAE,QAAA,cAAC,SAAI,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,IAAI,QAAQ,IAAI,KAAK,SAAS,KAAK,MAAM;AAAA,MACzF;AAEA,aAAO,SAAS,KAAK;AAAA,IACvB;AAEA,UAAM,QAAQ,SAAS;AAEvB,QAAI,wBAAS,QAAQ,KAAK,GAAG;AAC3B,aACE,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,KAAK,WAAW,MAAM,OAAO,KAAK,YAAY,CAAC,KAAK,kBAAkB;AAAA;AAAA,MACxE;AAAA,IAEJ;AAEA,QAAI,wBAAS,aAAa,KAAK,GAAG;AAChC,aAAO,8BAAAA,QAAA,cAAC,uBAAK,MAAK,SAAQ,KAAK,kBAAkB,MAAM,SAAS,YAAY,CAAC,GAAG;AAAA,IAClF;AAEA,WAAO,8BAAAA,QAAA,cAAC,uBAAK,MAAK,SAAQ,KAAK,kBAAkB,SAAS,MAAM,KAAK,YAAY,CAAC,GAAG;AAAA,EACvF,GAAG,CAAC,CAAC;AAEL,QAAM,iBAAiB,CACrB,UACA,eAAgC,CAAC,MACT;AACxB,QAAI,OAAO,UAAU;AAErB,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AAEA,QAAI;AAEJ,QAAI,wBAAS,SAAS,IAAI,GAAG;AAC3B,kBAAY,KAAK,cAAc,CAAC,GAC7B,IAAI,CAAC,cAAc,eAAe,WAA4B,CAAC,GAAG,cAAc,QAAQ,CAAC,CAAC,EAC1F,OAAO,OAAO;AAAA,IACnB;AAEA,UAAM,UAAU,CAAC,GAAG,aAAa,IAAI,CAAC,WAAW,OAAO,GAAG,GAAG,SAAS,GAAG;AAC1E,UAAM,MAAM,QAAQ,KAAK,GAAG;AAE5B,UAAM,kBAAkB,gBACpB,gBAAgB,iBAAiB,MAAM,aAAa,IACpD;AACJ,UAAM,kBAAkB,gBACpB,gBAAgB,iBAAiB,MAAM,aAAa,IACpD;AAEJ,UAAM,gBAAgB,mBAAmB,CAAC;AAG1C,QAAI,CAAC,iBAAiB,CAAC,UAAU,QAAQ;AACvC,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,MACL;AAAA,MACA,OAAO,SAAS,MAAM,SAAS,SAAS;AAAA,MACxC,OAAO;AAAA,MACP;AAAA,MACA,MAAM,oBAAoB,QAAQ;AAAA,MAClC;AAAA,MACA,UAAU,CAAC;AAAA,MACX,UAAU,aAAa,CAAC,GAAG;AAAA,IAC7B;AAAA,EACF;AAEA,SAAO,CAAC,GAAG,UAAU,MAAM,CAAC,EAAE,QAAQ,CAAC,EACpC,IAAI,CAAC,cAAc,eAAe,SAA0B,CAAC,EAC7D,OAAO,OAAO;AACnB;;;AGjGA,+BAAmB;AACnB,IAAAC,kBAAgC;AAEzB,IAAM,cAAc,yBAAAC,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS3B,IAAM,YAAY,yBAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAOzB,IAAM,YAAQ,yBAAAA,SAAO,mBAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAexB,IAAM,mBAAe,yBAAAA,SAAO,0BAAU;AAAA,aAChC,CAAC,EAAE,OAAO,MAAO,SAAS,kBAAkB,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AJNzD,IAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA,SAAS,CAAC;AAAA,EACV;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAiB;AACf,QAAM,WAAW,gBAAgB,EAAE,eAAe,cAAc,CAAC;AAEjE,QAAM,gBAAY,uBAAQ,MAAM;AAC9B,QAAI,OAAO,UAAU,UAAU;AAC7B,cAAQ;AAAA,QACN;AAAA,QACA;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,WAAO,OAAO,KAAK,GAAG;AAAA,EACxB,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,aAAa,CAAC,SAA+B;AACjD,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAO,8BAAAC,QAAA,cAAC,SAAI,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,IAAI,QAAQ,IAAI,KAAK,MAAM;AAAA,IAC3E;AAEA,WAAO;AAAA,EACT;AAEA,SACE,8BAAAA,QAAA,4BAAAA,QAAA,gBACE,8BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,0BAA0B;AAAA,MAC1B,UAAU;AAAA,MACV;AAAA,MACA,MAAK;AAAA,MACL,OAAO;AAAA,MACP,WAAW;AAAA,MACX,QAAQ;AAAA,MACR;AAAA,MACA,gBAAgB,WAAW,UAAU;AAAA,MACrC,UAAU,CAAC,GAAG,YAAY;AACxB,iBAAU,QAAyB,OAAmB;AAAA,MACxD;AAAA,MACA,oBAAoB,CAAC,YAA0B;AAC7C,YAAI,CAAC,SAAS,SAAS;AACrB,iBACE,8BAAAA,QAAA;AAAA,YAAC;AAAA;AAAA,cACC,YAAY,8BAAAA,QAAA,cAAC,yCAAiB;AAAA,cAC9B,OAAM;AAAA,cACN,UAAU,CAAC;AAAA,cACX,SAAS,MAAM,SAAS,MAAS;AAAA;AAAA,YAEhC,QAAQ,mBAAmB;AAAA,UAC9B;AAAA,QAEJ;AAEA,eACE,8BAAAA,QAAA;AAAA,UAAC;AAAA;AAAA,YACC,YAAY,WAAW,QAAQ,UAAU,QAAQ,SAAS,IAAI;AAAA,YAC9D,UAAU,CAAC;AAAA,YACX,SAAS,MAAM,SAAS,MAAS;AAAA;AAAA,UAEjC,8BAAAA,QAAA,cAAC,mBACE,QAAQ,UAAU,QAAQ,GAAG,QAAQ,UAAU,KAAK,OAAO,IAC9D;AAAA,UACA,8BAAAA,QAAA,cAAC,iBAAW,QAAQ,KAAM;AAAA,QAC5B;AAAA,MAEJ;AAAA,MACA,WAAW;AAAA,MACX,WAAW,8BAAAA,QAAA,cAAC,6CAAuB,MAAK,SAAQ;AAAA,MAChD;AAAA,MACA,aAAa,QAAQ,eAAe;AAAA;AAAA,EACtC,CACF;AAEJ;;;AK9GA,IAAAC,gBAA+B;AAE/B,IAAAC,kBAAiC;AAY1B,IAAM,qBAAqB,CAAC,UAAuD;AACxF,MAAI,OAAO,SAAS,WAAW,OAAO,OAAO;AAC3C,WAAO,CAAC,MAAM,MAAM,GAAI,mBAAmB,MAAM,KAAK,KAAK,CAAC,CAAE;AAAA,EAChE;AAEA,SAAO,OAAO,OAAO,CAAC,MAAM,IAAI,IAAI;AACtC;AAEO,IAAM,uBAAuB,CAAC,UAAuD;AAC1F,QAAM,CAAC,MAAM,GAAG,QAAQ,IAAI,SAAS,CAAC;AAEtC,MAAI,SAAS,SAAS;AACpB,WAAO,EAAE,MAAM,SAAS,OAAO,qBAAqB,QAAQ,EAAE;AAAA,EAChE;AAEA,SAAO,EAAE,KAAK;AAChB;AAEO,SAAS,aAAa,OAAkB;AAC7C,QAAM,EAAE,OAAO,UAAU,UAAU,MAAM,IAAI;AAE7C,QAAM,kBAAc,uBAAQ,MAAM,mBAAmB,KAAK,GAAG,CAAC,KAAK,CAAC;AAEpE,SACE,8BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,MAAK;AAAA,MACL,eAAe,MACb,8BAAAA,QAAA,cAAC,0BAAO,MAAK,SAAQ,SAClB,cAAc,KAAK,CACtB;AAAA,MAEF,UAAU;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,MACV,UAAU,CAACC,WAAU;AACnB,iBAAS,qBAAqBA,MAAiB,CAAC;AAAA,MAClD;AAAA;AAAA,EACF;AAEJ;;;ACtDA,IAAAC,iBAAyC;AAEzC,IAAAC,kBAA6C;AAC7C,IAAAC,qBAOO;;;ACVP,IAAAC,gBAAkB;AAElB,IAAAC,4BAA4B;AAC5B,IAAAC,qBAAiB;AAEV,IAAM,cAAc,0BAAAC,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ3B,IAAM,QAAQ,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAMrB,IAAM,oBAAoB,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAKjC,IAAM,iBAAiB,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAK9B,IAAM,UAAU,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAOvB,IAAM,eAAe,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA,IAI/B,CAAC,EAAE,QAAQ,MACX,WACA;AAAA;AAAA;AAAA,KAGC;AAAA;AAGE,IAAM,iBAAiB,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAcjC,CAAC,EAAE,WAAW,SAAS,YAAY,MAAM;AACzC,MAAI,SAAS;AACb,MAAI,eAAe,SAAS;AAC1B,aAAS;AAAA,EACX;AAEA,SACE,aACA;AAAA;AAAA;AAAA;AAAA,oBAIc,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBxB,CAAC;AAAA;AAGI,IAAM,kBAAkB,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS/B,IAAM,iBAAiB,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWjC,CAAC,EAAE,SAAS,MAAM,WAAW,cAAc,MAAM;AACjD,QAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAatB,SACE,WACA;AAAA;AAAA;AAAA;AAAA;AAAA,UAKI,iBACF,cACC,SAAS,WAAW,SAAS,aAC9B;AAAA,YACI,aAAa;AAAA,SAChB;AAAA;AAGP,CAAC;AAAA;AAGI,IAAM,gBAAgB,0BAAAA,QAAO;AAAA;AAAA;AAAA,IAGhC,CAAC,EAAE,UAAU,MACb,aACA;AAAA;AAAA,KAEC;AAAA;AAGE,IAAM,SAAS,0BAAAA,QAAO;AAAA;AAAA;AAItB,IAAM,SAAS,0BAAAA,QAAO;AAEtB,IAAM,aAAa,0BAAAA,QAAO;AAE1B,IAAM,YAAY,0BAAAA,QAAO;AAAA;AAAA;AAIhC,IAAM,qBACJ,8BAAAC,QAAA;AAAA,EAAC;AAAA;AAAA,IACC,WAAU;AAAA,IACV,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA;AAAA,EAEN,8BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,UAAS;AAAA,MACT,UAAS;AAAA,MACT,GAAE;AAAA;AAAA,EACH;AAAA,EACD,8BAAAA,QAAA,cAAC,UAAK,GAAE,sZAAqZ;AAC/Z;AAGK,IAAM,kBAAkB,MAAM,8BAAAA,QAAA,cAAC,mBAAAC,SAAA,EAAK,MAAK,SAAQ,KAAK,oBAAoB;AAE1E,IAAM,sBAAsB,0BAAAF,QAAO;AAAA;AAAA;AAInC,IAAM,oBAAoB,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAOjC,IAAM,aAAa,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAU1B,IAAM,iBAAiB,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAM9B,IAAM,kBAAkB,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAM/B,IAAM,uBAAuB,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AClO3C,IAAAG,gBAAqD;AAKrD,IAAI,MAAM;AACV,SAAS,QAAQ;AACf,SAAO;AACT;AAEA,SAAS,mBACP,OACA,MAC2E;AAC3E,MAAI,CAAC,OAAO;AACV,WAAO,CAAC;AAAA,EACV;AAEA,MAAI,MAAM,SAAS,WAAW,MAAM,OAAO;AACzC,WAAO,mBAAmB,MAAM,OAAO,CAAC,GAAI,QAAQ,CAAC,GAAI,OAAO,CAAC;AAAA,EACnE;AAEA,SAAO,EAAE,QAAQ,OAAO,KAAK;AAC/B;AAEO,SAAS,kBACd,OACA,UACA;AAEA,QAAM,gBAAY,uBAAQ,MAAM,mBAAmB,KAAK,GAAG,CAAC,OAAO,OAAO,MAAM,OAAO,KAAK,CAAC;AAE7F,QAAM,oBAAoB,UAAU,QAAQ,SAAS;AAGrD,QAAM,uBAAmB;AAAA,IACvB,MACE,oBACI,OAAO,QAAQ,UAAU,QAAQ,cAAc,CAAC,CAAC,EAC9C,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,EAAE,EACpE;AAAA,MACC,CAAC,CAAC,MAAM,MAAM,GAAG,WACd;AAAA,QACC,KAAK,MAAM;AAAA,QACX;AAAA,QACA,oBAAoB,UAAU,QAAQ,UAAU,SAAS,IAAI,KAAK;AAAA,QAClE,GAAG;AAAA,QACH,OAAO;AAAA,UACL,GAAI,OAAO,SAAS,CAAC;AAAA,UACrB;AAAA,QACF;AAAA,MACF;AAAA,IACJ,IACF,CAAC;AAAA,IACP,CAAC,iBAAiB;AAAA,EACpB;AAEA,QAAM,CAAC,cAAc,eAAe,QAAI,wBAA8B,gBAAgB;AAEtF,QAAM,eAAW,sBAAO,KAAK;AAE7B,+BAAU,MAAM;AAEd,QAAI,SAAS,SAAS;AAEpB,sBAAgB,CAAC,UAAU;AACzB,cAAM,UAAU,oBAAI,IAA+B;AAEnD,mBAAW,aAAa,OAAO;AAC7B,cAAI,UAAU,MAAM;AAClB,oBAAQ,IAAI,UAAU,MAAM,SAAS;AAAA,UACvC;AAAA,QACF;AACA,eAAO,OAAO,QAAQ,UAAU,QAAQ,cAAc,CAAC,CAAC,EACrD,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,EAAE,EACpE,IAAI,CAAC,CAAC,MAAM,MAAM,MAAM;AACvB,gBAAM,YAAY,QAAQ,IAAI,IAAI;AAClC,cAAI,WAAW;AACb,mBAAO;AAAA,cACL,KAAK,UAAU;AAAA,cACf;AAAA,cACA,oBAAoB,UAAU,QAAQ,UAAU,SAAS,IAAI,KAAK;AAAA,cAClE,GAAG;AAAA,YACL;AAAA,UACF;AACA,iBAAO;AAAA,YACL,KAAK,MAAM;AAAA,YACX;AAAA,YACA,oBAAoB,UAAU,QAAQ,UAAU,SAAS,IAAI,KAAK;AAAA,YAClE,GAAG;AAAA,UACL;AAAA,QACF,CAAC;AAAA,MACL,CAAC;AAAA,IACH;AACA,aAAS,UAAU;AAAA,EACrB,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,QAAM,qBAAqB,CAAC,YAAgE;AAC1F,oBAAgB,CAAC,UAAU;AACzB,YAAM,OAAO,QAAQ,KAAK;AAG1B,YAAM,iBAA8C,CAAC;AACrD,YAAM,eAAyB,CAAC;AAEhC,iBAAW,aAAa,MAAM;AAC5B,YAAI,CAAC,UAAU,MAAM;AACnB;AAAA,QACF;AAEA,uBAAe,UAAU,IAAI,IAAI;AAEjC,YAAI,UAAU,oBAAoB;AAChC,uBAAa,KAAK,UAAU,IAAI;AAAA,QAClC;AAAA,MACF;AAEA,UAAI,kBAAkB,SAAS,CAAC;AAChC,UAAI,UAAU,MAAM;AAClB,0BAAkB,UAAU,KAAK,OAAO,CAAC,KAAK,QAAQ,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC;AAAA,MAC7E;AACA,sBAAgB,aAAa;AAC7B,sBAAgB,WAAW;AAE3B,iBAAW,SAAS,CAAC,CAAC;AAEtB,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,QAAM,gBAAgB,MAAM;AAC1B,uBAAmB,CAAC,UAAU;AAAA,MAC5B,GAAG;AAAA,MACH,EAAE,KAAK,MAAM,GAAG,MAAM,IAAI,MAAM,UAAU,OAAO,EAAE,OAAO,MAAM,SAAS,EAAE,EAAE;AAAA,IAC/E,CAAC;AAAA,EACH;AAEA,QAAM,mBAAmB,CAAC,QAAgB;AACxC,uBAAmB,CAAC,UAAU,MAAM,OAAO,CAAC,cAAc,UAAU,QAAQ,GAAG,CAAC;AAAA,EAClF;AAEA,QAAM,iBAAiB,CAAC,KAAa,cAAiC;AACpE;AAAA,MAAmB,CAAC,UAClB,MAAM,IAAI,CAAC,cAAe,UAAU,QAAQ,MAAM,YAAY,SAAU;AAAA,IAC1E;AAAA,EACF;AAEA,+BAAU,MAAM;AACd,QAAI,CAAC,mBAAmB;AACtB,sBAAgB,CAAC,CAAC;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,iBAAiB,CAAC;AAEtB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AChKA,IAAAC,gBAAqD;AAErD,IAAAC,kBAAgD;AAChD,IAAAC,qBAA6B;;;ACEtB,SAAS,aAAa,OAAoB;AAC/C,QAAM,OAAO,OAAO;AAEpB,MAAI,SAAS,UAAU;AACrB,WAAO;AAAA,EACT,WAAW,SAAS,UAAU;AAC5B,WAAO,OAAO,UAAU,KAAK,IAAI,YAAY;AAAA,EAC/C,WAAW,SAAS,WAAW;AAC7B,WAAO;AAAA,EACT,WAAW,SAAS,UAAU;AAC5B,QAAI,UAAU,MAAM;AAClB,aAAO;AAAA,IACT;AACA,WAAO,MAAM,QAAQ,KAAK,IAAI,UAAU;AAAA,EAC1C,OAAO;AAEL,WAAO;AAAA,EACT;AACF;;;ACtBA,IAAAC,gBAA+B;AAE/B,IAAAC,kBAA2C;AAI3C,IAAM,oBAAgC;AAAA,EACpC;AAAA,IACE,KAAK,CAAC,WAAW,QAAQ,SAAS;AAAA,IAClC,UAAU,CAAC,UACT,8BAAAC,QAAA,cAAC,yBAAM,aAAY,uBAAsB,MAAK,SAAQ,UAAU,MAAM,UAAW,GAAG,OAAO;AAAA,EAE/F;AAAA,EACA;AAAA,IACE,KAAK,CAAC,WAAW,QAAQ,SAAS;AAAA,IAClC,UAAU,CAAC,UACT,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,UAAU,MAAM;AAAA,QAChB,aAAW;AAAA,QACV,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAAA,EACA;AAAA,IACE,KAAK,CAAC,WAAW,QAAQ,SAAS;AAAA,IAClC,UAAU,CAAC,UACT,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,UAAU,MAAM;AAAA,QAChB,aAAW;AAAA,QACX,WAAW;AAAA,QACV,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAAA,EACA;AAAA,IACE,KAAK,CAAC,WAAW,QAAQ,SAAS;AAAA,IAClC,UAAU,CAAC,UAAU;AACnB,YAAM,EAAE,OAAO,UAAU,GAAG,KAAK,IAAI;AACrC,aACE,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,aAAY;AAAA,UACZ,MAAK;AAAA,UACL,UAAU,MAAM;AAAA,UAChB,YAAY;AAAA,YACV,EAAE,OAAO,QAAQ,OAAO,EAAE;AAAA,YAC1B,EAAE,OAAO,SAAS,OAAO,EAAE;AAAA,UAC7B;AAAA,UACA,OAAO,QAAQ,IAAI;AAAA,UACnB,UAAU,CAACC,WAAU,WAAW,CAAC,CAACA,MAAK;AAAA,UACtC,GAAG;AAAA;AAAA,MACN;AAAA,IAEJ;AAAA,EACF;AACF;AAEO,SAAS,cAAc,OAAkB;AAC9C,QAAM,EAAE,OAAO,UAAU,QAAQ,YAAY,iBAAiB,UAAU,GAAG,KAAK,IAAI;AAEpF,QAAM,iBAAa;AAAA,IACjB,MAAM,CAAC,GAAG,mBAAmB,GAAI,mBAAmB,CAAC,CAAE;AAAA,IACvD,CAAC,eAAe;AAAA,EAClB;AAEA,QAAMC,gBAAW,uBAAQ,MAAM;AAC7B,UAAM,WAAW,WAAW,KAAK,CAAC,cAAc,UAAU,IAAI,MAAM,CAAC;AAErE,WAAO,UAAU;AAAA,EACnB,GAAG,CAAC,YAAY,MAAM,CAAC;AAEvB,MAAI,CAACA,WAAU;AACb,WAAO,8BAAAF,QAAA,cAAC,yBAAM,MAAK,SAAQ,UAAQ,MAAC,aAAY,oBAAmB;AAAA,EACrE;AAEA,SAAO,8BAAAA,QAAA,cAACE,WAAA,EAAS,OAAc,UAAoB,UAAqB,GAAG,MAAM;AACnF;;;AF3DO,SAAS,aAAa,OAQ1B;AACD,QAAM,EAAE,OAAO,QAAQ,MAAM,UAAU,aAAa,eAAe,IAAI;AAEvE,QAAM,iBAAa,sBAAuB,IAAI;AAC9C,QAAM,oBAAgB,sBAAmB,IAAI;AAG7C,QAAM,CAAC,mBAAmB,oBAAoB,QAAI;AAAA,IAChD,aAAa,KAAK,MAAM,WAAW,QAAQ;AAAA,EAC7C;AAGA,QAAM,uBAAmB,2BAAY,CAAC,QAAgB;AAEpD,QAAI,QAAQ,mBAAmB;AAC7B,2BAAqB,GAAG;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC,CAAC;AAGL,QAAM,yBAAqB,2BAAY,MAAM;AAE3C,aAAS,iBAAiB;AAE1B,0BAAsB,MAAM;AAE1B,iBAAW,SAAS,KAAK;AAAA,IAC3B,CAAC;AACD,oBAAgB,IAAI;AAAA,EACtB,GAAG,CAAC,mBAAmB,QAAQ,CAAC;AAEhC,QAAM,CAAC,cAAc,eAAe,QAAI,wBAAkB,IAAI;AAE9D,QAAM,uBAAmB,2BAAY,MAAM;AACzC,QAAI;AACF,YAAM,SAAS,KAAK,MAAM,iBAAiB;AAC3C,YAAM,YAAY,KAAK,UAAU,QAAQ,MAAM,CAAC;AAChD,2BAAqB,SAAS;AAC9B,eAAS,SAAS;AAAA,IACpB,SAAS,OAAO;AACd,cAAQ,MAAM,iBAAiB,KAAK;AAAA,IACtC;AAAA,EACF,GAAG,CAAC,mBAAmB,QAAQ,CAAC;AAEhC,SAAO,SAAS,WACd,8BAAAC,QAAA,4BAAAA,QAAA,gBACE,8BAAAA,QAAA,cAAC,kBACC,8BAAAA,QAAA,cAAC,sBAAe,MAAI,GACpB,8BAAAA,QAAA,cAAC,uBACC,8BAAAA,QAAA,cAAC,2BAAQ,SAAS,kBAAkB,YAClC,8BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAM,8BAAAA,QAAA,cAAC,mCAAa,OAAO,EAAE,OAAO,4BAA4B,GAAG;AAAA,MACnE,MAAK;AAAA,MACL,MAAK;AAAA,MACL,OAAM;AAAA,MACN,SAAS;AAAA;AAAA,EACX,CACF,CACF,CACF,GAEA,8BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,UAAU;AAAA,MACV,QAAQ,CAAC,MAAM;AACb,YAAI,WAAW,WAAW,CAAC,WAAW,SAAS,SAAS,EAAE,aAAqB,GAAG;AAChF,6BAAmB;AAAA,QACrB;AAAA,MACF;AAAA,MACA,SAAS,CAAC,MAAwB;AAChC,wBAAgB,KAAK;AAAA,MACvB;AAAA;AAAA,IAEA,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,OAAO,aAAa,KAAK,MAAM,WAAW,QAAQ;AAAA,QAClD,QAAQ;AAAA,QACR,OAAM;AAAA,QACN,YAAY;AAAA,QACZ,SAAS;AAAA,UACP,UAAU;AAAA,UACV,eAAe,EAAE,SAAS,GAAG,cAAc,MAAM,KAAK,KAAK;AAAA,QAC7D;AAAA,QACA,OAAO;AAAA,UACL,SAAS;AAAA,QACX;AAAA,QACA,UAAU;AAAA;AAAA,IACZ;AAAA,EACF,CACF,IAEA,8BAAAA,QAAA,cAAC,4BACC,8BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU,CAAC,OAAO,SAAS,EAAE;AAAA,MAC7B,QAAQ,UAAU,EAAE,MAAM,SAAS;AAAA,MACnC,aAAa,eAAe;AAAA;AAAA,EAC9B,CACF;AAEJ;;;AGjIA,IAAAC,gBAA2C;AAE3C,mBAAkC;AAE3B,SAAS,UAAU,OAAmB;AAC3C,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAS,EAAE;AAErC,+BAAU,MAAM;AACd,aAAS,MAAM,KAAe;AAAA,EAChC,GAAG,CAAC,MAAM,KAAK,CAAC;AAEhB,SACE,8BAAAC,QAAA;AAAA,IAAC,aAAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,UAAU,CAACC,WAAU;AACnB,iBAASA,MAAK;AAAA,MAChB;AAAA,MACA,QAAQ,CAAC,MAAM,MAAM,WAAW,OAAO,CAAC;AAAA;AAAA,EAC1C;AAEJ;;;ANeO,SAAS,iBAAiB,OAK9B;AACD,QAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,UAAU,cAAc,IAAI;AAC7E,QAAM,EAAE,cAAc,eAAe,kBAAkB,eAAe,IAAI;AAAA,IACxE;AAAA,IACA;AAAA,EACF;AAEA,SACE,+BAAAC,QAAA,cAAC,eAAY,WAAW,MAAM,aAC5B,+BAAAA,QAAA,cAAC,oBACE,aAAa,IAAI,CAAC,WAAW,UAC5B,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,UAAU;AAAA,MACf,OAAO;AAAA,MACP;AAAA,MACA,QAAQ;AAAA,MACR,UAAU,CAAC,OAAO;AAChB,uBAAe,UAAU,KAAM,EAAE;AAAA,MACnC;AAAA,MACA,UAAU,MAAM;AACd,yBAAiB,UAAU,GAAI;AAAA,MACjC;AAAA;AAAA,EACF,CACD,CACH,GACA,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,OAAO,EAAE,WAAW,IAAI,YAAY,GAAG;AAAA,MACvC,MAAM,+BAAAA,QAAA,cAAC,iCAAS;AAAA,MAChB,SAAS;AAAA;AAAA,IAER,QAAQ,iBAAiB;AAAA,EAC5B,CACF;AAEJ;AAEA,SAAS,aAAa,OAYnB;AACD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd;AAAA,EACF,IAAI;AAEJ,QAAM,CAAC,QAAQ,SAAS,QAAI,yBAAS,KAAK;AAC1C,QAAM,CAAC,UAAU,WAAW,QAAI,yBAAS,KAAK;AAE9C,QAAM,EAAE,MAAM,MAAM,OAAO,SAAS,cAAc,aAAa,mBAAmB,IAAI,SAAS,CAAC;AAEhG,QAAM,wBAAoB,wBAAQ,OAAO,EAAE,MAAM,MAAM,IAAI,CAAC,MAAM,KAAK,CAAC;AAExE,QAAM,EAAE,cAAc,mBAAmB,eAAe,kBAAkB,eAAe,IACvF,kBAAkB,OAAO,aAAa;AAExC,QAAM,WAAW,CAAC,KAAa,WAAgB;AAC7C,oBAAgB;AAAA,MACd,GAAI,SAAS,CAAC;AAAA,MACd,CAAC,GAAG,GAAG;AAAA,IACT,CAAC;AAAA,EACH;AAEA,QAAM,eAAe,qBAAqB,aAAa,SAAS;AAEhE,SACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACE,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA;AAAA;AAAA,IAEC,gBACC,+BAAAA,QAAA,cAAC,qBAAkB,SAAS,MAAM,YAAY,CAAC,cAAc,CAAC,SAAS,KACpE,WAAW,+BAAAA,QAAA,cAAC,sCAAgB,MAAK,SAAQ,IAAK,+BAAAA,QAAA,cAAC,uCAAiB,MAAK,SAAQ,CAChF;AAAA,EAEJ,GACA,+BAAAA,QAAA,cAAC,uBACC,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,eAAe;AAAA,MACf,WAAW;AAAA,MACX,SAAS;AAAA,MACT;AAAA;AAAA,IAEA,+BAAAA,QAAA,cAAC,aACC,+BAAAA,QAAA,cAAC,cACC,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,aAAa,QAAQ,eAAe;AAAA,QACpC,MAAK;AAAA,QACL,OAAO;AAAA,QACP,UAAU,CAACC,WAAU,SAAS,QAAQA,MAAK;AAAA;AAAA,IAC7C,CACF,GACA,+BAAAD,QAAA,cAAC,cACC,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU,CAAC,WAAW;AACpB,0BAAgB;AAAA,YACd,GAAI,SAAS,CAAC;AAAA,YACd,GAAG;AAAA,UACL,CAAC;AAAA,QACH;AAAA;AAAA,IACF,CACF,GACA,+BAAAA,QAAA,cAAC,kBACC,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,UAAU,CAAC,MAAM,SAAS,sBAAsB,EAAE,OAAO,OAAO;AAAA;AAAA,IAClE,CACF,GACA,+BAAAA,QAAA,cAAC,iBACC,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAM;AAAA,QACN,MAAM,SAAS,+BAAAA,QAAA,cAAC,iCAAW,MAAK,SAAQ,IAAK,+BAAAA,QAAA,cAAC,iCAAW,MAAK,SAAQ;AAAA,QACtE,SAAS,MAAM;AACb,oBAAU,CAAC,YAAY,CAAC,OAAO;AAAA,QACjC;AAAA;AAAA,IACF,GACC,qBACC,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAM;AAAA,QACN,MAAM,+BAAAA,QAAA,cAAC,qBAAgB;AAAA,QACvB,SAAS,MAAM;AACb,wBAAc;AACd,sBAAY,IAAI;AAAA,QAClB;AAAA;AAAA,IACF,GAEF,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAM;AAAA,QACN,MAAM,+BAAAA,QAAA,cAAC,gCAAU,MAAK,SAAQ;AAAA,QAC9B,SAAS;AAAA;AAAA,IACX,CACF,CACF;AAAA,IACC,UACC,+BAAAA,QAAA,cAAC,sBACC,+BAAAA,QAAA,cAAC,eAAS,QAAQ,aAAa,aAAc,GAC7C,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAO;AAAA,QACP,UAAU,CAACC,WAAU,SAAS,eAAeA,MAAK;AAAA,QAClD,aAAa,QAAQ,mBAAmB;AAAA;AAAA,IAC1C,GACC,WAAW,KAAK,QAAQ,SAAS,WAChC,+BAAAD,QAAA,6BAAAA,QAAA,gBACE,+BAAAA,QAAA,cAAC,WAAQ,OAAO,EAAE,WAAW,GAAG,KAC7B,QAAQ,qBAAqB,eAChC,GACA,+BAAAA,QAAA,cAAC,2BACC,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,QAAQ;AAAA,QACR;AAAA,QACA,aAAa,QAAQ;AAAA,QACrB,gBAAgB,QAAQ;AAAA,QACxB,UAAU,CAACC,WAAU,SAAS,WAAWA,MAAK;AAAA;AAAA,IAChD,CACF,CACF,CAEJ;AAAA,EAEJ,GACC,gBACC,+BAAAD,QAAA,cAAC,iBAAc,WAAW,YACxB,+BAAAA,QAAA,cAAC,gBAAa,SAAS,QACpB,aAAa,IAAI,CAAC,WAAW,UAC5B,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,UAAU;AAAA,MACf,OAAO;AAAA,MACP;AAAA,MACA,QAAQ,SAAS;AAAA,MACjB,eAAe;AAAA,MACf,aAAa;AAAA,MACb,UAAU,CAAC,OAAO;AAChB,uBAAe,UAAU,KAAM,EAAE;AAAA,MACnC;AAAA,MACA,UAAU,MAAM;AACd,yBAAiB,UAAU,GAAI;AAAA,MACjC;AAAA,MACA,SAAS,UAAU,aAAa,SAAS;AAAA,MACzC,UAAU,UAAU;AAAA,MACpB,QAAQ;AAAA,MACR,WAAW;AAAA;AAAA,EACb,CACD,CACH,CACF,CAEJ,CACF;AAEJ;;;AOrQA,IAAAE,iBAAkB;AAElB,IAAAC,iBAAqC;AAKrC,IAAM,sBAAmC;AAAA,EACvC,MAAM;AAAA,EACN,OAAO,EAAE,MAAM,KAAK;AACtB;AAEO,SAAS,sBAAsB,OAA8B;AAClE,SACE,+BAAAC,QAAA,cAAC,2CACC,+BAAAA,QAAA,cAAC,oBAAkB,GAAG,OAAO,eAAe,qBAAqB,CACnE;AAEJ;;;AClBA,IAAAC,iBAA+B;AAE/B,IAAAC,kBAA2B;AAC3B,IAAAC,qBAA4B;;;ACH5B,IAAAC,4BAAmB;AAEZ,IAAMC,eAAc,0BAAAC,QAAO;AAAA;AAAA;AAAA;AAAA;AAM3B,IAAM,SAAS,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYtB,IAAM,YAAY,0BAAAA,QAAO;;;ADMzB,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAc;AAEZ,QAAM,oBAAgB,wBAAQ,MAAM;AAClC,QAAI,QAAQ,SAAS,UAAU;AAC7B,aAAO,CAAC,QAAQ,EAAE,MAAM,UAAU,CAAC;AAAA,IACrC;AACA,WAAO;AAAA,EACT,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,aAAa,MAAM;AACvB,QAAI,OAAO,SAAS,OAAO;AAEzB,aACE,+BAAAC,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO,EAAE,OAAO,OAAO;AAAA,UACvB,OAAO,OAAO;AAAA,UACd,UAAU,CAAC,OAAO,SAAS,KAAK,EAAE,MAAM,OAAO,SAAS,GAAG,IAAI,MAAS;AAAA,UACxE;AAAA,UACA;AAAA;AAAA,MACF;AAAA,IAEJ;AAEA,WACE,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,OAAO;AAAA,QACd,UAAU,CAAC,OAAO,SAAS,EAAE,MAAM,YAAY,SAAS,GAAG,CAAC;AAAA,QAC5D,QAAQ,UAAU,EAAE,MAAM,SAAS;AAAA,QACnC;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAEA,QAAM,gBAAgB,MACpB,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,EAAE,OAAO,OAAO;AAAA,MACvB,OAAO,OAAO,SAAS,QAAQ,OAAO,UAAU;AAAA,MAChD,UAAU,CAAC,OAAO,SAAS,EAAE,MAAM,OAAO,SAAS,GAAG,CAAC;AAAA,MACvD;AAAA,MACA;AAAA,MACA,eAAe,MACb,+BAAAA,QAAA,cAAC,8BAAW,UAAU,UAAU,MAAK,SAAQ,MAAM,+BAAAA,QAAA,cAAC,kCAAY,MAAK,SAAQ,GAAI;AAAA;AAAA,EAErF;AAGF,SACE,+BAAAA,QAAA,cAACC,cAAA,EAAY,SACX,+BAAAD,QAAA,cAAC,cAAQ,WAAW,CAAE,GACtB,+BAAAA,QAAA,cAAC,iBAAW,cAAc,CAAE,CAC9B;AAEJ;;;AEtFA,IAAAE,iBAA+B;AAE/B,IAAAC,kBAAsB;;;ACFtB,IAAAC,4BAAmB;AAEZ,IAAMC,eAAc,0BAAAC,QAAO;AAAA;AAAA;AAAA;AAAA;AAM3B,IAAM,aAAa,0BAAAA,QAAO;AAE1B,IAAM,SAAS,0BAAAA,QAAO;AAAA;AAAA;AAItB,IAAM,UAAU,0BAAAA,QAAO;AAAA;AAAA;AAIvB,IAAM,WAAW,0BAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AClB/B,IAAAC,iBAAwB;AAExB,IAAAC,iBAAkC;;;ACA3B,IAAM,QAAgB;AAAA,EAC3B,QAAQ;AAAA,IACN,cAAM,GAAG;AAAA,IACT,gBAAO,GAAG;AAAA,IACV,0BAAY,GAAG;AAAA,IACf,kCAAgB,GAAG;AAAA,IACnB,cAAM,GAAG;AAAA,IACT,gBAAO,GAAG;AAAA,IACV,0BAAY,GAAG;AAAA,IACf,kCAAgB,GAAG;AAAA,EACrB;AAAA,EACA,QAAQ;AAAA,IACN,cAAM,GAAG;AAAA,IACT,gBAAO,GAAG;AAAA,IACV,cAAM,GAAG;AAAA,IACT,gBAAO,GAAG;AAAA,IACV,cAAM,GAAG;AAAA,IACT,gBAAO,GAAG;AAAA,IACV,cAAM,GAAG;AAAA,IACT,gBAAO,GAAG;AAAA,IACV,0BAAY,GAAG;AAAA,IACf,kCAAgB,GAAG;AAAA,EACrB;AAAA,EACA,SAAS;AAAA,IACP,cAAM,GAAG;AAAA,IACT,gBAAO,GAAG;AAAA,IACV,cAAM,GAAG;AAAA,IACT,gBAAO,GAAG;AAAA,IACV,cAAM,GAAG;AAAA,IACT,gBAAO,GAAG;AAAA,IACV,cAAM,GAAG;AAAA,IACT,gBAAO,GAAG;AAAA,IACV,0BAAY,GAAG;AAAA,IACf,kCAAgB,GAAG;AAAA,EACrB;AAAA,EACA,SAAS;AAAA,IACP,cAAM,GAAG;AAAA,IACT,gBAAO,GAAG;AAAA,IACV,wBAAW,GAAG;AAAA,IACd,0BAAY,GAAG;AAAA,IACf,cAAM,GAAG;AAAA,IACT,gBAAO,GAAG;AAAA,IACV,0BAAY,GAAG;AAAA,IACf,kCAAgB,GAAG;AAAA,EACrB;AAAA,EACA,QAAQ;AAAA,IACN,0BAAY,GAAG;AAAA,IACf,kCAAgB,GAAG;AAAA,EACrB;AAAA,EACA,OAAO;AAAA,IACL,0BAAY,GAAG;AAAA,IACf,kCAAgB,GAAG;AAAA,EACrB;AAAA,EACA,KAAK;AAAA,IACH,0BAAY,GAAG;AAAA,IACf,kCAAgB,GAAG;AAAA,EACrB;AACF;AAEO,IAAM,YAAuB;AAAA,EAClC,cAAM,GAAG;AAAA,IACP,OAAO;AAAA,IACP,cAAc;AAAA,EAChB;AAAA,EACA,gBAAO,GAAG;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,EAChB;AAAA,EACA,cAAM,GAAG;AAAA,IACP,OAAO;AAAA,IACP,cAAc;AAAA,EAChB;AAAA,EACA,gBAAO,GAAG;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,EAChB;AAAA,EACA,cAAM,GAAG;AAAA,IACP,OAAO;AAAA,IACP,cAAc;AAAA,EAChB;AAAA,EACA,gBAAO,GAAG;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,EAChB;AAAA,EACA,cAAM,GAAG;AAAA,IACP,OAAO;AAAA,IACP,cAAc;AAAA,EAChB;AAAA,EACA,gBAAO,GAAG;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,EAChB;AAAA,EACA,0BAAY,GAAG;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,EAChB;AAAA,EACA,kCAAgB,GAAG;AAAA,IACjB,OAAO;AAAA,IACP,cAAc;AAAA,EAChB;AAAA,EACA,0BAAY,GAAG;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA,kCAAgB,GAAG;AAAA,IACjB,OAAO;AAAA,IACP,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA,wBAAW,GAAG;AAAA,IACZ,OAAO;AAAA,IACP,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA,0BAAY,GAAG;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AACF;;;AC1HA,IAAAC,iBAAyB;AAyClB,SAAS,wBAAwB,OAAiB;AACvD,UAAI,yBAAS,KAAK,GAAG;AACnB,QAAI,2BAA2B,KAAK,GAAG;AACrC,aAAO,wBAAwB,KAAK;AAAA,IACtC;AAEA,WAAO,OAAO;AAAA,MACZ,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAKC,MAAK,MAAqB;AAAA,QACzD;AAAA,QACA,wBAAwBA,MAAK;AAAA,MAC/B,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,uBAAuB;AAAA,EAC1C;AAEA,SAAO;AACT;AAgCO,SAAS,sBAAsB,OAAiB;AACrD,UAAI,yBAAS,KAAK,GAAG;AACnB,QAAI,wBAAwB,KAAK,GAAG;AAClC,aAAO,wBAAwB,KAAK;AAAA,IACtC;AAEA,WAAO,OAAO;AAAA,MACZ,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAKA,MAAK,MAAqB;AAAA,QACzD;AAAA,QACA,sBAAsBA,MAAK;AAAA,MAC7B,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,qBAAqB;AAAA,EACxC;AAEA,SAAO;AACT;AAEO,SAAS,2BAA2B,OAA+C;AACxF,aACE,yBAAS,KAAK,KACd,OAAO,KAAK,KAAK,EAAE,WAAW,KAC7B,MAAc,SAAS,SACxB,OAAQ,MAAc,YAAY;AAEtC;AAEO,SAAS,wBAAwB,OAA4C;AAClF,aACE,yBAAS,KAAK,KACd,OAAO,KAAK,KAAK,EAAE,WAAW,KAC7B,MAAc,SAAS,SACxB,MAAM,QAAS,MAAc,OAAO;AAExC;AAEO,SAAS,wBAAwB,OAAiC;AACvE,QAAM,UAAU,MAAM,QAAQ,MAAM,GAAG;AAEvC,MAAI,QAAQ,CAAC,MAAM,WAAW;AAC5B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,IAAI,GAAI,QAAQ,SAAS,IAAI,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAE;AAAA,IAC1F;AAAA,EACF;AAEA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF;AAEO,SAAS,wBAAwB,OAA8B;AACpE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS,MAAM,QAAQ,KAAK,GAAG;AAAA,EACjC;AACF;;;AFhJO,SAAS,QAAQ,MAAsB;AAC5C,QAAM,gBAAY,kCAAkB;AAEpC,QAAM,eAAW,wBAAQ,MAAM;AAC7B,QAAI,CAAC,KAAM,QAAO;AAClB,WAAO,UAAU,aAAa,KAAK,OAAO;AAAA,EAC5C,GAAG,CAAC,WAAW,IAAI,CAAC;AAEpB,QAAM,WAAO,wBAAQ,MAAM;AACzB,QAAI,CAAC,SAAU,QAAO;AAEtB,UAAM,SAAS,gBAAgB,YAAY,SAAS,MAAM,EAAE,WAAW,MAAM,CAAC;AAE9E,WAAO,MAAM,QAAQ,IAA2B;AAAA,EAClD,GAAG,CAAC,UAAU,IAAI,CAAC;AAEnB,SAAO,EAAE,KAAK;AAChB;;;AGzBA,IAAAC,iBAA+B;AAE/B,IAAAC,kBAA+B;AAC/B,IAAAC,qBAAuC;AAWhC,SAAS,MAAM,EAAE,MAAM,IAAI,SAAS,GAAe;AACxD,QAAMC,eAAU;AAAA,IACd,MACE,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS;AAAA,MACpC,GAAI,UAAU,GAAS,KAAK,CAAC;AAAA,MAC7B,OAAO;AAAA,IACT,EAAE;AAAA,IACJ,CAAC,IAAI;AAAA,EACP;AAEA,QAAM,eAAW,wBAAQ,MAAM,UAAU,EAAQ,GAAG,CAAC,EAAE,CAAC;AAExD,QAAM,iBAAiB,MACrB,+BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,EAAE,QAAQ,GAAG;AAAA,MACpB,MAAK;AAAA,MACL,OAAO;AAAA,MACP,YAAYD;AAAA,MACZ,UAAU,CAAC,MAAM;AACf,iBAAS,CAAO;AAAA,MAClB;AAAA,MACA,eAAe,CAAC,EAAE,MAAM,MACtB,+BAAAC,QAAA,cAAC,0BAAO,MAAK,SAAQ,UAAU,CAAC,QAC7B,UAAU,gBAAgB,+BAAAA,QAAA,cAAC,6CAAuB,MAAK,SAAQ,CAClE;AAAA;AAAA,EAEJ;AAGF,SAAO,EAAE,gBAAgB,SAAS;AACpC;;;ALzBO,SAAS,aAAa,EAAE,OAAO,OAAO,UAAU,SAAS,GAAc;AAC5E,QAAM,EAAE,MAAM,UAAU,MAAM,IAAI,SAAS,CAAC;AAC5C,QAAM,EAAE,KAAK,IAAI,QAAQ,IAAI;AAC7B,QAAM,EAAE,gBAAgB,SAAS,IAAI,MAAM;AAAA,IACzC;AAAA,IACA,IAAI;AAAA,IACJ,UAAU,CAAC,MAAM,SAAS,EAAE,GAAG,OAAO,UAAU,EAAE,CAAC;AAAA,EACrD,CAAC;AAED,QAAM,mBAAe,wBAAQ,MAAM;AACjC,UAAM,aAAyC,OAAO,QAAc,KAAK;AACzE,WAAO,aAAa,EAAE,MAAM,YAAY,OAAO,EAAE,MAAM,KAAK,EAAE,IAAI;AAAA,EACpE,GAAG,CAAC,MAAM,QAAQ,CAAC;AAEnB,SACE,+BAAAC,QAAA,cAACC,cAAA,EAAY,SACX,+BAAAD,QAAA,cAAC,kBAAY,eAAe,CAAE,GAC9B,+BAAAA,QAAA,cAAC,gBACC,+BAAAA,QAAA,cAAC,cACC,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,OAAO,EAAE,OAAO,OAAO;AAAA,MACvB,OAAO,MAAM;AAAA,MACb,UAAU,CAAC,MACT,SAAS;AAAA,QACP,GAAG;AAAA,QACH,MAAM;AAAA,UACJ,MAAM;AAAA,UACN,SAAS;AAAA,QACX;AAAA,MACF,CAAC;AAAA;AAAA,EAEL,CACF,GACA,+BAAAA,QAAA,cAAC,eACE,eACC,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,YAAY,CAAC;AAAA,MACvB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU,CAAC,MAAM,SAAS,EAAE,GAAG,OAAO,OAAO,EAAE,CAAC;AAAA;AAAA,EAClD,IAEA,+BAAAA,QAAA,cAAC,yBAAM,MAAK,SAAQ,UAAQ,MAAC,OAAO,UAAU,gBAAgB,SAAS,CAE3E,CACF,CACF;AAEJ;;;AMpEA,IAAAE,iBAAkB;AAElB,IAAAC,mBAA8B;AAC9B,IAAAC,qBAAqC;;;ACHrC,IAAAC,iBAAoC;AAEpC,IAAAC,iBAA2B;AAI3B,IAAIC,OAAM;AACV,SAASC,SAAQ;AACf,SAAOD;AACT;AAEO,SAAS,QAAQ,EAAE,OAAO,SAAS,GAAc;AACtD,QAAM,CAAC,MAAM,OAAO,QAAI,yBAAuB,CAAC,CAAC;AAEjD,gCAAU,MAAM;AACd,YAAQ,CAAC,cAAc;AACrB,YAAM,UAAU,OAAO,KAAK,SAAS,CAAC,CAAC;AACvC,YAAM,UAAU,UAAU,IAAI,CAAC,SAAS,KAAK,GAAG,EAAE,OAAO,OAAO;AAChE,YAAM,cAAU,2BAAW,SAAS,OAAO;AAE3C,aAAO,UACJ,OAAO,CAAC,SAAS,CAAC,KAAK,OAAO,QAAQ,SAAS,KAAK,GAAG,CAAC,EACxD,IAAI,CAAC,UAAU;AAAA,QACd,IAAI,KAAK;AAAA,QACT,KAAK,KAAK;AAAA,QACV,OAAO,KAAK,MAAM,QAAQ,KAAK,GAAI,IAAI;AAAA,MACzC,EAAE,EACD;AAAA,QACC,QAAQ,IAAI,CAAC,UAAU;AAAA,UACrB,IAAIC,OAAM;AAAA,UACV,KAAK;AAAA,UACL,OAAO,QAAQ,IAAI;AAAA,QACrB,EAAE;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACH,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,MAAM,MAAM;AAChB,YAAQ,CAAC,aAAa;AAAA,MACpB,GAAG;AAAA,MACH;AAAA,QACE,IAAIA,OAAM;AAAA,MACZ;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,SAAS,CAAC,SAAqB;AACnC,YAAQ,CAAC,aAAa;AACpB,YAAM,WAAW,SAAS,IAAI,CAAC,UAAU;AACvC,YAAI,MAAM,OAAO,KAAK,IAAI;AACxB,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT,CAAC;AAED;AAAA,QACE,OAAO;AAAA,UACL,SAAS,OAAO,CAACC,UAASA,MAAK,GAAG,EAAE,IAAI,CAACA,UAAS,CAACA,MAAK,KAAMA,MAAK,KAAK,CAAC;AAAA,QAC3E;AAAA,MACF;AAEA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,QAAM,SAAS,CAAC,WAAmB;AACjC,YAAQ,CAAC,aAAa;AACpB,YAAM,WAAW,SAAS,OAAO,CAAC,UAAU,MAAM,OAAO,MAAM;AAE/D;AAAA,QACE,OAAO;AAAA,UACL,SAAS,OAAO,CAAC,SAAS,KAAK,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,KAAM,KAAK,KAAK,CAAC;AAAA,QAC3E;AAAA,MACF;AAEA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO,EAAE,MAAM,KAAK,QAAQ,OAAO;AACrC;;;AChFA,IAAAC,4BAAmB;AAEZ,IAAM,SAAS,0BAAAC,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAOtB,IAAMC,SAAQ,0BAAAD,QAAO;AAAA;AAAA;AAAA;AAAA;;;AFCrB,SAAS,aAAa,OAAkB;AAC7C,QAAM,EAAE,UAAU,MAAM,IAAI;AAE5B,QAAM,EAAE,MAAM,KAAK,QAAQ,OAAO,IAAI,QAAQ,KAAK;AAEnD,SACE,+BAAAE,QAAA,cAAC,aACC,+BAAAA,QAAA,cAAC,UAAO,SACL,KAAK,IAAI,CAAC,SACT,+BAAAA,QAAA,cAACC,QAAA,EAAM,KAAK,KAAK,MACf,+BAAAD,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,EAAE,OAAO,IAAI;AAAA,MACpB,UAAU;AAAA,MACV,MAAK;AAAA,MACL,OAAO,KAAK;AAAA,MACZ,UAAU,CAAC,MAAM,OAAO,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;AAAA;AAAA,EAC7C,GACA,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,EAAE,UAAU,EAAE;AAAA,MACrB;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,MACnB,UAAU,CAAC,MACT,OAAO;AAAA,QACL,GAAG;AAAA,QACH,OAAO;AAAA,UACL,MAAM;AAAA,UACN,SAAS;AAAA,QACX;AAAA,MACF,CAAC;AAAA;AAAA,EAEL,GACA,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,UAAU;AAAA,MACV,MAAM,+BAAAA,QAAA,cAAC,mCAAW;AAAA,MAClB,MAAK;AAAA,MACL,SAAS,MAAM,OAAO,KAAK,EAAE;AAAA;AAAA,EAC/B,CACF,CACD,CACH,GACA,+BAAAA,QAAA,cAAC,2BAAO,UAAU,UAAU,MAAM,+BAAAA,QAAA,cAAC,iCAAS,GAAI,MAAK,SAAQ,SAAS,OAAK,KAE3E,CACF;AAEJ;;;AGvDA,IAAAE,iBAAkB;AAElB,IAAAA,iBAAyC;AACzC,IAAAC,wBAAmB;;;ACHnB,IAAAC,4BAA4B;AAErB,IAAMC,eAAc,0BAAAC,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAK9B,CAAC,EAAE,UAAU,MACb,aACA;AAAA;AAAA,KAEC;AAAA;;;ACXL,IAAAC,iBAAgC;AAEhC,IAAAA,iBAA4B;AAC5B,IAAAC,iBAA6B;AAC7B,kBAA2B;AAE3B,SAAS,oBAAoB;AAC3B,QAAM,eAAW,4BAAY;AAE7B;AAAA,IACE,MACE,SAAS,OAAO;AAAA,MACd,4BAAa,MAAM,GAAG,CAAC,WAAW;AAEhC,YAAI,OAAO,KAAK,WAAW,YAAY,GAAG;AACxC,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,WAAW;AAAA,UACb;AAAA,QACF;AAGA,YAAI,OAAO,SAAS,YAAY;AAC9B,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,WAAW;AAAA,UACb;AAAA,QACF;AAGA,YAAI,OAAO,SAAS,kBAAkB;AACpC,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,WAAW;AAAA,UACb;AAAA,QACF;AAKA,YAAI,OAAO,SAAS,cAAc,OAAO,SAAS,aAAa;AAC7D,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,WAAW;AAAA,UACb;AAAA,QACF;AAAA,MACF,CAAC;AAAA,MACD,uBAAW,MAAM;AAAA,QACf,YAAY;AAAA,UACV,OAAO;AAAA,UACP,YAAY;AAAA,QACd;AAAA,QACA,aAAa;AAAA,UACX,WAAW;AAAA,QACb;AAAA,QACA,oBAAoB;AAAA,UAClB,YAAY;AAAA,QACd;AAAA,QACA,SAAS;AAAA,UACP,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,IACH,CAAC,QAAQ;AAAA,EACX;AAEA,SAAO;AACT;AAEA,IAAO,mBAAQ;;;ACrEf,IAAAC,iBAAgC;AAEhC,IAAAA,iBAA4B;AAC5B,2BAAgC;AAEhC,SAAS,kBAAkB;AACzB,QAAM,eAAW,4BAAY;AAE7B,sCAAgB,MAAM,SAAS,OAAO,CAAC,oCAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;AAEpE,SAAO;AACT;AAEA,IAAO,2BAAQ;;;ACbf,IAAAC,iBAAgC;AAEhC,IAAAA,iBAA4B;AAC5B,IAAAC,iBAA6B;AAC7B,IAAAC,eAA2B;AAE3B,SAAS,iBAAiB;AACxB,QAAM,eAAW,4BAAY;AAE7B;AAAA,IACE,MACE,SAAS,OAAO;AAAA,MACd,4BAAa,MAAM,GAAG,CAAC,WAAW;AAChC,YAAI,OAAO,SAAS,yBAAyB,OAAO,SAAS,qBAAqB;AAChF,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,WAAW;AAAA,UACb;AAAA,QACF;AAEA,YAAI,OAAO,SAAS,gBAAgB;AAClC,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,WAAW;AAAA,UACb;AAAA,QACF;AAEA,YAAI,OAAO,SAAS,mBAAmB;AACrC,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,WAAW;AAAA,UACb;AAAA,QACF;AAAA,MACF,CAAC;AAAA,MACD,wBAAW,MAAM;AAAA,QACf,4BAA4B;AAAA,UAC1B,OAAO;AAAA,QACT;AAAA,QACA,kBAAkB;AAAA,UAChB,OAAO;AAAA,QACT;AAAA,QACA,qBAAqB;AAAA,UACnB,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,IACH,CAAC,QAAQ;AAAA,EACX;AAEA,SAAO;AACT;AAEA,IAAO,gBAAQ;;;AJvCR,SAAS,aAAa,OAAkB;AAC7C,QAAM,EAAE,OAAO,UAAU,UAAU,OAAO,UAAU,SAAS,IAAI,SAAS,CAAC;AAE3E,SACE,+BAAAC,QAAA,cAACC,cAAA,EAAY,WAAW,UAAU,SAChC,+BAAAD,QAAA,cAAC,qCACC,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,sBAAAE;AAAA,MACT,cAAc,OAAO,OAAO,OAAO;AAAA,MACnC,SAAS;AAAA,QACP,UAAU;AAAA,QACV,UAAU,CAAC;AAAA,MACb;AAAA,MACA,UAAU,CAAC,MAAM;AACf,iBAAS,EAAE,MAAM,YAAY,SAAS,EAAE,MAAM,CAAC;AAAA,MACjD;AAAA;AAAA,EACF,GACA,+BAAAF,QAAA,cAAC,sBAAkB,GACnB,+BAAAA,QAAA,cAAC,8BAAgB,GACjB,+BAAAA,QAAA,cAAC,mBAAe,GACf,QACH,CACF;AAEJ;;;AKrCA,IAAAG,iBAAkB;;;ACAlB,IAAAC,iBAA2C;AAE3C,IAAAC,mBAA8B;AAC9B,IAAAD,iBAMO;AAKP,SAAS,WAAW;AAClB,QAAM,CAAC,QAAQ,SAAS,QAAI,yBAAS,EAAE;AACvC,QAAM,CAAC,SAAS,UAAU,QAAI,yBAAS,KAAK;AAC5C,QAAM,CAAC,UAAU,WAAW,QAAI,yBAAS,EAAE;AAC3C,QAAM,aAAS,0BAAqB;AAEpC,WAAS,OAAO,cAAsB;AACpC,UAAM,YAAQ,8CAA8B,OAAO,MAAM,KAAK;AAE9D,QAAI,CAAC,OAAO;AACV;AAAA,IACF;AAEA,WAAO,YAAY;AAAA,MACjB,GAAG;AAAA,MACH,MAAM,OAAO,eAAe;AAAA,IAC9B,CAAC;AAED,eAAW,KAAK;AAAA,EAClB;AAEA,WAAS,iBAAiB,GAA2B;AACnD,gBAAY,EAAE,MAAM,UAAU,KAAK,IAAI;AACvC,eAAW,EAAE,KAAK;AAAA,EACpB;AAEA,gCAAU,MAAM;AACd,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,OAAO,CAAC;AAEpB,QAAM,WAAW,gBAAgB,CAAC,CAAC;AAEnC,SACE,+BAAAE,QAAA,6BAAAA,QAAA,gBACE,+BAAAA,QAAA,cAAC,0BAAQ,mBAAmB,CAAC,KAAK,IAAI,GAAG,cAAc,kBAAkB,GAEzE,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,SAAQ;AAAA,MACR,UAAS;AAAA,MACT,UAAU;AAAA,MACV,SACE,+BAAAA,QAAA,cAAC,SAAI,OAAO,EAAE,OAAO,IAAI,KACvB,+BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,UAAU,CAAC,MAAM;AACf,mBAAO,CAAC;AAAA,UACV;AAAA;AAAA,MACF,CACF;AAAA;AAAA,IAIF,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QAEA,UAAU,MAAM,UAAU,OAAO,KAAK,OAAO,CAAC,CAAC;AAAA;AAAA,IACjD;AAAA,EACF,CACF;AAEJ;AAEA,IAAO,mBAAQ;;;AD1ER,SAAS,0BAA0B,OAA8B;AACtE,SACE,+BAAAC,QAAA,cAAC,gBAAc,GAAG,SAChB,+BAAAA,QAAA,cAAC,sBAAS,CACZ;AAEJ;;;AEXA,IAAAC,iBAMO;AAIA,IAAM,8BAA2C,iDAAiC;AAAA,EACvF,SAAS;AAAA,EACT,OAAO,CAAC,OAAsB,QAAQ;AAAA,IACpC,0BAAW,0BAA0B;AAAA,MACnC,KAAK,GAAG,IAAI,KAAK,EAAE;AAAA,MACnB,MAAM;AAAA,QACJ,WAAO,4BAAY,IAAI,IAAI,GAAG,WAAW,OAAO;AAAA,QAChD,MAAM,IAAI,KAAK,gBAAkC,EAAE,MAAM;AAAA,MAC3D;AAAA,MACA,MAAM,0BAAW,aAAa;AAAA,QAC5B,YAAY;AAAA,UACV,0BAAW,eAAe;AAAA,YACxB,KAAK;AAAA,YACL,aAAa,0BAAW,0BAA0B;AAAA,cAChD,cAAc,0BAAW,wBAAwB;AAAA,gBAC/C,SAAS,MAAM,WAAW,CAAC;AAAA,cAC7B,CAAC;AAAA,YACH,CAAC;AAAA,UACH,CAAC;AAAA,UACD,0BAAW,eAAe;AAAA,YACxB,KAAK;AAAA,YACL,MAAM,0BAAW,aAAa;AAAA,UAChC,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;;;ACrCD,IAAAC,iBAMO;AAIA,IAAM,gCAA6C,iDAAiC;AAAA,EACzF,OAAO,CAAC,OAAsC,QAAQ;AAAA,IACpD,0BAAW,0BAA0B;AAAA,MACnC,KAAK,GAAG,IAAI,KAAK,EAAE;AAAA,MACnB,MAAM;AAAA,QACJ,WAAO,4BAAY,IAAI,IAAI,GAAG,WAAW,OAAO;AAAA,QAChD,MAAM,IAAI,KAAK,gBAAkC,EAAE,MAAM;AAAA,MAC3D;AAAA,MACA,MAAM,0BAAW,aAAa;AAAA,QAC5B,YAAY,OAAO,QAAQ,KAAK,EAAE;AAAA,UAAI,CAAC,CAAC,MAAMC,MAAK,MACjD,0BAAW,eAAe;AAAA,YACxB,KAAK;AAAA,YACL,aAAa,0BAAW,0BAA0B;AAAA,cAChD,SAAS,0BAAW,wBAAwB;AAAA,gBAC1C,SAASA,OAAM,WAAW,CAAC;AAAA,cAC7B,CAAC;AAAA,YACH,CAAC;AAAA,UACH,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;;;AChCD,IAAAC,iBAAkC;AAClC,IAAAC,iBAKO;AAeA,IAAM,sBAAuC;AAAA,EAClD;AAAA,IACE,OAAO,yBAAU;AAAA,IACjB,QAAS,CAAC,WAAW;AACnB,YAAM,EAAE,SAAS,MAAM,KAAK,IAAI;AAEhC,YAAM,gBAAgB,QAAQ,KAAK,WAAW,4CAA6B;AAE3E,YAAM,aAAa,cAAc,SAAS,CAAC,EAAE,QAAQ,MAAM,MAAM;AAC/D,cAAM,gBAAgB;AAAA,UACpB,GAAG,OAAO,aAAa,IAAI,CAAC,WAAW,OAAO,GAAG,EAAE,QAAQ;AAAA,UAC3D,OAAO;AAAA,QACT;AACA,cAAM,eAAe;AAAA,UACnB,GAAG,MAAM,aAAa,IAAI,CAAC,WAAW,OAAO,GAAG,EAAE,QAAQ;AAAA,UAC1D,MAAM;AAAA,QACR;AAGA,oBAAY,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,gBAAgB,OAAO;AAC/D,cAAI,WAAW,IAAI,aAAa,GAAG;AACjC,eAAG,UAAU,CAAC,GAAG,cAAc,IAAI,GAAG,WAAW,CAAC,IAAI,MAAM,cAAc,MAAM,CAAC;AACjF,iBAAK,WAAW,gBAAgB,EAAE;AAAA,UACpC;AAAA,QACF,CAAC;AAAA,MACH,CAAC;AAED,aAAO,MAAM;AACX,mBAAW,QAAQ;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACF;AAQA,SAAS,WAAW,OAAsB,eAAyB;AACjE,SAAO,cAAc,MAAM,CAAC,MAAM,UAAU,SAAS,MAAM,UAAU,KAAK,CAAC;AAC7E;AAOA,SAAS,MAAM,OAAoC;AACjD,SACE,OAAO,SAAS,SAAS,MAAM,QAAQ,OAAO,OAAO,KAAK,OAAO,OAAO,QAAQ,CAAC,MAAM;AAE3F;AAQA,SAAS,YAAY,MAAc,OAAY,IAA+C;AAC5F,UAAI,yBAAS,KAAK,GAAG;AACnB,QAAI,MAAM,KAAK,GAAG;AAChB,SAAG,MAAM,KAAK;AACd;AAAA,IACF;AAEA,WAAO,QAAQ,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,MAAM,MAAM;AAChD,kBAAY,GAAG,IAAI,IAAI,IAAI,IAAI,QAAQ,EAAE;AAAA,IAC3C,CAAC;AACD;AAAA,EACF;AAEA,UAAI,wBAAQ,KAAK,GAAG;AAClB,UAAM,QAAQ,CAAC,QAAQ,QAAQ;AAC7B,kBAAY,GAAG,IAAI,IAAI,GAAG,KAAK,QAAQ,EAAE;AAAA,IAC3C,CAAC;AACD;AAAA,EACF;AAEA;AACF;;;ACvGA,IAAAC,kBAMO;AAKA,IAAM,+BAA4C,kDAAiC;AAAA,EACxF,OAAO,CAAC,OAAoB,QAAQ;AAAA,IAClC,2BAAW,0BAA0B;AAAA,MACnC,KAAK,GAAG,IAAI,KAAK,EAAE;AAAA,MACnB,MAAM;AAAA,QACJ,WAAO,6BAAY,IAAI,IAAI,GAAG,WAAW,OAAO,KAAK,IAAI,KAAK;AAAA,QAC9D,MAAM,IAAI,KAAK,gBAAkC,EAAE,MAAM;AAAA,MAC3D;AAAA,MACA,MAAM,gBAAgB,YAAY,KAAK;AAAA,IACzC,CAAC;AAAA,EACH;AACF,CAAC;;;ACtBD,IAAAC,kBAMO;AAEA,IAAM,oBAAqC;AAAA,EAChD;AAAA,IACE,OAAO,0BAAU;AAAA,IACjB,QAAS,CAAC,EAAE,OAAO,QAAQ,MAAM;AAC/B,cAAQ,KAAK,QAAQ,oCAAoB,EAAE,UAAU,QAAQ,CAAC,WAAW;AACvE,eAAO,OAAO,UAAU,QAAQ,CAAC,SAAS;AACxC,eAAK,WAAW;AAAA,YACd,OAAO,SAAS,QAAQ,KAAK;AAAA,YAC7B,MAAM,QAAQ,KAAK,gBAAkC,EAAE,MAAM;AAAA,UAC/D,CAAC;AAAA,QACH,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;ACtBA,IAAAC,kBAYO;AAIA,IAAMC,iCAA6C,kDAAiC;AAAA,EACzF,OAAO,CAAC,OAAsC,QAAQ;AAAA,IACpD,2BAAW,0BAA0B;AAAA,MACnC,KAAK,GAAG,IAAI,KAAK,EAAE;AAAA,MACnB,MAAM;AAAA,QACJ,WAAO,6BAAY,IAAI,IAAI,GAAG,WAAW,OAAO;AAAA,QAChD,MAAM,IAAI,KAAK,gBAAkC,EAAE,MAAM;AAAA,MAC3D;AAAA,MACA,MAAM,2BAAW,aAAa;AAAA,QAC5B,YAAY,OAAO,QAAQ,KAAK,EAAE;AAAA,UAAI,CAAC,CAAC,MAAMC,MAAK,MACjD,2BAAW,eAAe;AAAA,YACxB,KAAK;AAAA,YACL,aAAa,2BAAW,0BAA0B;AAAA,cAChD,SAAS,2BAAW,wBAAwB;AAAA,gBAC1C,SAASA,QAAO,WAAW,CAAC;AAAA,cAC9B,CAAC;AAAA,YACH,CAAC;AAAA,UACH,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;AAKM,IAAM,mCACX,yCAAwB;AAAA,EACtB,MAAM;AAAA,EACN,gBAAgB,EAAE,YAAY,GAAG,EAAE,UAAU,GAAG;AAC9C,gBAAY;AAAA,MACV,CAAC,SAAS,GAAGD;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EACA,OAAO,KAAK,EAAE,UAAU,GAAG;AACzB,UAAM,wBAAwB,IAAI,KAAK,WAAW,0CAA0B;AAE5E,UAAM,gBAAgB,IAAI,KAAK;AAE/B,UAAM,gBAAgB,GAAG,aAAa;AAEtC,QAAI,sBAAsB,eAAe,aAAa,GAAG;AACvD;AAAA,IACF;AAEA,0BAAsB,oBAAoB,eAAe;AAAA,MACvD,iBAAiB,CAAC,QAAQE,SAAQ;AAChC,cAAM,OAAOA,KAAI,MAAM,MAAM;AAG7B,YAAI,MAAM,QAAQ,iBAAiB,eAAe;AAChD,iBAAO,CAAC,GAAG,YAAQ,8BAAa,KAAK,MAAM,CAAC;AAAA,QAC9C;AAEA,eAAO;AAAA,MACT;AAAA,MACA,cAAc,QAAQA,MAAK;AACzB,cAAM,YAAYA,KAAI,MAAM;AAE5B,YAAI,WAAW,SAAS,kCAAkB,SAAS;AACjD,iBAAO;AAAA,QACT;AAEA,cAAM,OAAO,WAAW;AAGxB,YAAI,MAAM,iBAAiB,eAAe;AAExC,gBAAM,cAAc,KAAK;AAGzB,iBAAO;AAAA,gBACL,qCAAoB,IAAI;AAAA,YACxB,GAAG,YAAY,IAAI,CAAC,oBAAgB,8BAAa,WAAW,CAAC;AAAA,UAC/D;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAAA,EACH;AACF,CAAC;","names":["import_react","import_semi_icons","import_react","import_editor","React","Icon","JsonSchemaUtils","options","React","import_semi_ui","styled","React","import_react","import_semi_ui","React","value","import_react","import_semi_ui","import_semi_icons","import_react","import_styled_components","import_semi_icons","styled","React","Icon","import_react","import_react","import_semi_ui","import_semi_icons","import_react","import_semi_ui","React","value","Renderer","React","import_react","React","Input","value","React","value","import_react","import_editor","React","import_react","import_semi_ui","import_semi_icons","import_styled_components","UIContainer","styled","React","UIContainer","import_react","import_semi_ui","import_styled_components","UIContainer","styled","import_react","import_editor","import_lodash","value","import_react","import_semi_ui","import_semi_icons","options","React","React","UIContainer","import_react","import_semi_ui","import_semi_icons","import_react","import_lodash","_id","genId","item","import_styled_components","styled","UIRow","React","UIRow","import_react","import_preset_prompt","import_styled_components","UIContainer","styled","import_react","import_editor","import_react","import_react","import_editor","import_view","React","UIContainer","preset","import_react","import_react","import_semi_ui","React","React","import_editor","import_editor","value","import_lodash","import_editor","import_editor","import_editor","import_editor","provideBatchOutputsEffect","value","ctx"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/components/variable-selector/index.tsx","../src/components/variable-selector/use-variable-tree.tsx","../src/components/type-selector/constants.tsx","../src/utils/json-schema/index.ts","../src/components/variable-selector/styles.tsx","../src/components/type-selector/index.tsx","../src/components/json-schema-editor/index.tsx","../src/components/json-schema-editor/styles.tsx","../src/components/json-schema-editor/hooks.tsx","../src/components/json-schema-editor/default-value.tsx","../src/components/json-schema-editor/utils.ts","../src/components/constant-input/index.tsx","../src/components/json-schema-editor/components/blur-input.tsx","../src/components/batch-variable-selector/index.tsx","../src/components/dynamic-value-input/index.tsx","../src/components/dynamic-value-input/styles.tsx","../src/components/condition-row/index.tsx","../src/components/condition-row/styles.tsx","../src/components/condition-row/hooks/useRule.ts","../src/components/condition-row/constants.ts","../src/utils/format-legacy-refs/index.ts","../src/components/condition-row/hooks/useOp.tsx","../src/components/batch-outputs/index.tsx","../src/components/batch-outputs/use-list.ts","../src/components/batch-outputs/styles.tsx","../src/components/prompt-editor/index.tsx","../src/components/prompt-editor/styles.tsx","../src/components/prompt-editor/extensions/markdown.tsx","../src/components/prompt-editor/extensions/language-support.tsx","../src/components/prompt-editor/extensions/jinja.tsx","../src/components/prompt-editor-with-variables/index.tsx","../src/components/prompt-editor-with-variables/extensions/variable-tree.tsx","../src/components/prompt-editor-with-variables/extensions/variable-tag.tsx","../src/components/prompt-editor-with-variables/styles.tsx","../src/effects/provide-batch-input/index.ts","../src/effects/provide-batch-outputs/index.ts","../src/effects/auto-rename-ref/index.ts","../src/effects/provide-json-schema-outputs/index.ts","../src/effects/sync-variable-title/index.ts","../src/form-plugins/batch-outputs-plugin/index.ts"],"sourcesContent":["/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './components';\nexport * from './effects';\nexport * from './utils';\nexport * from './typings';\nexport * from './form-plugins';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { TriggerRenderProps } from '@douyinfe/semi-ui/lib/es/treeSelect';\nimport { TreeNodeData } from '@douyinfe/semi-ui/lib/es/tree';\nimport { IconChevronDownStroked, IconIssueStroked } from '@douyinfe/semi-icons';\n\nimport { IJsonSchema } from '../../typings/json-schema';\nimport { useVariableTree } from './use-variable-tree';\nimport { UIRootTitle, UITag, UITreeSelect, UIVarName } from './styles';\n\ninterface PropTypes {\n value?: string[];\n config?: {\n placeholder?: string;\n notFoundContent?: string;\n };\n onChange: (value?: string[]) => void;\n includeSchema?: IJsonSchema | IJsonSchema[];\n excludeSchema?: IJsonSchema | IJsonSchema[];\n readonly?: boolean;\n hasError?: boolean;\n style?: React.CSSProperties;\n triggerRender?: (props: TriggerRenderProps) => React.ReactNode;\n}\n\nexport type VariableSelectorProps = PropTypes;\n\nexport { useVariableTree };\n\nexport const VariableSelector = ({\n value,\n config = {},\n onChange,\n style,\n readonly = false,\n includeSchema,\n excludeSchema,\n hasError,\n triggerRender,\n}: PropTypes) => {\n const treeData = useVariableTree({ includeSchema, excludeSchema });\n\n const treeValue = useMemo(() => {\n if (typeof value === 'string') {\n console.warn(\n 'The Value of VariableSelector is a string, it should be an ARRAY. \\n',\n 'Please check the value of VariableSelector \\n'\n );\n return value;\n }\n return value?.join('.');\n }, [value]);\n\n const renderIcon = (icon: string | JSX.Element) => {\n if (typeof icon === 'string') {\n return <img style={{ marginRight: 8 }} width={12} height={12} src={icon} />;\n }\n\n return icon;\n };\n\n return (\n <>\n <UITreeSelect\n dropdownMatchSelectWidth={false}\n disabled={readonly}\n treeData={treeData}\n size=\"small\"\n value={treeValue}\n clearIcon={null}\n $error={hasError}\n style={style}\n validateStatus={hasError ? 'error' : undefined}\n onChange={(_, _config) => {\n onChange((_config as TreeNodeData).keyPath as string[]);\n }}\n renderSelectedItem={(_option: TreeNodeData) => {\n if (!_option?.keyPath) {\n return (\n <UITag\n prefixIcon={<IconIssueStroked />}\n color=\"amber\"\n closable={!readonly}\n onClose={() => onChange(undefined)}\n >\n {config?.notFoundContent ?? 'Undefined'}\n </UITag>\n );\n }\n\n return (\n <UITag\n prefixIcon={renderIcon(_option.rootMeta?.icon || _option?.icon)}\n closable={!readonly}\n onClose={() => onChange(undefined)}\n >\n <UIRootTitle>\n {_option.rootMeta?.title ? `${_option.rootMeta?.title} -` : null}\n </UIRootTitle>\n <UIVarName>{_option.label}</UIVarName>\n </UITag>\n );\n }}\n showClear={false}\n arrowIcon={<IconChevronDownStroked size=\"small\" />}\n triggerRender={triggerRender}\n placeholder={config?.placeholder ?? 'Select Variable...'}\n />\n </>\n );\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useCallback } from 'react';\n\nimport { ASTMatch, BaseVariableField, useAvailableVariables } from '@flowgram.ai/editor';\nimport { TreeNodeData } from '@douyinfe/semi-ui/lib/es/tree';\nimport { Icon } from '@douyinfe/semi-ui';\n\nimport { ArrayIcons, VariableTypeIcons } from '../type-selector/constants';\nimport { JsonSchemaUtils } from '../../utils/json-schema';\nimport { IJsonSchema } from '../../typings/json-schema';\n\ntype VariableField = BaseVariableField<{ icon?: string | JSX.Element; title?: string }>;\n\nexport function useVariableTree(params: {\n includeSchema?: IJsonSchema | IJsonSchema[];\n excludeSchema?: IJsonSchema | IJsonSchema[];\n}): TreeNodeData[] {\n const { includeSchema, excludeSchema } = params;\n\n const variables = useAvailableVariables();\n\n const getVariableTypeIcon = useCallback((variable: VariableField) => {\n if (variable.meta?.icon) {\n if (typeof variable.meta.icon === 'string') {\n return <img style={{ marginRight: 8 }} width={12} height={12} src={variable.meta.icon} />;\n }\n\n return variable.meta.icon;\n }\n\n const _type = variable.type;\n\n if (ASTMatch.isArray(_type)) {\n return (\n <Icon\n size=\"small\"\n svg={ArrayIcons[_type.items?.kind.toLowerCase()] || VariableTypeIcons.array}\n />\n );\n }\n\n if (ASTMatch.isCustomType(_type)) {\n return <Icon size=\"small\" svg={VariableTypeIcons[_type.typeName.toLowerCase()]} />;\n }\n\n return <Icon size=\"small\" svg={VariableTypeIcons[variable.type?.kind.toLowerCase()]} />;\n }, []);\n\n const renderVariable = (\n variable: VariableField,\n parentFields: VariableField[] = []\n ): TreeNodeData | null => {\n let type = variable?.type;\n\n if (!type) {\n return null;\n }\n\n let children: TreeNodeData[] | undefined;\n\n if (ASTMatch.isObject(type)) {\n children = (type.properties || [])\n .map((_property) => renderVariable(_property as VariableField, [...parentFields, variable]))\n .filter(Boolean) as TreeNodeData[];\n }\n\n const keyPath = [...parentFields.map((_field) => _field.key), variable.key];\n const key = keyPath.join('.');\n\n const isSchemaInclude = includeSchema\n ? JsonSchemaUtils.isASTMatchSchema(type, includeSchema)\n : true;\n const isSchemaExclude = excludeSchema\n ? JsonSchemaUtils.isASTMatchSchema(type, excludeSchema)\n : false;\n\n const isSchemaMatch = isSchemaInclude && !isSchemaExclude;\n\n // If not match, and no children, return null\n if (!isSchemaMatch && !children?.length) {\n return null;\n }\n\n return {\n key: key,\n label: variable.meta?.title || variable.key,\n value: key,\n keyPath,\n icon: getVariableTypeIcon(variable),\n children,\n disabled: !isSchemaMatch,\n rootMeta: parentFields[0]?.meta,\n };\n };\n\n return [...variables.slice(0).reverse()]\n .map((_variable) => renderVariable(_variable as VariableField))\n .filter(Boolean) as TreeNodeData[];\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { CascaderData } from '@douyinfe/semi-ui/lib/es/cascader';\nimport Icon from '@douyinfe/semi-icons';\n\nimport { IJsonSchema } from '../../typings';\n\nexport const VariableTypeIcons: { [key: string]: React.ReactNode } = {\n custom: (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.1 18L4.5032 20.1702C4.24999 21.0909 4.94281 22 5.89773 22C6.54881 22 7.11964 21.565 7.29227 20.9372L8.1 18H12.1L11.5032 20.1702C11.25 21.0909 11.9428 22 12.8977 22C13.5488 22 14.1196 21.565 14.2923 20.9372L15.1 18H19.5C20.3284 18 21 17.3284 21 16.5C21 15.6716 20.3284 15 19.5 15H15.925L17.575 9H20.5C21.3284 9 22 8.32843 22 7.5C22 6.67157 21.3284 6 20.5 6H18.4L18.9968 3.8298C19.25 2.90906 18.5572 2 17.6023 2C16.9512 2 16.3804 2.43504 16.2077 3.06281L15.4 6H11.4L11.9968 3.8298C12.25 2.90906 11.5572 2 10.6023 2C9.95119 2 9.38036 2.43504 9.20773 3.06281L8.4 6H4.5C3.67157 6 3 6.67157 3 7.5C3 8.32843 3.67157 9 4.5 9H7.575L5.925 15H3.5C2.67157 15 2 15.6716 2 16.5C2 17.3284 2.67157 18 3.5 18H5.1ZM8.925 15L10.575 9H14.575L12.925 15H8.925Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n ),\n object: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.33893 1.5835C5.66613 1.5835 5.93137 1.88142 5.93137 2.20862C5.93137 2.53582 5.66613 2.76838 5.33893 2.76838H4.9099C4.34717 2.76838 4.08062 3.07557 4.08062 3.71921V6.58633C4.08062 7.30996 3.80723 7.84734 3.26798 8.19105C3.11426 8.28902 3.10884 8.55273 3.26068 8.65359C3.80476 9.01503 4.08062 9.53994 4.08062 10.2434V13.1251C4.08062 13.7395 4.34717 14.0613 4.9099 14.0613H5.33893C5.66613 14.0613 5.93137 14.3435 5.93137 14.6707C5.93137 14.9979 5.66613 15.2462 5.33893 15.2462H4.64335C3.99177 15.2462 3.48828 15.0268 3.13287 14.6172C2.80708 14.2369 2.64419 13.7103 2.64419 13.0666V10.3165C2.64419 9.8923 2.55534 9.58511 2.37764 9.39494C2.26816 9.27135 1.80618 9.17938 1.38154 9.11602C1.02726 9.06315 0.759057 8.76744 0.765747 8.4093C0.772379 8.0543 1.03439 7.7566 1.38545 7.70346C1.80778 7.63952 2.26906 7.54968 2.37764 7.43477C2.55534 7.22997 2.64419 6.92278 2.64419 6.51319V3.77772C2.64419 3.11945 2.80708 2.59284 3.13287 2.21251C3.48828 1.78829 3.99177 1.5835 4.64335 1.5835H5.33893Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M10.962 15.2463C10.6348 15.2463 10.3696 14.9483 10.3696 14.6211C10.3696 14.2939 10.6348 14.0614 10.962 14.0614H11.391C11.9538 14.0614 12.2203 13.7542 12.2203 13.1105V10.2434C12.2203 9.51979 12.4937 8.98241 13.033 8.6387C13.1867 8.54073 13.1921 8.27703 13.0403 8.17616C12.4962 7.81472 12.2203 7.28982 12.2203 6.58638V3.70463C12.2203 3.09024 11.9538 2.76842 11.391 2.76842L10.962 2.76842C10.6348 2.76842 10.3696 2.48627 10.3696 2.15907C10.3696 1.83188 10.6348 1.58354 10.962 1.58354L11.6576 1.58354C12.3092 1.58354 12.8127 1.80296 13.1681 2.21255C13.4939 2.59289 13.6568 3.1195 13.6568 3.76314V6.51324C13.6568 6.93745 13.7456 7.24464 13.9233 7.43481C14.03 7.5553 14.4328 7.64858 14.8186 7.71393C15.1718 7.77376 15.4401 8.06977 15.4334 8.42791C15.4268 8.78291 15.1646 9.08018 14.814 9.13633C14.4306 9.19774 14.0291 9.28303 13.9233 9.39499C13.7456 9.59978 13.6568 9.90697 13.6568 10.3166V13.052C13.6568 13.7103 13.4939 14.2369 13.1681 14.6172C12.8127 15.0415 12.3092 15.2463 11.6576 15.2463H10.962Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n boolean: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.668 4.66683H5.33463C3.49369 4.66683 2.0013 6.15921 2.0013 8.00016C2.0013 9.84111 3.49369 11.3335 5.33463 11.3335H10.668C12.5089 11.3335 14.0013 9.84111 14.0013 8.00016C14.0013 6.15921 12.5089 4.66683 10.668 4.66683ZM5.33463 3.3335C2.75731 3.3335 0.667969 5.42283 0.667969 8.00016C0.667969 10.5775 2.75731 12.6668 5.33463 12.6668H10.668C13.2453 12.6668 15.3346 10.5775 15.3346 8.00016C15.3346 5.42283 13.2453 3.3335 10.668 3.3335H5.33463Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.66797 8.00016C8.66797 6.89559 9.5634 6.00016 10.668 6.00016C11.7725 6.00016 12.668 6.89559 12.668 8.00016C12.668 9.10473 11.7725 10.0002 10.668 10.0002C9.5634 10.0002 8.66797 9.10473 8.66797 8.00016ZM10.668 7.3335C10.2998 7.3335 10.0013 7.63197 10.0013 8.00016C10.0013 8.36835 10.2998 8.66683 10.668 8.66683C11.0362 8.66683 11.3346 8.36835 11.3346 8.00016C11.3346 7.63197 11.0362 7.3335 10.668 7.3335Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n string: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.3342 3.33321C8.96601 3.33321 8.66753 3.63169 8.66753 3.99988C8.66753 4.36807 8.96601 4.66655 9.3342 4.66655H14.6675C15.0357 4.66655 15.3342 4.36807 15.3342 3.99988C15.3342 3.63169 15.0357 3.33321 14.6675 3.33321H9.3342Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M10.0009 7.99988C10.0009 7.63169 10.2993 7.33321 10.6675 7.33321H14.6675C15.0357 7.33321 15.3342 7.63169 15.3342 7.99988C15.3342 8.36807 15.0357 8.66655 14.6675 8.66655H10.6675C10.2993 8.66655 10.0009 8.36807 10.0009 7.99988Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.0009 11.3332C11.6327 11.3332 11.3342 11.6317 11.3342 11.9999C11.3342 12.3681 11.6327 12.6665 12.0009 12.6665H14.6675C15.0357 12.6665 15.3342 12.3681 15.3342 11.9999C15.3342 11.6317 15.0357 11.3332 14.6675 11.3332H12.0009Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M9.86659 14.1482L8.23444 10.1844H3.18136C3.13868 10.1844 3.09685 10.1808 3.05616 10.1738L1.66589 14.1129C1.53049 14.4965 1.10971 14.6978 0.726058 14.5624C0.342408 14.427 0.141166 14.0062 0.276572 13.6225L4.37566 2.00848C4.71323 1.05202 6.05321 1.01763 6.4394 1.95552L11.2289 13.5872C11.3838 13.9634 11.2044 14.394 10.8282 14.5489C10.452 14.7038 10.0215 14.5244 9.86659 14.1482ZM5.44412 3.40791L3.57241 8.71109H7.62778L5.44412 3.40791Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n integer: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15.132 11.4601C15.644 11.0121 15.9 10.3921 15.9 9.60007C15.9 8.60807 15.5 7.93607 14.7 7.58407C15.412 7.23207 15.768 6.62407 15.768 5.76007C15.768 5.05607 15.536 4.48007 15.072 4.03207C14.608 3.59207 14.012 3.37207 13.284 3.37207C12.588 3.37207 12.008 3.58007 11.544 3.99607C11.064 4.42007 10.808 4.98807 10.776 5.70007H12C12.064 4.88407 12.492 4.47607 13.284 4.47607C14.124 4.47607 14.544 4.91607 14.544 5.79607C14.544 6.66007 14.112 7.09207 13.248 7.09207H13.044V8.16007H13.248C14.2 8.16007 14.676 8.62807 14.676 9.56407C14.676 10.5081 14.212 10.9801 13.284 10.9801C12.9 10.9801 12.584 10.8761 12.336 10.6681C12.064 10.4441 11.916 10.1161 11.892 9.68407H10.668C10.692 10.4761 10.964 11.0841 11.484 11.5081C11.948 11.8921 12.548 12.0841 13.284 12.0841C14.036 12.0841 14.652 11.8761 15.132 11.4601Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M4.46875 12.0003V10.9083L7.75675 6.91228C8.06075 6.54428 8.21275 6.16428 8.21275 5.77228C8.21275 4.90828 7.79675 4.47628 6.96475 4.47628C6.60475 4.47628 6.31275 4.57628 6.08875 4.77628C5.83275 5.00828 5.70475 5.34828 5.70475 5.79628H4.48075C4.48075 5.07628 4.71275 4.49228 5.17675 4.04428C5.64075 3.60428 6.23675 3.38428 6.96475 3.38428C7.70075 3.38428 8.29675 3.60028 8.75275 4.03228C9.20875 4.47228 9.43675 5.05628 9.43675 5.78428C9.43675 6.13628 9.36875 6.45628 9.23275 6.74428C9.12075 6.97628 8.92075 7.27228 8.63275 7.63228L5.95675 10.9083H9.43675V12.0003H4.46875Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M1.668 12.0001V4.78805L0 6.25205V4.89605L1.668 3.45605H2.892V12.0001H1.668Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n number: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.44151 5.3068C3.44151 3.83404 4.71542 2.64014 6.18818 2.64014C7.66094 2.64014 8.93484 3.83404 8.93484 5.3068V10.6135C8.93484 12.0862 7.66094 13.2801 6.18818 13.2801C4.71542 13.2801 3.44151 12.0862 3.44151 10.6135V5.3068ZM7.60151 5.3068C7.60151 4.57042 6.92456 3.97347 6.18818 3.97347C5.4518 3.97347 4.77484 4.57042 4.77484 5.3068V10.6135C4.77484 11.3498 5.4518 11.9468 6.18818 11.9468C6.92456 11.9468 7.60151 11.3498 7.60151 10.6135V5.3068Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.9882 2.64014C11.5154 2.64014 10.2415 3.83404 10.2415 5.3068V10.6135C10.2415 12.0862 11.5154 13.2801 12.9882 13.2801C14.4609 13.2801 15.7348 12.0862 15.7348 10.6135V5.3068C15.7348 3.83404 14.4609 2.64014 12.9882 2.64014ZM14.4015 10.6135C14.4015 11.3498 13.7246 11.9468 12.9882 11.9468C12.2518 11.9468 11.5748 11.3498 11.5748 10.6135V5.3068C11.5748 4.57042 12.2518 3.97347 12.9882 3.97347C13.7246 3.97347 14.4015 4.57042 14.4015 5.3068V10.6135Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M1.21484 13.2001C1.76713 13.2001 2.21484 12.7524 2.21484 12.2001C2.21484 11.6479 1.76713 11.2001 1.21484 11.2001C0.662559 11.2001 0.214844 11.6479 0.214844 12.2001C0.214844 12.7524 0.662559 13.2001 1.21484 13.2001Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n array: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.23759 1.00342H2.00391V14.997H5.23759V13.6251H3.35127V2.37534H5.23759V1.00342Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M10.7624 1.00342H13.9961V14.997H10.7624V13.6251H12.6487V2.37534H10.7624V1.00342Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n\n stream: (\n <svg\n viewBox=\"0 0 1024 1024\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n >\n <path\n d=\"M879.674 544.51l-158.254-0.221c-8.534 2.287-17.305-2.776-19.588-11.307l-23.862-75.877-74.742 350.891c0 0-1.523 18.507-11.518 18.507s-26.9 0.281-26.9 0.281c-8.259 2.213-16.748-2.687-18.961-10.949l-92.741-457.648-70.305 330.634c-2.261 8.291-11.94 15.206-20.385 12.986l-24.876 0.339c-8.723 2.293-17.685-2.789-20.023-11.349L270.629 544.51 143.993 544.51c-8.831 0-15.993-7.159-15.993-15.993l0-31.986c0-8.831 7.162-15.993 15.993-15.993l157.429-0.516c9.565-0.304 17.685 0.788 20.023 9.351l24.386 76.092 68.642-358.907c0 0 3.4-10.894 14.397-10.894 10.994 0 34.107-0.448 34.107-0.448 8.262-2.213 16.751 2.687 18.965 10.949l91.912 454.126 67.948-326.182c2.213-8.262 8.707-15.161 16.965-12.948l27.316-0.333c8.531-2.287 17.301 2.776 19.588 11.31l46.665 148.4 127.337 0c8.835 0 15.993 7.162 15.993 15.993l0 31.986C895.667 537.352 888.508 544.51 879.674 544.51z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n ),\n\n map: (\n <svg\n viewBox=\"0 0 1024 1024\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n >\n <path\n d=\"M877.860571 938.642286h-645.851428c-27.574857 0-54.052571-11.337143-73.508572-31.744a110.957714 110.957714 0 0 1-30.500571-76.8V193.828571c0-28.745143 10.971429-56.32 30.500571-76.726857a101.888 101.888 0 0 1 73.508572-31.817143h574.171428c27.501714 0 53.979429 11.337143 73.508572 31.744 19.529143 20.333714 30.500571 48.054857 30.500571 76.8v522.020572a34.157714 34.157714 0 0 1-6.948571 22.820571c-37.156571 19.382857-57.636571 39.350857-57.636572 72.630857 0 39.716571 19.894857 50.029714 57.636572 72.777143a34.816 34.816 0 0 1-8.045714 49.298286 32.256 32.256 0 0 1-17.334858 5.193143z m-32.256-254.537143V193.828571a40.228571 40.228571 0 0 0-39.497142-41.179428H232.009143a40.301714 40.301714 0 0 0-39.497143 41.252571V699.245714c17.773714-9.874286 37.449143-14.994286 57.417143-14.921143h595.675428v-0.073142z m-595.675428 187.245714h566.198857c-22.893714-11.190857-27.940571-39.497143-28.013714-59.977143 0-20.260571 3.218286-43.885714 28.013714-59.904h-566.125714c-31.670857 0-57.417143 26.843429-57.417143 59.977143 0 33.060571 25.746286 59.904 57.344 59.904z\"\n fill=\"currentColor\"\n ></path>\n <path\n d=\"M320 128m32.036571 0l-0.073142 0q32.036571 0 32.036571 32.036571l0 511.926858q0 32.036571-32.036571 32.036571l0.073142 0q-32.036571 0-32.036571-32.036571l0-511.926858q0-32.036571 32.036571-32.036571Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n ),\n};\n\nexport const ArrayIcons: { [key: string]: React.ReactNode } = {\n object: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 1.58105H3.6139V2.87326H1.36702V13.1264H3.6139V14.4186H0V1.58105ZM3.41656 13.3264V13.3266H1.17155V13.3264H3.41656ZM0.197344 14.2186H0.199219V1.78125H3.41656V1.78105H0.197344V14.2186ZM12.3861 1.58105H16V14.4186H12.3861V13.1264H14.633V2.87326H12.3861V1.58105ZM12.5834 2.67326V1.78105H15.8027V1.78125H12.5853V2.67326H12.5834ZM12.5853 13.3266V14.2186H12.5834V13.3264H14.8303V2.67345H14.8322V13.3266H12.5853ZM3.82031 5.9091C3.82031 5.18535 4.40703 4.59863 5.13078 4.59863C5.85453 4.59863 6.44124 5.18535 6.44124 5.9091C6.44124 6.56485 5.9596 7.1081 5.33078 7.2044V8.70018H5.32877C5.32982 8.75093 5.33078 8.80912 5.33078 8.87034V9.72111C5.33078 10.0195 5.57268 10.2614 5.87109 10.2614H6.24124C6.55613 10.2614 6.8114 10.5167 6.8114 10.8316C6.8114 11.1465 6.55613 11.4017 6.24124 11.4017H5.87109C4.94291 11.4017 4.19047 10.6493 4.19047 9.72111V6.82186C3.96158 6.58607 3.82031 6.26397 3.82031 5.9091ZM7.33679 5.9091C7.33679 5.59421 7.59205 5.33894 7.90694 5.33894H11.6085C11.9234 5.33894 12.1786 5.59421 12.1786 5.9091C12.1786 6.22399 11.9234 6.47925 11.6085 6.47925H7.90694C7.59205 6.47925 7.33679 6.22399 7.33679 5.9091ZM7.33679 9.86846C7.33679 9.55357 7.59205 9.2983 7.90694 9.2983H11.6085C11.9234 9.2983 12.1786 9.55357 12.1786 9.86846C12.1786 10.1833 11.9234 10.4386 11.6085 10.4386H7.90694C7.59205 10.4386 7.33679 10.1833 7.33679 9.86846Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n boolean: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 1.58105H3.6139V2.87326H1.36702V13.1264H3.6139V14.4186H0V1.58105ZM3.41656 13.3264V13.3266H1.17155V13.3264H3.41656ZM0.197344 14.2186H0.199219V1.78125H3.41656V1.78105H0.197344V14.2186ZM12.3861 1.58105H16V14.4186H12.3861V13.1264H14.633V2.87326H12.3861V1.58105ZM12.5834 2.67326V1.78105H15.8027V1.78125H12.5853V2.67326H12.5834ZM12.5853 13.3266V14.2186H12.5834V13.3264H14.8303V2.67345H14.8322V13.3266H12.5853ZM2.75 7.99993C2.75 6.14518 4.25358 4.6416 6.10833 4.6416H9.775C11.6298 4.6416 13.1333 6.14518 13.1333 7.99993C13.1333 9.85469 11.6298 11.3583 9.775 11.3583H6.10833C4.25358 11.3583 2.75 9.85469 2.75 7.99993ZM6.10833 5.85827C4.92552 5.85827 3.96667 6.81713 3.96667 7.99993C3.96667 9.18274 4.92552 10.1416 6.10833 10.1416H9.775C10.9578 10.1416 11.9167 9.18274 11.9167 7.99993C11.9167 6.81713 10.9578 5.85827 9.775 5.85827H6.10833ZM8.25 7.99993C8.25 7.1577 8.93277 6.47493 9.775 6.47493C10.6172 6.47493 11.3 7.1577 11.3 7.99993C11.3 8.84217 10.6172 9.52493 9.775 9.52493C8.93277 9.52493 8.25 8.84217 8.25 7.99993ZM9.775 7.6916C9.60471 7.6916 9.46667 7.82965 9.46667 7.99993C9.46667 8.17022 9.60471 8.30827 9.775 8.30827C9.94529 8.30827 10.0833 8.17022 10.0833 7.99993C10.0833 7.82965 9.94529 7.6916 9.775 7.6916Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n string: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 1.58105H3.6139V2.87326H1.36702V13.1264H3.6139V14.4186H0V1.58105ZM3.41656 13.3264V13.3266H1.17155V13.3264H3.41656ZM0.197344 14.2186H0.199219V1.78125H3.41656V1.78105H0.197344V14.2186ZM12.3861 1.58105H16V14.4186H12.3861V13.1264H14.633V2.87326H12.3861V1.58105ZM12.5834 2.67326V1.78105H15.8027V1.78125H12.5853V2.67326H12.5834ZM12.5853 13.3266V14.2186H12.5834V13.3264H14.8303V2.67345H14.8322V13.3266H12.5853ZM5.23701 4.07158C5.50364 3.3161 6.56205 3.28894 6.86709 4.02974L10 11.6383C10.1329 11.9609 9.979 12.3302 9.65631 12.4631C9.33363 12.596 8.96434 12.4421 8.83147 12.1194L7.8021 9.61951H4.61903L3.7474 12.0891C3.63126 12.4182 3.27034 12.5908 2.94127 12.4747C2.6122 12.3585 2.43958 11.9976 2.55573 11.6685L5.23701 4.07158ZM6.08814 5.45704L5.06505 8.35579H7.28174L6.08814 5.45704ZM8.81938 6.07534C8.81938 5.75166 9.08177 5.48926 9.40545 5.48926H12.8941C13.2178 5.48926 13.4802 5.75166 13.4802 6.07534C13.4802 6.39902 13.2178 6.66142 12.8941 6.66142H9.40545C9.08177 6.66142 8.81938 6.39902 8.81938 6.07534ZM10.2668 9.69181C10.2668 9.36812 10.5292 9.10573 10.8529 9.10573H12.8941C13.2178 9.10573 13.4802 9.36812 13.4802 9.69181C13.4802 10.0155 13.2178 10.2779 12.8941 10.2779H10.8529C10.5292 10.2779 10.2668 10.0155 10.2668 9.69181Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n integer: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 1.58105H3.6139V2.87326H1.36702V13.1264H3.6139V14.4186H0V1.58105ZM3.41656 13.3264V13.3266H1.17155V13.3264H3.41656ZM0.197344 14.2186H0.199219V1.78125H3.41656V1.78105H0.197344V14.2186ZM12.3861 1.58105H16V14.4186H12.3861V13.1264H14.633V2.87326H12.3861V1.58105ZM12.5834 2.67326V1.78105H15.8027V1.78125H12.5853V2.67326H12.5834ZM12.5853 13.3266V14.2186H12.5834V13.3264H14.8303V2.67345H14.8322V13.3266H12.5853ZM10.3614 5.22374C10.7161 4.90585 11.1581 4.75 11.6762 4.75C12.2173 4.75 12.6723 4.91467 13.0281 5.25207L13.0291 5.253C13.3852 5.59688 13.561 6.03946 13.561 6.56767C13.561 6.89 13.4945 7.17448 13.3539 7.41445C13.2572 7.57972 13.1279 7.71948 12.9685 7.83428C13.1575 7.95643 13.3099 8.11182 13.4225 8.30109C13.5793 8.5644 13.6531 8.88311 13.6531 9.24936C13.6531 9.83787 13.4612 10.3151 13.0656 10.6612C12.6982 10.9795 12.2305 11.1341 11.6762 11.1341C11.1356 11.1341 10.6805 10.9925 10.324 10.6977C9.92124 10.3691 9.71723 9.90026 9.69942 9.31256L9.69473 9.15802H10.846L10.8539 9.2997C10.8689 9.5698 10.9591 9.75553 11.1096 9.87941L11.1106 9.88027C11.2519 9.99882 11.4365 10.0631 11.6762 10.0631C11.9765 10.0631 12.1743 9.98692 12.2984 9.86071C12.4229 9.73404 12.4984 9.53136 12.4984 9.22422C12.4984 8.92116 12.4215 8.72127 12.2939 8.59581C12.1658 8.46989 11.961 8.39373 11.6511 8.39373H11.3586V7.34788H11.6511C11.9297 7.34788 12.111 7.27834 12.2238 7.16555C12.3366 7.05276 12.4062 6.87138 12.4062 6.59281C12.4062 6.30696 12.3378 6.12041 12.2277 6.00501C12.1188 5.89092 11.9446 5.82098 11.6762 5.82098C11.4248 5.82098 11.2539 5.88537 11.1407 5.99325C11.0268 6.10185 10.9497 6.27522 10.9291 6.5375L10.9183 6.67577H9.76788L9.77492 6.51904C9.79886 5.98644 9.99237 5.54989 10.3614 5.22374ZM5.91032 5.26037C6.26612 4.92297 6.72112 4.7583 7.26219 4.7583C7.80751 4.7583 8.26297 4.91938 8.61401 5.25194L8.61501 5.25289C8.96719 5.59272 9.13852 6.04185 9.13852 6.58435C9.13852 6.84997 9.08709 7.09565 8.9817 7.31883L8.98114 7.31999C8.89563 7.49712 8.74775 7.71415 8.54418 7.96862L8.54322 7.96981L6.87446 10.0127H9.13852V11.0753H5.36909V10.1089L7.69946 7.27679C7.89456 7.04062 7.98374 6.80773 7.98374 6.57597C7.98374 6.29602 7.91626 6.11385 7.8078 6.00122C7.70036 5.88964 7.52811 5.8209 7.26219 5.8209C7.04017 5.8209 6.87439 5.88173 6.75075 5.99193C6.61227 6.11766 6.53226 6.30918 6.53226 6.59273V6.74273H5.37747V6.59273C5.37747 6.05443 5.55248 5.60586 5.90934 5.2613L5.91032 5.26037ZM3.50907 4.80865H4.56964V11.0754H3.41486V6.2201L2.25 7.24249V5.89561L3.50907 4.80865Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n number: (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.6139 1.58154H0V14.4191H3.6139V13.1269H1.36702V2.87375H3.6139V1.58154ZM3.41656 13.3271V13.3269H1.17155V13.3271H3.41656ZM0.199219 14.2191H0.197344V1.78154H3.41656V1.78174H0.199219V14.2191ZM16 1.58154H12.3861V2.87375H14.633V13.1269H12.3861V14.4191H16V1.58154ZM12.5834 1.78154V2.67375H12.5853V1.78174H15.8027V1.78154H12.5834ZM12.5853 14.2191V13.3271H14.8322V2.67394H14.8303V13.3269H12.5834V14.2191H12.5853ZM6.86771 4.5C5.87019 4.5 5.00104 5.30767 5.00104 6.31667V9.63333C5.00104 10.6423 5.87019 11.45 6.86771 11.45C7.86523 11.45 8.73438 10.6423 8.73438 9.63333V6.31667C8.73438 5.30767 7.86523 4.5 6.86771 4.5ZM11.1177 4.5C10.1202 4.5 9.25104 5.30767 9.25104 6.31667V9.63333C9.25104 10.6423 10.1202 11.45 11.1177 11.45C12.1152 11.45 12.9844 10.6423 12.9844 9.63333V6.31667C12.9844 5.30767 12.1152 4.5 11.1177 4.5ZM6.13438 6.31667C6.13438 5.9503 6.47884 5.63333 6.86771 5.63333C7.25657 5.63333 7.60104 5.9503 7.60104 6.31667V9.63333C7.60104 9.9997 7.25657 10.3167 6.86771 10.3167C6.47884 10.3167 6.13438 9.9997 6.13438 9.63333V6.31667ZM10.3844 6.31667C10.3844 5.9503 10.7288 5.63333 11.1177 5.63333C11.5066 5.63333 11.851 5.9503 11.851 6.31667V9.63333C11.851 9.9997 11.5066 10.3167 11.1177 10.3167C10.7288 10.3167 10.3844 9.9997 10.3844 9.63333V6.31667ZM3.75938 9.85C3.33135 9.85 2.98438 10.197 2.98438 10.625C2.98438 11.053 3.33135 11.4 3.75938 11.4C4.1874 11.4 4.53438 11.053 4.53438 10.625C4.53438 10.197 4.1874 9.85 3.75938 9.85Z\"\n fill=\"currentColor\"\n />\n </svg>\n ),\n};\n\nexport const getSchemaIcon = (value?: Partial<IJsonSchema>) => {\n if (value?.type === 'array') {\n return ArrayIcons[value.items?.type || 'object'];\n }\n\n return VariableTypeIcons[value?.type || 'object'];\n};\n\nconst labelStyle: React.CSSProperties = { display: 'flex', alignItems: 'center', gap: 5 };\n\nconst firstUppercase = (str: string) => str.charAt(0).toUpperCase() + str.slice(1);\n\nconst baseOptions: CascaderData[] = [\n {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={getSchemaIcon({ type: 'string' })} />\n {firstUppercase('string')}\n </div>\n ),\n value: 'string',\n },\n {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={getSchemaIcon({ type: 'integer' })} />\n {firstUppercase('integer')}\n </div>\n ),\n value: 'integer',\n },\n {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={getSchemaIcon({ type: 'number' })} />\n {firstUppercase('number')}\n </div>\n ),\n value: 'number',\n },\n\n {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={getSchemaIcon({ type: 'boolean' })} />\n {firstUppercase('boolean')}\n </div>\n ),\n value: 'boolean',\n },\n {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={getSchemaIcon({ type: 'object' })} />\n {firstUppercase('object')}\n </div>\n ),\n value: 'object',\n },\n];\n\nexport const options: CascaderData[] = [\n ...baseOptions,\n {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={getSchemaIcon({ type: 'array' })} />\n {firstUppercase('array')}\n </div>\n ),\n value: 'array',\n children: baseOptions.map((_opt) => ({\n ..._opt,\n value: `${_opt.value}`,\n label: (\n <div style={labelStyle}>\n <Icon\n size=\"small\"\n svg={getSchemaIcon({ type: 'array', items: { type: _opt.value as string } })}\n />\n {firstUppercase(_opt.value as string)}\n </div>\n ),\n })),\n },\n];\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { get } from 'lodash';\nimport { ASTFactory, ASTKind, ASTMatch, ASTNode, ASTNodeJSON, BaseType } from '@flowgram.ai/editor';\n\nimport { IJsonSchema } from '../../typings/json-schema';\n\nexport namespace JsonSchemaUtils {\n /**\n * Converts a JSON schema to an Abstract Syntax Tree (AST) representation.\n * This function recursively processes the JSON schema and creates corresponding AST nodes.\n *\n * For more information on JSON Schema, refer to the official documentation:\n * https://json-schema.org/\n *\n * @param jsonSchema - The JSON schema to convert.\n * @returns An AST node representing the JSON schema, or undefined if the schema type is not recognized.\n */\n export function schemaToAST(jsonSchema: IJsonSchema): ASTNodeJSON | undefined {\n const { type, extra } = jsonSchema || {};\n const { weak = false } = extra || {};\n\n if (!type) {\n return undefined;\n }\n\n switch (type) {\n case 'object':\n if (weak) {\n return { kind: ASTKind.Object, weak: true };\n }\n return ASTFactory.createObject({\n properties: Object.entries(jsonSchema.properties || {})\n /**\n * Sorts the properties of a JSON schema based on the 'extra.index' field.\n * If the 'extra.index' field is not present, the property will be treated as having an index of 0.\n */\n .sort((a, b) => (get(a?.[1], 'extra.index') || 0) - (get(b?.[1], 'extra.index') || 0))\n .map(([key, _property]) => ({\n key,\n type: schemaToAST(_property),\n meta: {\n title: _property.title,\n description: _property.description,\n },\n })),\n });\n case 'array':\n if (weak) {\n return { kind: ASTKind.Array, weak: true };\n }\n return ASTFactory.createArray({\n items: schemaToAST(jsonSchema.items!),\n });\n case 'map':\n if (weak) {\n return { kind: ASTKind.Map, weak: true };\n }\n return ASTFactory.createMap({\n valueType: schemaToAST(jsonSchema.additionalProperties!),\n });\n case 'string':\n return ASTFactory.createString();\n case 'number':\n return ASTFactory.createNumber();\n case 'boolean':\n return ASTFactory.createBoolean();\n case 'integer':\n return ASTFactory.createInteger();\n\n default:\n // If the type is not recognized, return CustomType\n return ASTFactory.createCustomType({ typeName: type });\n }\n }\n\n /**\n * Convert AST To JSON Schema\n * @param typeAST\n * @returns\n */\n export function astToSchema(\n typeAST: ASTNode,\n options?: { drilldown?: boolean }\n ): IJsonSchema | undefined {\n const { drilldown = true } = options || {};\n\n if (ASTMatch.isString(typeAST)) {\n return {\n type: 'string',\n };\n }\n\n if (ASTMatch.isBoolean(typeAST)) {\n return {\n type: 'boolean',\n };\n }\n\n if (ASTMatch.isNumber(typeAST)) {\n return {\n type: 'number',\n };\n }\n\n if (ASTMatch.isInteger(typeAST)) {\n return {\n type: 'integer',\n };\n }\n\n if (ASTMatch.isObject(typeAST)) {\n return {\n type: 'object',\n properties: drilldown\n ? Object.fromEntries(\n typeAST.properties.map((property) => {\n const schema = astToSchema(property.type);\n\n if (property.meta?.title && schema) {\n schema.title = property.meta.title;\n }\n if (property.meta?.description && schema) {\n schema.description = property.meta.description;\n }\n\n return [property.key, schema!];\n })\n )\n : {},\n };\n }\n\n if (ASTMatch.isArray(typeAST)) {\n return {\n type: 'array',\n items: drilldown ? astToSchema(typeAST.items) : undefined,\n };\n }\n\n if (ASTMatch.isMap(typeAST)) {\n return {\n type: 'map',\n items: drilldown ? astToSchema(typeAST.valueType) : undefined,\n };\n }\n\n if (ASTMatch.isCustomType(typeAST)) {\n return {\n type: typeAST.typeName,\n };\n }\n\n return undefined;\n }\n\n /**\n * Check if the AST type is match the JSON Schema\n * @param typeAST\n * @param schema\n * @returns\n */\n export function isASTMatchSchema(\n typeAST: BaseType,\n schema: IJsonSchema | IJsonSchema[]\n ): boolean {\n if (Array.isArray(schema)) {\n return typeAST.isTypeEqual(\n ASTFactory.createUnion({\n types: schema.map((_schema) => schemaToAST(_schema)!).filter(Boolean),\n })\n );\n }\n\n return typeAST.isTypeEqual(schemaToAST(schema));\n }\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\nimport { Tag, TreeSelect } from '@douyinfe/semi-ui';\n\nexport const UIRootTitle = styled.div`\n margin-right: 4px;\n min-width: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--semi-color-text-2);\n`;\n\nexport const UIVarName = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 50%;\n`;\n\nexport const UITag = styled(Tag)`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n & .semi-tag-content-center {\n justify-content: flex-start;\n }\n\n &.semi-tag {\n margin: 0;\n }\n`;\n\nexport const UITreeSelect = styled(TreeSelect)<{ $error?: boolean }>`\n outline: ${({ $error }) => ($error ? '1px solid red' : 'none')};\n\n height: 22px;\n min-height: 22px;\n line-height: 22px;\n\n & .semi-tree-select-selection {\n padding: 0 2px;\n height: 22px;\n }\n\n & .semi-tree-select-selection-content {\n width: 100%;\n }\n\n & .semi-tree-select-selection-placeholder {\n padding-left: 10px;\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { Button, Cascader } from '@douyinfe/semi-ui';\n\nimport { IJsonSchema } from '../../typings';\nimport { ArrayIcons, VariableTypeIcons, getSchemaIcon, options } from './constants';\n\ninterface PropTypes {\n value?: Partial<IJsonSchema>;\n onChange: (value?: Partial<IJsonSchema>) => void;\n disabled?: boolean;\n style?: React.CSSProperties;\n}\n\nexport const getTypeSelectValue = (value?: Partial<IJsonSchema>): string[] | undefined => {\n if (value?.type === 'array' && value?.items) {\n return [value.type, ...(getTypeSelectValue(value.items) || [])];\n }\n\n return value?.type ? [value.type] : undefined;\n};\n\nexport const parseTypeSelectValue = (value?: string[]): Partial<IJsonSchema> | undefined => {\n const [type, ...subTypes] = value || [];\n\n if (type === 'array') {\n return { type: 'array', items: parseTypeSelectValue(subTypes) };\n }\n\n return { type };\n};\n\nexport function TypeSelector(props: PropTypes) {\n const { value, onChange, disabled, style } = props;\n\n const selectValue = useMemo(() => getTypeSelectValue(value), [value]);\n\n return (\n <Cascader\n disabled={disabled}\n size=\"small\"\n triggerRender={() => (\n <Button size=\"small\" style={style}>\n {getSchemaIcon(value)}\n </Button>\n )}\n treeData={options}\n value={selectValue}\n leafOnly={true}\n onChange={(value) => {\n onChange(parseTypeSelectValue(value as string[]));\n }}\n />\n );\n}\n\nexport { VariableTypeIcons, ArrayIcons, getSchemaIcon };\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo, useState } from 'react';\n\nimport { Button, Checkbox, IconButton } from '@douyinfe/semi-ui';\nimport {\n IconExpand,\n IconShrink,\n IconPlus,\n IconChevronDown,\n IconChevronRight,\n IconMinus,\n} from '@douyinfe/semi-icons';\n\nimport { TypeSelector } from '../type-selector';\nimport { IJsonSchema } from '../../typings';\nimport { ConfigType, PropertyValueType } from './types';\nimport {\n IconAddChildren,\n UIActions,\n UICollapseTrigger,\n UICollapsible,\n UIContainer,\n UIExpandDetail,\n UILabel,\n UIProperties,\n UIPropertyLeft,\n UIPropertyMain,\n UIPropertyRight,\n UIRequired,\n UIType,\n} from './styles';\nimport { UIName } from './styles';\nimport { DefaultValueWrapper, UIRow } from './styles';\nimport { usePropertiesEdit } from './hooks';\nimport { DefaultValue } from './default-value';\nimport { BlurInput } from './components/blur-input';\n\nexport function JsonSchemaEditor(props: {\n value?: IJsonSchema;\n onChange?: (value: IJsonSchema) => void;\n config?: ConfigType;\n className?: string;\n}) {\n const { value = { type: 'object' }, config = {}, onChange: onChangeProps } = props;\n const { propertyList, onAddProperty, onRemoveProperty, onEditProperty } = usePropertiesEdit(\n value,\n onChangeProps\n );\n\n return (\n <UIContainer className={props.className}>\n <UIProperties>\n {propertyList.map((_property, index) => (\n <PropertyEdit\n key={_property.key}\n value={_property}\n config={config}\n $index={index}\n onChange={(_v) => {\n onEditProperty(_property.key!, _v);\n }}\n onRemove={() => {\n onRemoveProperty(_property.key!);\n }}\n />\n ))}\n </UIProperties>\n <Button\n size=\"small\"\n style={{ marginTop: 10, marginLeft: 16 }}\n icon={<IconPlus />}\n onClick={onAddProperty}\n >\n {config?.addButtonText ?? 'Add'}\n </Button>\n </UIContainer>\n );\n}\n\nfunction PropertyEdit(props: {\n value?: PropertyValueType;\n config?: ConfigType;\n onChange?: (value: PropertyValueType) => void;\n onRemove?: () => void;\n $isLast?: boolean;\n $index?: number;\n $isFirst?: boolean;\n $parentExpand?: boolean;\n $parentType?: string;\n $showLine?: boolean;\n $level?: number; // 添加层级属性\n}) {\n const {\n value,\n config,\n $level = 0,\n onChange: onChangeProps,\n onRemove,\n $index,\n $isFirst,\n $isLast,\n $parentExpand = false,\n $parentType = '',\n $showLine,\n } = props;\n\n const [expand, setExpand] = useState(false);\n const [collapse, setCollapse] = useState(false);\n\n const { name, type, items, default: defaultValue, description, isPropertyRequired } = value || {};\n\n const typeSelectorValue = useMemo(() => ({ type, items }), [type, items]);\n\n const { propertyList, isDrilldownObject, onAddProperty, onRemoveProperty, onEditProperty } =\n usePropertiesEdit(value, onChangeProps);\n\n const onChange = (key: string, _value: any) => {\n onChangeProps?.({\n ...(value || {}),\n [key]: _value,\n });\n };\n\n const showCollapse = isDrilldownObject && propertyList.length > 0;\n\n return (\n <>\n <UIPropertyLeft\n type={type}\n $index={$index}\n $isFirst={$isFirst}\n $isLast={$isLast}\n $showLine={$showLine}\n $isExpand={expand}\n $parentExpand={$parentExpand}\n $parentType={$parentType}\n >\n {showCollapse && (\n <UICollapseTrigger onClick={() => setCollapse((_collapse) => !_collapse)}>\n {collapse ? <IconChevronDown size=\"small\" /> : <IconChevronRight size=\"small\" />}\n </UICollapseTrigger>\n )}\n </UIPropertyLeft>\n <UIPropertyRight>\n <UIPropertyMain\n $showCollapse={showCollapse}\n $collapse={collapse}\n $expand={expand}\n type={type}\n >\n <UIRow>\n <UIName>\n <BlurInput\n placeholder={config?.placeholder ?? 'Input Variable Name'}\n size=\"small\"\n value={name}\n onChange={(value) => onChange('name', value)}\n />\n </UIName>\n <UIType>\n <TypeSelector\n value={typeSelectorValue}\n onChange={(_value) => {\n onChangeProps?.({\n ...(value || {}),\n ..._value,\n });\n }}\n />\n </UIType>\n <UIRequired>\n <Checkbox\n checked={isPropertyRequired}\n onChange={(e) => onChange('isPropertyRequired', e.target.checked)}\n />\n </UIRequired>\n <UIActions>\n <IconButton\n size=\"small\"\n theme=\"borderless\"\n icon={expand ? <IconShrink size=\"small\" /> : <IconExpand size=\"small\" />}\n onClick={() => {\n setExpand((_expand) => !_expand);\n }}\n />\n {isDrilldownObject && (\n <IconButton\n size=\"small\"\n theme=\"borderless\"\n icon={<IconAddChildren />}\n onClick={() => {\n onAddProperty();\n setCollapse(true);\n }}\n />\n )}\n <IconButton\n size=\"small\"\n theme=\"borderless\"\n icon={<IconMinus size=\"small\" />}\n onClick={onRemove}\n />\n </UIActions>\n </UIRow>\n {expand && (\n <UIExpandDetail>\n <UILabel>{config?.descTitle ?? 'Description'}</UILabel>\n <BlurInput\n size=\"small\"\n value={description}\n onChange={(value) => onChange('description', value)}\n placeholder={config?.descPlaceholder ?? 'Help LLM to understand the property'}\n />\n {$level === 0 && type && type !== 'array' && (\n <>\n <UILabel style={{ marginTop: 10 }}>\n {config?.defaultValueTitle ?? 'Default Value'}\n </UILabel>\n <DefaultValueWrapper>\n <DefaultValue\n value={defaultValue}\n schema={value}\n type={type}\n placeholder={config?.defaultValuePlaceholder}\n jsonFormatText={config?.jsonFormatText}\n onChange={(value) => onChange('default', value)}\n />\n </DefaultValueWrapper>\n </>\n )}\n </UIExpandDetail>\n )}\n </UIPropertyMain>\n {showCollapse && (\n <UICollapsible $collapse={collapse}>\n <UIProperties $shrink={true}>\n {propertyList.map((_property, index) => (\n <PropertyEdit\n key={_property.key}\n value={_property}\n config={config}\n $level={$level + 1} // 传递递增的层级\n $parentExpand={expand}\n $parentType={type}\n onChange={(_v) => {\n onEditProperty(_property.key!, _v);\n }}\n onRemove={() => {\n onRemoveProperty(_property.key!);\n }}\n $isLast={index === propertyList.length - 1}\n $isFirst={index === 0}\n $index={index}\n $showLine={true}\n />\n ))}\n </UIProperties>\n </UICollapsible>\n )}\n </UIPropertyRight>\n </>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport styled, { css } from 'styled-components';\nimport Icon from '@douyinfe/semi-icons';\n\nexport const UIContainer = styled.div`\n /* & .semi-input {\n background-color: #fff;\n border-radius: 6px;\n height: 24px;\n } */\n`;\n\nexport const UIRow = styled.div`\n display: flex;\n align-items: center;\n gap: 6px;\n`;\n\nexport const UICollapseTrigger = styled.div`\n cursor: pointer;\n margin-right: 5px;\n`;\n\nexport const UIExpandDetail = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport const UILabel = styled.div`\n font-size: 12px;\n color: #999;\n font-weight: 400;\n margin-bottom: 2px;\n`;\n\nexport const UIProperties = styled.div<{ $shrink?: boolean }>`\n display: grid;\n grid-template-columns: auto 1fr;\n\n ${({ $shrink }) =>\n $shrink &&\n css`\n padding-left: 10px;\n margin-top: 10px;\n `}\n`;\n\nexport const UIPropertyLeft = styled.div<{\n $isLast?: boolean;\n $showLine?: boolean;\n $isExpand?: boolean;\n type?: string;\n $isFirst?: boolean;\n $index?: number;\n $parentExpand?: boolean;\n $parentType?: string;\n}>`\n grid-column: 1;\n position: relative;\n width: 16px;\n\n ${({ $showLine, $isLast, $parentType }) => {\n let height = '100%';\n if ($parentType && $isLast) {\n height = '24px';\n }\n\n return (\n $showLine &&\n css`\n &::before {\n /* 竖线 */\n content: '';\n height: ${height};\n position: absolute;\n left: -22px;\n top: -16px;\n width: 1px;\n background: #d9d9d9;\n display: block;\n }\n\n &::after {\n /* 横线 */\n content: '';\n position: absolute;\n left: -22px; // 横线起点和竖线对齐\n top: 8px; // 跟随你的行高调整\n width: 18px; // 横线长度\n height: 1px;\n background: #d9d9d9;\n display: block;\n }\n `\n );\n }}\n`;\n\nexport const UIPropertyRight = styled.div`\n grid-column: 2;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0px;\n }\n`;\n\nexport const UIPropertyMain = styled.div<{\n $expand?: boolean;\n type?: string;\n $collapse?: boolean;\n $showCollapse?: boolean;\n}>`\n display: flex;\n flex-direction: column;\n gap: 10px;\n position: relative;\n\n ${({ $expand, type, $collapse, $showCollapse }) => {\n const beforeElement = `\n &::before {\n /* 竖线 */\n content: '';\n height: 100%;\n position: absolute;\n left: -12px;\n top: 18px;\n width: 1px;\n background: #d9d9d9;\n display: block;\n }`;\n\n return (\n $expand &&\n css`\n background-color: #f5f5f5;\n padding: 10px;\n border-radius: 4px;\n\n ${$showCollapse &&\n $collapse &&\n (type === 'array' || type === 'object') &&\n css`\n ${beforeElement}\n `}\n `\n );\n }}\n`;\n\nexport const UICollapsible = styled.div<{ $collapse?: boolean }>`\n display: none;\n\n ${({ $collapse }) =>\n $collapse &&\n css`\n display: block;\n `}\n`;\n\nexport const UIName = styled.div`\n flex-grow: 1;\n`;\n\nexport const UIType = styled.div``;\n\nexport const UIRequired = styled.div``;\n\nexport const UIActions = styled.div`\n white-space: nowrap;\n`;\n\nconst iconAddChildrenSvg = (\n <svg\n className=\"icon-icon icon-icon-coz_add_node \"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11 6.49988C11 8.64148 9.50397 10.4337 7.49995 10.8884V15.4998C7.49995 16.0521 7.94767 16.4998 8.49995 16.4998H11.208C11.0742 16.8061 11 17.1443 11 17.4998C11 17.8554 11.0742 18.1936 11.208 18.4998H8.49995C6.8431 18.4998 5.49995 17.1567 5.49995 15.4998V10.8884C3.49599 10.4336 2 8.64145 2 6.49988C2 4.0146 4.01472 1.99988 6.5 1.99988C8.98528 1.99988 11 4.0146 11 6.49988ZM6.5 8.99988C7.88071 8.99988 9 7.88059 9 6.49988C9 5.11917 7.88071 3.99988 6.5 3.99988C5.11929 3.99988 4 5.11917 4 6.49988C4 7.88059 5.11929 8.99988 6.5 8.99988Z\"\n ></path>\n <path d=\"M17.5 12.4999C18.0523 12.4999 18.5 12.9476 18.5 13.4999V16.4999H21.5C22.0523 16.4999 22.5 16.9476 22.5 17.4999C22.5 18.0522 22.0523 18.4999 21.5 18.4999H18.5V21.4999C18.5 22.0522 18.0523 22.4999 17.5 22.4999C16.9477 22.4999 16.5 22.0522 16.5 21.4999V18.4999H13.5C12.9477 18.4999 12.5 18.0522 12.5 17.4999C12.5 16.9476 12.9477 16.4999 13.5 16.4999H16.5V13.4999C16.5 12.9476 16.9477 12.4999 17.5 12.4999Z\"></path>\n </svg>\n);\n\nexport const IconAddChildren = () => <Icon size=\"small\" svg={iconAddChildrenSvg} />;\n\nexport const DefaultValueWrapper = styled.div`\n margin: 0;\n`;\n\nexport const JSONViewerWrapper = styled.div`\n padding: 0 0 24px;\n &:first-child {\n margin-top: 0px;\n }\n`;\n\nexport const JSONHeader = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n background-color: var(--semi-color-fill-0);\n border-radius: 6px 6px 0 0;\n height: 36px;\n padding: 0 8px 0 12px;\n`;\n\nexport const JSONHeaderLeft = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n`;\n\nexport const JSONHeaderRight = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n`;\n\nexport const ConstantInputWrapper = styled.div`\n flex-grow: 1;\n\n & .semi-tree-select,\n & .semi-input-number,\n & .semi-select {\n width: 100%;\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { IJsonSchema } from '../../typings';\nimport { PropertyValueType } from './types';\n\nlet _id = 0;\nfunction genId() {\n return _id++;\n}\n\nfunction getDrilldownSchema(\n value?: PropertyValueType,\n path?: (keyof PropertyValueType)[]\n): { schema?: PropertyValueType | null; path?: (keyof PropertyValueType)[] } {\n if (!value) {\n return {};\n }\n\n if (value.type === 'array' && value.items) {\n return getDrilldownSchema(value.items, [...(path || []), 'items']);\n }\n\n return { schema: value, path };\n}\n\nexport function usePropertiesEdit(\n value?: PropertyValueType,\n onChange?: (value: PropertyValueType) => void\n) {\n // Get drilldown (array.items.items...)\n const drilldown = useMemo(() => getDrilldownSchema(value), [value, value?.type, value?.items]);\n\n const isDrilldownObject = drilldown.schema?.type === 'object';\n\n // Generate Init Property List\n const initPropertyList = useMemo(\n () =>\n isDrilldownObject\n ? Object.entries(drilldown.schema?.properties || {})\n .sort(([, a], [, b]) => (a.extra?.index ?? 0) - (b.extra?.index ?? 0))\n .map(\n ([name, _value], index) =>\n ({\n key: genId(),\n name,\n isPropertyRequired: drilldown.schema?.required?.includes(name) || false,\n ..._value,\n extra: {\n ...(_value.extra || {}),\n index,\n },\n } as PropertyValueType)\n )\n : [],\n [isDrilldownObject]\n );\n\n const [propertyList, setPropertyList] = useState<PropertyValueType[]>(initPropertyList);\n\n const mountRef = useRef(false);\n\n useEffect(() => {\n // If initRef is true, it means the component has been mounted\n if (mountRef.current) {\n // If the value is changed, update the property list\n setPropertyList((_list) => {\n const nameMap = new Map<string, PropertyValueType>();\n\n for (const _property of _list) {\n if (_property.name) {\n nameMap.set(_property.name, _property);\n }\n }\n return Object.entries(drilldown.schema?.properties || {})\n .sort(([, a], [, b]) => (a.extra?.index ?? 0) - (b.extra?.index ?? 0))\n .map(([name, _value]) => {\n const _property = nameMap.get(name);\n if (_property) {\n return {\n key: _property.key,\n name,\n isPropertyRequired: drilldown.schema?.required?.includes(name) || false,\n ..._value,\n };\n }\n return {\n key: genId(),\n name,\n isPropertyRequired: drilldown.schema?.required?.includes(name) || false,\n ..._value,\n };\n });\n });\n }\n mountRef.current = true;\n }, [drilldown.schema]);\n\n const updatePropertyList = (updater: (list: PropertyValueType[]) => PropertyValueType[]) => {\n setPropertyList((_list) => {\n const next = updater(_list);\n\n // onChange to parent\n const nextProperties: Record<string, IJsonSchema> = {};\n const nextRequired: string[] = [];\n\n for (const _property of next) {\n if (!_property.name) {\n continue;\n }\n\n nextProperties[_property.name] = _property;\n\n if (_property.isPropertyRequired) {\n nextRequired.push(_property.name);\n }\n }\n\n let drilldownSchema = value || {};\n if (drilldown.path) {\n drilldownSchema = drilldown.path.reduce((acc, key) => acc[key], value || {});\n }\n drilldownSchema.properties = nextProperties;\n drilldownSchema.required = nextRequired;\n\n onChange?.(value || {});\n\n return next;\n });\n };\n\n const onAddProperty = () => {\n updatePropertyList((_list) => [\n ..._list,\n { key: genId(), name: '', type: 'string', extra: { index: _list.length + 1 } },\n ]);\n };\n\n const onRemoveProperty = (key: number) => {\n updatePropertyList((_list) => _list.filter((_property) => _property.key !== key));\n };\n\n const onEditProperty = (key: number, nextValue: PropertyValueType) => {\n updatePropertyList((_list) =>\n _list.map((_property) => (_property.key === key ? nextValue : _property))\n );\n };\n\n useEffect(() => {\n if (!isDrilldownObject) {\n setPropertyList([]);\n }\n }, [isDrilldownObject]);\n\n return {\n propertyList,\n isDrilldownObject,\n onAddProperty,\n onRemoveProperty,\n onEditProperty,\n };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useRef, useState, useCallback } from 'react';\n\nimport { IconButton, JsonViewer, Tooltip } from '@douyinfe/semi-ui';\nimport { IconBrackets } from '@douyinfe/semi-icons';\n\nimport { getValueType } from './utils';\nimport {\n ConstantInputWrapper,\n JSONHeader,\n JSONHeaderLeft,\n JSONHeaderRight,\n JSONViewerWrapper,\n} from './styles';\nimport { ConstantInput } from '../constant-input';\nimport { IJsonSchema } from '../../typings';\n\n/**\n * 根据不同的数据类型渲染对应的默认值输入组件。\n * @param props - 组件属性,包括 value, type, placeholder, onChange。\n * @returns 返回对应类型的输入组件或 null。\n */\nexport function DefaultValue(props: {\n value: any;\n schema?: IJsonSchema;\n name?: string;\n type?: string;\n placeholder?: string;\n jsonFormatText?: string;\n onChange: (value: any) => void;\n}) {\n const { value, schema, type, onChange, placeholder, jsonFormatText } = props;\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const JsonViewerRef = useRef<JsonViewer>(null);\n\n // 为 JsonViewer 添加状态管理\n const [internalJsonValue, setInternalJsonValue] = useState<string>(\n getValueType(value) === 'string' ? value : ''\n );\n\n // 使用 useCallback 创建稳定的回调函数\n const handleJsonChange = useCallback((val: string) => {\n // 只在值真正改变时才更新状态\n if (val !== internalJsonValue) {\n setInternalJsonValue(val);\n }\n }, []);\n\n // 处理编辑完成事件\n const handleEditComplete = useCallback(() => {\n // 只有当存在key,编辑完成时才触发父组件的 onChange\n onChange(internalJsonValue);\n // 确保在更新后移除焦点\n requestAnimationFrame(() => {\n // JsonViewerRef.current?.format();\n wrapperRef.current?.blur();\n });\n setJsonReadOnly(true);\n }, [internalJsonValue, onChange]);\n\n const [jsonReadOnly, setJsonReadOnly] = useState<boolean>(true);\n\n const handleFormatJson = useCallback(() => {\n try {\n const parsed = JSON.parse(internalJsonValue);\n const formatted = JSON.stringify(parsed, null, 4);\n setInternalJsonValue(formatted);\n onChange(formatted);\n } catch (error) {\n console.error('Invalid JSON:', error);\n }\n }, [internalJsonValue, onChange]);\n\n return type === 'object' ? (\n <>\n <JSONHeader>\n <JSONHeaderLeft>json</JSONHeaderLeft>\n <JSONHeaderRight>\n <Tooltip content={jsonFormatText ?? 'Format'}>\n <IconButton\n icon={<IconBrackets style={{ color: 'var(--semi-color-primary)' }} />}\n size=\"small\"\n type=\"tertiary\"\n theme=\"borderless\"\n onClick={handleFormatJson}\n />\n </Tooltip>\n </JSONHeaderRight>\n </JSONHeader>\n\n <JSONViewerWrapper\n ref={wrapperRef}\n tabIndex={-1}\n onBlur={(e) => {\n if (wrapperRef.current && !wrapperRef.current?.contains(e.relatedTarget as Node)) {\n handleEditComplete();\n }\n }}\n onClick={(e: React.MouseEvent) => {\n setJsonReadOnly(false);\n }}\n >\n <JsonViewer\n ref={JsonViewerRef}\n value={getValueType(value) === 'string' ? value : ''}\n height={120}\n width=\"100%\"\n showSearch={false}\n options={{\n readOnly: jsonReadOnly,\n formatOptions: { tabSize: 4, insertSpaces: true, eol: '\\n' },\n }}\n style={{\n padding: 0,\n }}\n onChange={handleJsonChange}\n />\n </JSONViewerWrapper>\n </>\n ) : (\n <ConstantInputWrapper>\n <ConstantInput\n value={value}\n onChange={(_v) => onChange(_v)}\n schema={schema || { type: 'string' }}\n placeholder={placeholder ?? 'Default value if parameter is not provided'}\n />\n </ConstantInputWrapper>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\n/**\n * Return the corresponding string description according to the type of the input value.根据输入值的类型返回对应的字符串描述。\n * @param value - 需要判断类型的值。The value whose type needs to be judged.\n * @returns 返回值的类型字符串 The type string of the return value('string', 'integer', 'number', 'boolean', 'object', 'array', 'other')。\n */\nexport function getValueType(value: any): string {\n const type = typeof value;\n\n if (type === 'string') {\n return 'string';\n } else if (type === 'number') {\n return Number.isInteger(value) ? 'integer' : 'number';\n } else if (type === 'boolean') {\n return 'boolean';\n } else if (type === 'object') {\n if (value === null) {\n return 'other';\n }\n return Array.isArray(value) ? 'array' : 'object';\n } else {\n // undefined, function, symbol, bigint etc.\n return 'other';\n }\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\n/* eslint-disable react/prop-types */\nimport React, { useMemo } from 'react';\n\nimport { Input, InputNumber, Select } from '@douyinfe/semi-ui';\n\nimport { PropsType, Strategy } from './types';\n\nconst defaultStrategies: Strategy[] = [\n {\n hit: (schema) => schema?.type === 'string',\n Renderer: (props) => (\n <Input placeholder=\"Please Input String\" size=\"small\" disabled={props.readonly} {...props} />\n ),\n },\n {\n hit: (schema) => schema?.type === 'number',\n Renderer: (props) => (\n <InputNumber\n placeholder=\"Please Input Number\"\n size=\"small\"\n disabled={props.readonly}\n hideButtons\n {...props}\n />\n ),\n },\n {\n hit: (schema) => schema?.type === 'integer',\n Renderer: (props) => (\n <InputNumber\n placeholder=\"Please Input Integer\"\n size=\"small\"\n disabled={props.readonly}\n hideButtons\n precision={0}\n {...props}\n />\n ),\n },\n {\n hit: (schema) => schema?.type === 'boolean',\n Renderer: (props) => {\n const { value, onChange, ...rest } = props;\n return (\n <Select\n placeholder=\"Please Select Boolean\"\n size=\"small\"\n disabled={props.readonly}\n optionList={[\n { label: 'True', value: 1 },\n { label: 'False', value: 0 },\n ]}\n value={value ? 1 : 0}\n onChange={(value) => onChange?.(!!value)}\n {...rest}\n />\n );\n },\n },\n];\n\nexport function ConstantInput(props: PropsType) {\n const { value, onChange, schema, strategies: extraStrategies, readonly, ...rest } = props;\n\n const strategies = useMemo(\n () => [...defaultStrategies, ...(extraStrategies || [])],\n [extraStrategies]\n );\n\n const Renderer = useMemo(() => {\n const strategy = strategies.find((_strategy) => _strategy.hit(schema));\n\n return strategy?.Renderer;\n }, [strategies, schema]);\n\n if (!Renderer) {\n return <Input size=\"small\" disabled placeholder=\"Unsupported type\" />;\n }\n\n return <Renderer value={value} onChange={onChange} readonly={readonly} {...rest} />;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useEffect, useState } from 'react';\n\nimport Input, { InputProps } from '@douyinfe/semi-ui/lib/es/input';\n\nexport function BlurInput(props: InputProps) {\n const [value, setValue] = useState('');\n\n useEffect(() => {\n setValue(props.value as string);\n }, [props.value]);\n\n return (\n <Input\n {...props}\n value={value}\n onChange={(value) => {\n setValue(value);\n }}\n onBlur={(e) => props.onChange?.(value, e)}\n />\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { PrivateScopeProvider } from '@flowgram.ai/editor';\n\nimport { VariableSelector, VariableSelectorProps } from '../variable-selector';\nimport { IJsonSchema } from '../../typings';\n\nconst batchVariableSchema: IJsonSchema = {\n type: 'array',\n extra: { weak: true },\n};\n\nexport function BatchVariableSelector(props: VariableSelectorProps) {\n return (\n <PrivateScopeProvider>\n <VariableSelector {...props} includeSchema={batchVariableSchema} />\n </PrivateScopeProvider>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { IconButton } from '@douyinfe/semi-ui';\nimport { IconSetting } from '@douyinfe/semi-icons';\n\nimport { Strategy } from '../constant-input/types';\nimport { ConstantInput } from '../constant-input';\nimport { IFlowConstantRefValue } from '../../typings/flow-value';\nimport { UIContainer, UIMain, UITrigger } from './styles';\nimport { VariableSelector } from '../variable-selector';\nimport { IJsonSchema } from '../../typings';\n\ninterface PropsType {\n value?: IFlowConstantRefValue;\n onChange: (value?: IFlowConstantRefValue) => void;\n readonly?: boolean;\n hasError?: boolean;\n style?: React.CSSProperties;\n schema?: IJsonSchema;\n constantProps?: {\n strategies?: Strategy[];\n schema?: IJsonSchema; // set schema of constant input only\n [key: string]: any;\n };\n}\n\nexport function DynamicValueInput({\n value,\n onChange,\n readonly,\n style,\n schema,\n constantProps,\n}: PropsType) {\n // When is number type, include integer as well\n const includeSchema = useMemo(() => {\n if (schema?.type === 'number') {\n return [schema, { type: 'integer' }];\n }\n return schema;\n }, [schema]);\n\n const renderMain = () => {\n if (value?.type === 'ref') {\n // Display Variable Or Delete\n return (\n <VariableSelector\n style={{ width: '100%' }}\n value={value?.content}\n onChange={(_v) => onChange(_v ? { type: 'ref', content: _v } : undefined)}\n includeSchema={includeSchema}\n readonly={readonly}\n />\n );\n }\n\n return (\n <ConstantInput\n value={value?.content}\n onChange={(_v) => onChange({ type: 'constant', content: _v })}\n schema={schema || { type: 'string' }}\n readonly={readonly}\n {...constantProps}\n />\n );\n };\n\n const renderTrigger = () => (\n <VariableSelector\n style={{ width: '100%' }}\n value={value?.type === 'ref' ? value?.content : undefined}\n onChange={(_v) => onChange({ type: 'ref', content: _v })}\n includeSchema={includeSchema}\n readonly={readonly}\n triggerRender={() => (\n <IconButton disabled={readonly} size=\"small\" icon={<IconSetting size=\"small\" />} />\n )}\n />\n );\n\n return (\n <UIContainer style={style}>\n <UIMain>{renderMain()}</UIMain>\n <UITrigger>{renderTrigger()}</UITrigger>\n </UIContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nexport const UIMain = styled.div`\n flex-grow: 1;\n overflow: hidden;\n min-width: 0;\n\n & .semi-tree-select,\n & .semi-input-number,\n & .semi-select {\n width: 100%;\n }\n`;\n\nexport const UITrigger = styled.div``;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { Input } from '@douyinfe/semi-ui';\n\nimport { ConditionRowValueType, Op } from './types';\nimport { UIContainer, UILeft, UIOperator, UIRight, UIValues } from './styles';\nimport { useRule } from './hooks/useRule';\nimport { useOp } from './hooks/useOp';\nimport { VariableSelector } from '../variable-selector';\nimport { DynamicValueInput } from '../dynamic-value-input';\nimport { JsonSchemaBasicType } from '../../typings';\n\ninterface PropTypes {\n value?: ConditionRowValueType;\n onChange: (value?: ConditionRowValueType) => void;\n style?: React.CSSProperties;\n readonly?: boolean;\n}\n\nexport function ConditionRow({ style, value, onChange, readonly }: PropTypes) {\n const { left, operator, right } = value || {};\n const { rule } = useRule(left);\n const { renderOpSelect, opConfig } = useOp({\n rule,\n op: operator,\n onChange: (v) => onChange({ ...value, operator: v }),\n });\n\n const targetSchema = useMemo(() => {\n const targetType: JsonSchemaBasicType | null = rule?.[operator as Op] || null;\n return targetType ? { type: targetType, extra: { weak: true } } : null;\n }, [rule, opConfig]);\n\n return (\n <UIContainer style={style}>\n <UIOperator>{renderOpSelect()}</UIOperator>\n <UIValues>\n <UILeft>\n <VariableSelector\n readonly={readonly}\n style={{ width: '100%' }}\n value={left?.content}\n onChange={(v) =>\n onChange({\n ...value,\n left: {\n type: 'ref',\n content: v,\n },\n })\n }\n />\n </UILeft>\n <UIRight>\n {targetSchema ? (\n <DynamicValueInput\n readonly={readonly || !rule}\n value={right}\n schema={targetSchema}\n onChange={(v) => onChange({ ...value, right: v })}\n />\n ) : (\n <Input\n size=\"small\"\n disabled\n style={{ pointerEvents: 'none' }}\n value={opConfig?.rightDisplay || 'Empty'}\n />\n )}\n </UIRight>\n </UIValues>\n </UIContainer>\n );\n}\n\nexport { type ConditionRowValueType };\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nexport const UIOperator = styled.div``;\n\nexport const UILeft = styled.div`\n width: 100%;\n`;\n\nexport const UIRight = styled.div`\n width: 100%;\n`;\n\nexport const UIValues = styled.div`\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useMemo } from 'react';\n\nimport { useScopeAvailable } from '@flowgram.ai/editor';\n\nimport { rules } from '../constants';\nimport { JsonSchemaUtils } from '../../../utils';\nimport { IFlowRefValue, JsonSchemaBasicType } from '../../../typings';\n\nexport function useRule(left?: IFlowRefValue) {\n const available = useScopeAvailable();\n\n const variable = useMemo(() => {\n if (!left) return undefined;\n return available.getByKeyPath(left.content);\n }, [available, left]);\n\n const rule = useMemo(() => {\n if (!variable) return undefined;\n\n const schema = JsonSchemaUtils.astToSchema(variable.type, { drilldown: false });\n\n return rules[schema?.type as JsonSchemaBasicType];\n }, [variable?.type]);\n\n return { rule };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { IRules, Op, OpConfigs } from './types';\n\nexport const rules: IRules = {\n string: {\n [Op.EQ]: 'string',\n [Op.NEQ]: 'string',\n [Op.CONTAINS]: 'string',\n [Op.NOT_CONTAINS]: 'string',\n [Op.IN]: 'array',\n [Op.NIN]: 'array',\n [Op.IS_EMPTY]: 'string',\n [Op.IS_NOT_EMPTY]: 'string',\n },\n number: {\n [Op.EQ]: 'number',\n [Op.NEQ]: 'number',\n [Op.GT]: 'number',\n [Op.GTE]: 'number',\n [Op.LT]: 'number',\n [Op.LTE]: 'number',\n [Op.IN]: 'array',\n [Op.NIN]: 'array',\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n integer: {\n [Op.EQ]: 'number',\n [Op.NEQ]: 'number',\n [Op.GT]: 'number',\n [Op.GTE]: 'number',\n [Op.LT]: 'number',\n [Op.LTE]: 'number',\n [Op.IN]: 'array',\n [Op.NIN]: 'array',\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n boolean: {\n [Op.EQ]: 'boolean',\n [Op.NEQ]: 'boolean',\n [Op.IS_TRUE]: null,\n [Op.IS_FALSE]: null,\n [Op.IN]: 'array',\n [Op.NIN]: 'array',\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n object: {\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n array: {\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n map: {\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n};\n\nexport const opConfigs: OpConfigs = {\n [Op.EQ]: {\n label: 'Equal',\n abbreviation: '=',\n },\n [Op.NEQ]: {\n label: 'Not Equal',\n abbreviation: '≠',\n },\n [Op.GT]: {\n label: 'Greater Than',\n abbreviation: '>',\n },\n [Op.GTE]: {\n label: 'Greater Than or Equal',\n abbreviation: '>=',\n },\n [Op.LT]: {\n label: 'Less Than',\n abbreviation: '<',\n },\n [Op.LTE]: {\n label: 'Less Than or Equal',\n abbreviation: '<=',\n },\n [Op.IN]: {\n label: 'In',\n abbreviation: '∈',\n },\n [Op.NIN]: {\n label: 'Not In',\n abbreviation: '∉',\n },\n [Op.CONTAINS]: {\n label: 'Contains',\n abbreviation: '⊇',\n },\n [Op.NOT_CONTAINS]: {\n label: 'Not Contains',\n abbreviation: '⊉',\n },\n [Op.IS_EMPTY]: {\n label: 'Is Empty',\n abbreviation: '=',\n rightDisplay: 'Empty',\n },\n [Op.IS_NOT_EMPTY]: {\n label: 'Is Not Empty',\n abbreviation: '≠',\n rightDisplay: 'Empty',\n },\n [Op.IS_TRUE]: {\n label: 'Is True',\n abbreviation: '=',\n rightDisplay: 'True',\n },\n [Op.IS_FALSE]: {\n label: 'Is False',\n abbreviation: '=',\n rightDisplay: 'False',\n },\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { isObject } from 'lodash';\n\ninterface LegacyFlowRefValueSchema {\n type: 'ref';\n content: string;\n}\n\ninterface NewFlowRefValueSchema {\n type: 'ref';\n content: string[];\n}\n\n/**\n * In flowgram 0.2.0, for introducing Loop variable functionality,\n * the FlowRefValueSchema type definition is updated:\n *\n * interface LegacyFlowRefValueSchema {\n * type: 'ref';\n * content: string;\n * }\n *\n * interface NewFlowRefValueSchema {\n * type: 'ref';\n * content: string[];\n * }\n *\n *\n * For making sure backend json will not be changed, we provide format legacy ref utils for updating the formData\n *\n * How to use:\n *\n * 1. Call formatLegacyRefOnSubmit on the formData before submitting\n * 2. Call formatLegacyRefOnInit on the formData after submitting\n *\n * Example:\n * import { formatLegacyRefOnSubmit, formatLegacyRefOnInit } from '@flowgram.ai/form-materials';\n * formMeta: {\n * formatOnSubmit: (data) => formatLegacyRefOnSubmit(data),\n * formatOnInit: (data) => formatLegacyRefOnInit(data),\n * }\n */\nexport function formatLegacyRefOnSubmit(value: any): any {\n if (isObject(value)) {\n if (isLegacyFlowRefValueSchema(value)) {\n return formatLegacyRefToNewRef(value);\n }\n\n return Object.fromEntries(\n Object.entries(value).map(([key, value]: [string, any]) => [\n key,\n formatLegacyRefOnSubmit(value),\n ])\n );\n }\n\n if (Array.isArray(value)) {\n return value.map(formatLegacyRefOnSubmit);\n }\n\n return value;\n}\n\n/**\n * In flowgram 0.2.0, for introducing Loop variable functionality,\n * the FlowRefValueSchema type definition is updated:\n *\n * interface LegacyFlowRefValueSchema {\n * type: 'ref';\n * content: string;\n * }\n *\n * interface NewFlowRefValueSchema {\n * type: 'ref';\n * content: string[];\n * }\n *\n *\n * For making sure backend json will not be changed, we provide format legacy ref utils for updating the formData\n *\n * How to use:\n *\n * 1. Call formatLegacyRefOnSubmit on the formData before submitting\n * 2. Call formatLegacyRefOnInit on the formData after submitting\n *\n * Example:\n * import { formatLegacyRefOnSubmit, formatLegacyRefOnInit } from '@flowgram.ai/form-materials';\n *\n * formMeta: {\n * formatOnSubmit: (data) => formatLegacyRefOnSubmit(data),\n * formatOnInit: (data) => formatLegacyRefOnInit(data),\n * }\n */\nexport function formatLegacyRefOnInit(value: any): any {\n if (isObject(value)) {\n if (isNewFlowRefValueSchema(value)) {\n return formatNewRefToLegacyRef(value);\n }\n\n return Object.fromEntries(\n Object.entries(value).map(([key, value]: [string, any]) => [\n key,\n formatLegacyRefOnInit(value),\n ])\n );\n }\n\n if (Array.isArray(value)) {\n return value.map(formatLegacyRefOnInit);\n }\n\n return value;\n}\n\nexport function isLegacyFlowRefValueSchema(value: any): value is LegacyFlowRefValueSchema {\n return (\n isObject(value) &&\n Object.keys(value).length === 2 &&\n (value as any).type === 'ref' &&\n typeof (value as any).content === 'string'\n );\n}\n\nexport function isNewFlowRefValueSchema(value: any): value is NewFlowRefValueSchema {\n return (\n isObject(value) &&\n Object.keys(value).length === 2 &&\n (value as any).type === 'ref' &&\n Array.isArray((value as any).content)\n );\n}\n\nexport function formatLegacyRefToNewRef(value: LegacyFlowRefValueSchema) {\n const keyPath = value.content.split('.');\n\n if (keyPath[1] === 'outputs') {\n return {\n type: 'ref',\n content: [`${keyPath[0]}.${keyPath[1]}`, ...(keyPath.length > 2 ? keyPath.slice(2) : [])],\n };\n }\n\n return {\n type: 'ref',\n content: keyPath,\n };\n}\n\nexport function formatNewRefToLegacyRef(value: NewFlowRefValueSchema) {\n return {\n type: 'ref',\n content: value.content.join('.'),\n };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { Button, Select } from '@douyinfe/semi-ui';\nimport { IconChevronDownStroked } from '@douyinfe/semi-icons';\n\nimport { IRule, Op } from '../types';\nimport { opConfigs } from '../constants';\n\ninterface HookParams {\n rule?: IRule;\n op?: Op;\n onChange: (op: Op) => void;\n}\n\nexport function useOp({ rule, op, onChange }: HookParams) {\n const options = useMemo(\n () =>\n Object.keys(rule || {}).map((_op) => ({\n ...(opConfigs[_op as Op] || {}),\n value: _op,\n })),\n [rule]\n );\n\n const opConfig = useMemo(() => opConfigs[op as Op], [op]);\n\n const renderOpSelect = () => (\n <Select\n style={{ height: 22 }}\n size=\"small\"\n value={op}\n optionList={options}\n onChange={(v) => {\n onChange(v as Op);\n }}\n triggerRender={({ value }) => (\n <Button size=\"small\" disabled={!rule}>\n {opConfig?.abbreviation || <IconChevronDownStroked size=\"small\" />}\n </Button>\n )}\n />\n );\n\n return { renderOpSelect, opConfig };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { Button, Input } from '@douyinfe/semi-ui';\nimport { IconDelete, IconPlus } from '@douyinfe/semi-icons';\n\nimport { useList } from './use-list';\nimport { PropsType } from './types';\nimport { VariableSelector } from '../variable-selector';\nimport { UIRow, UIRows } from './styles';\n\nexport function BatchOutputs(props: PropsType) {\n const { readonly, style } = props;\n\n const { list, add, update, remove } = useList(props);\n\n return (\n <div>\n <UIRows style={style}>\n {list.map((item) => (\n <UIRow key={item.id}>\n <Input\n style={{ width: 100 }}\n disabled={readonly}\n size=\"small\"\n value={item.key}\n onChange={(v) => update({ ...item, key: v })}\n />\n <VariableSelector\n style={{ flexGrow: 1 }}\n readonly={readonly}\n value={item.value?.content}\n onChange={(v) =>\n update({\n ...item,\n value: {\n type: 'ref',\n content: v,\n },\n })\n }\n />\n <Button\n disabled={readonly}\n icon={<IconDelete />}\n size=\"small\"\n onClick={() => remove(item.id)}\n />\n </UIRow>\n ))}\n </UIRows>\n <Button disabled={readonly} icon={<IconPlus />} size=\"small\" onClick={add}>\n Add\n </Button>\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useEffect, useState } from 'react';\n\nimport { difference } from 'lodash';\n\nimport { OutputItem, PropsType } from './types';\n\nlet _id = 0;\nfunction genId() {\n return _id++;\n}\n\nexport function useList({ value, onChange }: PropsType) {\n const [list, setList] = useState<OutputItem[]>([]);\n\n useEffect(() => {\n setList((_prevList) => {\n const newKeys = Object.keys(value || {});\n const oldKeys = _prevList.map((item) => item.key).filter(Boolean) as string[];\n const addKeys = difference(newKeys, oldKeys);\n\n return _prevList\n .filter((item) => !item.key || newKeys.includes(item.key))\n .map((item) => ({\n id: item.id,\n key: item.key,\n value: item.key ? value?.[item.key!] : undefined,\n }))\n .concat(\n addKeys.map((_key) => ({\n id: genId(),\n key: _key,\n value: value?.[_key],\n }))\n );\n });\n }, [value]);\n\n const add = () => {\n setList((prevList) => [\n ...prevList,\n {\n id: genId(),\n },\n ]);\n };\n\n const update = (item: OutputItem) => {\n setList((prevList) => {\n const nextList = prevList.map((_item) => {\n if (_item.id === item.id) {\n return item;\n }\n return _item;\n });\n\n onChange(\n Object.fromEntries(\n nextList.filter((item) => item.key).map((item) => [item.key!, item.value])\n )\n );\n\n return nextList;\n });\n };\n\n const remove = (itemId: number) => {\n setList((prevList) => {\n const nextList = prevList.filter((_item) => _item.id !== itemId);\n\n onChange(\n Object.fromEntries(\n nextList.filter((item) => item.key).map((item) => [item.key!, item.value])\n )\n );\n\n return nextList;\n });\n };\n\n return { list, add, update, remove };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIRows = styled.div`\n display: flex;\n flex-direction: column;\n gap: 10px;\n margin-bottom: 10px;\n`;\n\nexport const UIRow = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { Renderer, EditorProvider } from '@coze-editor/editor/react';\nimport preset from '@coze-editor/editor/preset-prompt';\n\nimport { PropsType } from './types';\nimport { UIContainer } from './styles';\nimport MarkdownHighlight from './extensions/markdown';\nimport LanguageSupport from './extensions/language-support';\nimport JinjaHighlight from './extensions/jinja';\n\nexport type PromptEditorPropsType = PropsType;\n\nexport function PromptEditor(props: PropsType) {\n const { value, onChange, readonly, style, hasError, children } = props || {};\n\n return (\n <UIContainer $hasError={hasError} style={style}>\n <EditorProvider>\n <Renderer\n plugins={preset}\n defaultValue={String(value?.content)}\n options={{\n readOnly: readonly,\n editable: !readonly,\n }}\n onChange={(e) => {\n onChange({ type: 'template', content: e.value });\n }}\n />\n <MarkdownHighlight />\n <LanguageSupport />\n <JinjaHighlight />\n {children}\n </EditorProvider>\n </UIContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled, { css } from 'styled-components';\n\nexport const UIContainer = styled.div<{ $hasError?: boolean }>`\n background-color: var(--semi-color-fill-0);\n padding-left: 10px;\n padding-right: 6px;\n\n ${({ $hasError }) =>\n $hasError &&\n css`\n border: 1px solid var(--semi-color-danger-6);\n `}\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useLayoutEffect } from 'react';\n\nimport { useInjector } from '@coze-editor/editor/react';\nimport { astDecorator } from '@coze-editor/editor';\nimport { EditorView } from '@codemirror/view';\n\nfunction MarkdownHighlight() {\n const injector = useInjector();\n\n useLayoutEffect(\n () =>\n injector.inject([\n astDecorator.whole.of((cursor) => {\n // # heading\n if (cursor.name.startsWith('ATXHeading')) {\n return {\n type: 'className',\n className: 'heading',\n };\n }\n\n // *italic*\n if (cursor.name === 'Emphasis') {\n return {\n type: 'className',\n className: 'emphasis',\n };\n }\n\n // **bold**\n if (cursor.name === 'StrongEmphasis') {\n return {\n type: 'className',\n className: 'strong-emphasis',\n };\n }\n\n // -\n // 1.\n // >\n if (cursor.name === 'ListMark' || cursor.name === 'QuoteMark') {\n return {\n type: 'className',\n className: 'mark',\n };\n }\n }),\n EditorView.theme({\n '.heading': {\n color: '#00818C',\n fontWeight: 'bold',\n },\n '.emphasis': {\n fontStyle: 'italic',\n },\n '.strong-emphasis': {\n fontWeight: 'bold',\n },\n '.mark': {\n color: '#4E40E5',\n },\n }),\n ]),\n [injector]\n );\n\n return null;\n}\n\nexport default MarkdownHighlight;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useLayoutEffect } from 'react';\n\nimport { useInjector } from '@coze-editor/editor/react';\nimport { languageSupport } from '@coze-editor/editor/preset-prompt';\n\nfunction LanguageSupport() {\n const injector = useInjector();\n\n useLayoutEffect(() => injector.inject([languageSupport]), [injector]);\n\n return null;\n}\n\nexport default LanguageSupport;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useLayoutEffect } from 'react';\n\nimport { useInjector } from '@coze-editor/editor/react';\nimport { astDecorator } from '@coze-editor/editor';\nimport { EditorView } from '@codemirror/view';\n\nfunction JinjaHighlight() {\n const injector = useInjector();\n\n useLayoutEffect(\n () =>\n injector.inject([\n astDecorator.whole.of((cursor) => {\n if (cursor.name === 'JinjaStatementStart' || cursor.name === 'JinjaStatementEnd') {\n return {\n type: 'className',\n className: 'jinja-statement-bracket',\n };\n }\n\n if (cursor.name === 'JinjaComment') {\n return {\n type: 'className',\n className: 'jinja-comment',\n };\n }\n\n if (cursor.name === 'JinjaExpression') {\n return {\n type: 'className',\n className: 'jinja-expression',\n };\n }\n }),\n EditorView.theme({\n '.jinja-statement-bracket': {\n color: '#D1009D',\n },\n '.jinja-comment': {\n color: '#0607094D',\n },\n '.jinja-expression': {\n color: '#4E40E5',\n },\n }),\n ]),\n [injector]\n );\n\n return null;\n}\n\nexport default JinjaHighlight;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { VariableTree } from './extensions/variable-tree';\nimport { VariableTagInject } from './extensions/variable-tag';\nimport { PromptEditor, PromptEditorPropsType } from '../prompt-editor';\n\nexport function PromptEditorWithVariables(props: PromptEditorPropsType) {\n return (\n <PromptEditor {...props}>\n <VariableTree />\n <VariableTagInject />\n </PromptEditor>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useEffect, useState } from 'react';\n\nimport { Popover, Tree } from '@douyinfe/semi-ui';\nimport {\n Mention,\n MentionOpenChangeEvent,\n getCurrentMentionReplaceRange,\n useEditor,\n PositionMirror,\n} from '@coze-editor/editor/react';\nimport { EditorAPI } from '@coze-editor/editor/preset-prompt';\n\nimport { useVariableTree } from '../../variable-selector';\n\nexport function VariableTree() {\n const [posKey, setPosKey] = useState('');\n const [visible, setVisible] = useState(false);\n const [position, setPosition] = useState(-1);\n const editor = useEditor<EditorAPI>();\n\n function insert(variablePath: string) {\n const range = getCurrentMentionReplaceRange(editor.$view.state);\n\n if (!range) {\n return;\n }\n\n editor.replaceText({\n ...range,\n text: '{{' + variablePath + '}}',\n });\n\n setVisible(false);\n }\n\n function handleOpenChange(e: MentionOpenChangeEvent) {\n setPosition(e.state.selection.main.head);\n setVisible(e.value);\n }\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n }, [editor, visible]);\n\n const treeData = useVariableTree({});\n\n return (\n <>\n <Mention triggerCharacters={['{', '{}', '@']} onOpenChange={handleOpenChange} />\n\n <Popover\n visible={visible}\n trigger=\"custom\"\n position=\"topLeft\"\n rePosKey={posKey}\n content={\n <div style={{ width: 300 }}>\n <Tree\n treeData={treeData}\n onSelect={(v) => {\n insert(v);\n }}\n />\n </div>\n }\n >\n {/* PositionMirror allows the Popover to appear at the specified cursor position */}\n <PositionMirror\n position={position}\n // When Doc scroll, update position\n onChange={() => setPosKey(String(Math.random()))}\n />\n </Popover>\n </>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useLayoutEffect } from 'react';\n\nimport { createRoot, Root } from 'react-dom/client';\nimport { isEqual, last } from 'lodash';\nimport {\n BaseVariableField,\n Disposable,\n DisposableCollection,\n Scope,\n useCurrentScope,\n} from '@flowgram.ai/editor';\nimport { Popover } from '@douyinfe/semi-ui';\nimport { IconIssueStroked } from '@douyinfe/semi-icons';\nimport { useInjector } from '@coze-editor/editor/react';\nimport {\n Decoration,\n DecorationSet,\n EditorView,\n MatchDecorator,\n ViewPlugin,\n WidgetType,\n} from '@codemirror/view';\n\nimport { UIPopoverContent, UIRootTitle, UITag, UIVarName } from '../styles';\n\nclass VariableTagWidget extends WidgetType {\n keyPath?: string[];\n\n toDispose = new DisposableCollection();\n\n scope: Scope;\n\n root: Root;\n\n constructor({ keyPath, scope }: { keyPath?: string[]; scope: Scope }) {\n super();\n\n this.keyPath = keyPath;\n this.scope = scope;\n }\n\n renderIcon = (icon: string | JSX.Element) => {\n if (typeof icon === 'string') {\n return <img style={{ marginRight: 8 }} width={12} height={12} src={icon} />;\n }\n\n return icon;\n };\n\n renderVariable(v?: BaseVariableField) {\n if (!v) {\n this.root.render(\n <UITag prefixIcon={<IconIssueStroked />} color=\"amber\">\n Unknown\n </UITag>\n );\n return;\n }\n\n const rootField = last(v.parentFields);\n\n const rootTitle = (\n <UIRootTitle>{rootField?.meta.title ? `${rootField.meta.title} -` : ''}</UIRootTitle>\n );\n const rootIcon = this.renderIcon(rootField?.meta.icon);\n\n this.root.render(\n <Popover\n content={\n <UIPopoverContent>\n {rootIcon}\n {rootTitle}\n <UIVarName>{v?.keyPath.slice(1).join('.')}</UIVarName>\n </UIPopoverContent>\n }\n >\n <UITag prefixIcon={rootIcon}>\n {rootTitle}\n <UIVarName>{v?.key}</UIVarName>\n </UITag>\n </Popover>\n );\n }\n\n toDOM(view: EditorView): HTMLElement {\n const dom = document.createElement('span');\n\n this.root = createRoot(dom);\n\n this.toDispose.push(\n Disposable.create(() => {\n this.root.unmount();\n })\n );\n\n this.toDispose.push(\n this.scope.available.trackByKeyPath(\n this.keyPath,\n (v) => {\n this.renderVariable(v);\n },\n { triggerOnInit: false }\n )\n );\n\n this.renderVariable(this.scope.available.getByKeyPath(this.keyPath));\n\n return dom;\n }\n\n eq(other: VariableTagWidget) {\n return isEqual(this.keyPath, other.keyPath);\n }\n\n ignoreEvent(): boolean {\n return false;\n }\n\n destroy(dom: HTMLElement): void {\n this.toDispose.dispose();\n }\n}\n\nexport function VariableTagInject() {\n const injector = useInjector();\n\n const scope = useCurrentScope();\n\n // 基于 {{var}} 的正则进行匹配,匹配后进行自定义渲染\n useLayoutEffect(() => {\n const atMatcher = new MatchDecorator({\n regexp: /\\{\\{([^\\}]+)\\}\\}/g,\n decoration: (match) =>\n Decoration.replace({\n widget: new VariableTagWidget({\n keyPath: match[1]?.split('.') ?? [],\n scope,\n }),\n }),\n });\n\n return injector.inject([\n ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n\n constructor(private view: EditorView) {\n this.decorations = atMatcher.createDeco(view);\n }\n\n update() {\n this.decorations = atMatcher.createDeco(this.view);\n }\n },\n {\n decorations: (p) => p.decorations,\n provide(p) {\n return EditorView.atomicRanges.of(\n (view) => view.plugin(p)?.decorations ?? Decoration.none\n );\n },\n }\n ),\n ]);\n }, [injector]);\n\n return null;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\nimport { Tag } from '@douyinfe/semi-ui';\n\nexport const UIRootTitle = styled.div`\n margin-right: 4px;\n min-width: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--semi-color-text-2);\n`;\n\nexport const UIVarName = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const UITag = styled(Tag)`\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n max-width: 300px;\n\n & .semi-tag-content-center {\n justify-content: flex-start;\n }\n\n &.semi-tag {\n margin: 0 5px;\n }\n`;\n\nexport const UIPopoverContent = styled.div`\n padding: 10px;\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n ASTFactory,\n EffectOptions,\n FlowNodeRegistry,\n createEffectFromVariableProvider,\n getNodeForm,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '../../typings';\n\nexport const provideBatchInputEffect: EffectOptions[] = createEffectFromVariableProvider({\n private: true,\n parse: (value: IFlowRefValue, ctx) => [\n ASTFactory.createVariableDeclaration({\n key: `${ctx.node.id}_locals`,\n meta: {\n title: getNodeForm(ctx.node)?.getValueIn('title'),\n icon: ctx.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n },\n type: ASTFactory.createObject({\n properties: [\n ASTFactory.createProperty({\n key: 'item',\n initializer: ASTFactory.createEnumerateExpression({\n enumerateFor: ASTFactory.createKeyPathExpression({\n keyPath: value.content || [],\n }),\n }),\n }),\n ASTFactory.createProperty({\n key: 'index',\n type: ASTFactory.createNumber(),\n }),\n ],\n }),\n }),\n ],\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n ASTFactory,\n EffectOptions,\n FlowNodeRegistry,\n createEffectFromVariableProvider,\n getNodeForm,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '../../typings';\n\nexport const provideBatchOutputsEffect: EffectOptions[] = createEffectFromVariableProvider({\n parse: (value: Record<string, IFlowRefValue>, ctx) => [\n ASTFactory.createVariableDeclaration({\n key: `${ctx.node.id}`,\n meta: {\n title: getNodeForm(ctx.node)?.getValueIn('title'),\n icon: ctx.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n },\n type: ASTFactory.createObject({\n properties: Object.entries(value).map(([_key, value]) =>\n ASTFactory.createProperty({\n key: _key,\n initializer: ASTFactory.createWrapArrayExpression({\n wrapFor: ASTFactory.createKeyPathExpression({\n keyPath: value.content || [],\n }),\n }),\n })\n ),\n }),\n }),\n ],\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { isArray, isObject } from 'lodash';\nimport {\n DataEvent,\n Effect,\n EffectOptions,\n VariableFieldKeyRenameService,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '../../typings';\n\n/**\n * Auto rename ref when form item's key is renamed\n *\n * Example:\n *\n * formMeta: {\n * effects: {\n * \"inputsValues\": autoRenameRefEffect,\n * }\n * }\n */\nexport const autoRenameRefEffect: EffectOptions[] = [\n {\n event: DataEvent.onValueInit,\n effect: ((params) => {\n const { context, form, name } = params;\n\n const renameService = context.node.getService(VariableFieldKeyRenameService);\n\n const disposable = renameService.onRename(({ before, after }) => {\n const beforeKeyPath = [\n ...before.parentFields.map((_field) => _field.key).reverse(),\n before.key,\n ];\n const afterKeyPath = [\n ...after.parentFields.map((_field) => _field.key).reverse(),\n after.key,\n ];\n\n // traverse rename refs inside form item 'name'\n traverseRef(name, form.getValueIn(name), (_drilldownName, _v) => {\n if (isRefMatch(_v, beforeKeyPath)) {\n _v.content = [...afterKeyPath, ...(_v.content || [])?.slice(beforeKeyPath.length)];\n form.setValueIn(_drilldownName, _v);\n }\n });\n });\n\n return () => {\n disposable.dispose();\n };\n }) as Effect,\n },\n];\n\n/**\n * If ref value's keyPath is the under as targetKeyPath\n * @param value\n * @param targetKeyPath\n * @returns\n */\nfunction isRefMatch(value: IFlowRefValue, targetKeyPath: string[]) {\n return targetKeyPath.every((_key, index) => _key === value.content?.[index]);\n}\n\n/**\n * If value is ref\n * @param value\n * @returns\n */\nfunction isRef(value: any): value is IFlowRefValue {\n return (\n value?.type === 'ref' && Array.isArray(value?.content) && typeof value?.content[0] === 'string'\n );\n}\n\n/**\n * Traverse value to find ref\n * @param value\n * @param options\n * @returns\n */\nfunction traverseRef(name: string, value: any, cb: (name: string, _v: IFlowRefValue) => void) {\n if (isObject(value)) {\n if (isRef(value)) {\n cb(name, value);\n return;\n }\n\n Object.entries(value).forEach(([_key, _value]) => {\n traverseRef(`${name}.${_key}`, _value, cb);\n });\n return;\n }\n\n if (isArray(value)) {\n value.forEach((_value, idx) => {\n traverseRef(`${name}[${idx}]`, _value, cb);\n });\n return;\n }\n\n return;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n ASTFactory,\n EffectOptions,\n FlowNodeRegistry,\n createEffectFromVariableProvider,\n getNodeForm,\n} from '@flowgram.ai/editor';\n\nimport { JsonSchemaUtils } from '../../utils';\nimport { IJsonSchema } from '../../typings';\n\nexport const provideJsonSchemaOutputs: EffectOptions[] = createEffectFromVariableProvider({\n parse: (value: IJsonSchema, ctx) => [\n ASTFactory.createVariableDeclaration({\n key: `${ctx.node.id}`,\n meta: {\n title: getNodeForm(ctx.node)?.getValueIn('title') || ctx.node.id,\n icon: ctx.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n },\n type: JsonSchemaUtils.schemaToAST(value),\n }),\n ],\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n DataEvent,\n Effect,\n EffectOptions,\n FlowNodeRegistry,\n FlowNodeVariableData,\n} from '@flowgram.ai/editor';\n\nexport const syncVariableTitle: EffectOptions[] = [\n {\n event: DataEvent.onValueChange,\n effect: (({ value, context }) => {\n context.node.getData(FlowNodeVariableData).allScopes.forEach((_scope) => {\n _scope.output.variables.forEach((_var) => {\n _var.updateMeta({\n title: value || context.node.id,\n icon: context.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n });\n });\n });\n }) as Effect,\n },\n];\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n ASTFactory,\n createEffectFromVariableProvider,\n defineFormPluginCreator,\n FlowNodeRegistry,\n getNodeForm,\n getNodePrivateScope,\n getNodeScope,\n ScopeChainTransformService,\n type EffectOptions,\n type FormPluginCreator,\n FlowNodeScopeType,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '../../typings';\n\nexport const provideBatchOutputsEffect: EffectOptions[] = createEffectFromVariableProvider({\n parse: (value: Record<string, IFlowRefValue>, ctx) => [\n ASTFactory.createVariableDeclaration({\n key: `${ctx.node.id}`,\n meta: {\n title: getNodeForm(ctx.node)?.getValueIn('title'),\n icon: ctx.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n },\n type: ASTFactory.createObject({\n properties: Object.entries(value).map(([_key, value]) =>\n ASTFactory.createProperty({\n key: _key,\n initializer: ASTFactory.createWrapArrayExpression({\n wrapFor: ASTFactory.createKeyPathExpression({\n keyPath: value?.content || [],\n }),\n }),\n })\n ),\n }),\n }),\n ],\n});\n\n/**\n * Free Layout only right now\n */\nexport const createBatchOutputsFormPlugin: FormPluginCreator<{ outputKey: string }> =\n defineFormPluginCreator({\n name: 'batch-outputs-plugin',\n onSetupFormMeta({ mergeEffect }, { outputKey }) {\n mergeEffect({\n [outputKey]: provideBatchOutputsEffect,\n });\n },\n onInit(ctx, { outputKey }) {\n const chainTransformService = ctx.node.getService(ScopeChainTransformService);\n\n const batchNodeType = ctx.node.flowNodeType;\n\n const transformerId = `${batchNodeType}-outputs`;\n\n if (chainTransformService.hasTransformer(transformerId)) {\n return;\n }\n\n chainTransformService.registerTransformer(transformerId, {\n transformCovers: (covers, ctx) => {\n const node = ctx.scope.meta?.node;\n\n // Child Node's variable can cover parent\n if (node?.parent?.flowNodeType === batchNodeType) {\n return [...covers, getNodeScope(node.parent)];\n }\n\n return covers;\n },\n transformDeps(scopes, ctx) {\n const scopeMeta = ctx.scope.meta;\n\n if (scopeMeta?.type === FlowNodeScopeType.private) {\n return scopes;\n }\n\n const node = scopeMeta?.node;\n\n // Public of Loop Node depends on child Node\n if (node?.flowNodeType === batchNodeType) {\n // Get all child blocks\n const childBlocks = node.blocks;\n\n // public scope of all child blocks\n return [\n getNodePrivateScope(node),\n ...childBlocks.map((_childBlock) => getNodeScope(_childBlock)),\n ];\n }\n\n return scopes;\n },\n });\n },\n });\n"],"mappings":"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","names":["import_react","import_semi_icons","import_react","import_editor","React","Icon","JsonSchemaUtils","options","React","import_semi_ui","styled","React","import_react","import_semi_ui","React","value","import_react","import_semi_ui","import_semi_icons","import_react","import_styled_components","import_semi_icons","styled","React","Icon","import_react","import_react","import_semi_ui","import_semi_icons","import_react","import_semi_ui","React","value","Renderer","React","import_react","React","Input","value","React","value","import_react","import_editor","React","import_react","import_semi_ui","import_semi_icons","import_styled_components","UIContainer","styled","React","UIContainer","import_react","import_semi_ui","import_styled_components","UIContainer","styled","import_react","import_editor","import_lodash","value","import_react","import_semi_ui","import_semi_icons","options","React","React","UIContainer","import_react","import_semi_ui","import_semi_icons","import_react","import_lodash","_id","genId","item","import_styled_components","styled","UIRow","React","UIRow","import_react","import_preset_prompt","import_styled_components","UIContainer","styled","import_react","import_editor","import_react","import_react","import_editor","import_view","React","UIContainer","preset","import_react","import_react","import_semi_ui","React","import_react","import_lodash","import_editor","import_semi_ui","import_semi_icons","import_view","import_styled_components","import_semi_ui","UIRootTitle","styled","UIVarName","UITag","React","UITag","UIRootTitle","UIVarName","React","import_editor","import_editor","value","import_lodash","import_editor","import_editor","import_editor","import_editor","provideBatchOutputsEffect","value","ctx"]}