@easy-editor/react-renderer 0.0.2-alpha.0 → 0.0.2-alpha.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.production.js","sources":["../../src/configure-renderer/context.ts","../../src/configure-renderer/SettingSetter.tsx","../../src/configure-renderer/index.tsx","../../src/renderer-core/adapter/index.ts","../../src/renderer-core/context.ts","../../src/renderer-core/utils/classnames.ts","../../src/renderer-core/utils/logger.ts","../../src/renderer-core/utils/common.ts","../../src/renderer-core/utils/hoc.ts","../../src/renderer-core/hoc/comp.tsx","../../src/renderer-core/hoc/leaf.tsx","../../src/renderer-core/base.tsx","../../src/renderer-core/component.tsx","../../src/renderer-core/page.tsx","../../src/renderer-core/components/FaultComponent.tsx","../../src/renderer-core/components/NotFoundComponent.tsx","../../src/renderer-core/renderer.tsx","../../src/index.ts"],"sourcesContent":["import type { Editor, SettingField } from '@easy-editor/core'\nimport { type ReactNode, createContext, useContext } from 'react'\n\nexport interface SettingRendererContext {\n editor: Editor\n\n /** 自定义渲染 Field Item */\n customFieldItem?: (field: SettingField, setter: ReactNode) => ReactNode\n\n /** 自定义渲染 Field Item */\n customFieldGroup?: (field: SettingField, setters: ReactNode) => ReactNode\n\n [extra: string]: any\n}\n\nexport const SettingRendererContext = createContext<SettingRendererContext>({} as SettingRendererContext)\n\nexport const useSettingRendererContext = () => {\n try {\n return useContext(SettingRendererContext)\n } catch (error) {\n console.warn('useSettingRendererContext must be used within a SettingRendererContextProvider')\n }\n return {} as SettingRendererContext\n}\n","import { type DynamicSetterProps, type SettingField, isSetterConfig } from '@easy-editor/core'\nimport { observer } from 'mobx-react'\nimport type { PropsWithChildren, ReactNode } from 'react'\nimport { useSettingRendererContext } from './context'\n\nconst getSetterInfo = (field: SettingField) => {\n const { extraProps, setter } = field\n const { defaultValue } = extraProps\n\n let setterProps:\n | ({\n setters?: (ReactNode | string)[]\n } & Record<string, unknown>)\n | DynamicSetterProps = {}\n let setterType: any\n let initialValue: any = null\n\n if (isSetterConfig(setter)) {\n setterType = setter.componentName\n if (setter.props) {\n setterProps = setter.props\n if (typeof setterProps === 'function') {\n setterProps = setterProps(field)\n }\n }\n if (setter.defaultValue != null) {\n initialValue = setter.defaultValue\n }\n } else if (setter) {\n setterType = setter\n }\n\n if (defaultValue != null && !('defaultValue' in setterProps)) {\n setterProps.defaultValue = defaultValue\n if (initialValue == null) {\n initialValue = defaultValue\n }\n }\n\n if (field.valueState === -1) {\n setterProps.multiValue = true\n }\n\n // 根据是否支持变量配置做相应的更改\n const supportVariable = field.extraProps?.supportVariable\n const isUseVariableSetter = supportVariable\n if (isUseVariableSetter === false) {\n return {\n setterProps,\n initialValue,\n setterType,\n }\n }\n\n return {\n setterProps,\n setterType,\n initialValue,\n }\n}\n\ninterface SettingSetterProps extends PropsWithChildren {\n field: SettingField\n}\n\nexport const SettingSetter = observer(({ field, children }: SettingSetterProps) => {\n const { setterManager } = useSettingRendererContext()\n const { extraProps } = field\n const visible =\n extraProps?.condition && typeof extraProps.condition === 'function' ? extraProps.condition(field) !== false : true\n\n if (!visible) {\n return null\n }\n\n const { setterProps = {}, setterType, initialValue = null } = getSetterInfo(field)\n const onChange = extraProps?.onChange\n const value = field.valueState === -1 ? null : field.getValue()\n const { component: SetterComponent, props: mixedSetterProps } = setterManager.createSetterContent(\n setterType,\n setterProps,\n )\n\n return (\n <SetterComponent\n key={field.id}\n field={field}\n selected={field.top?.getNode()}\n initialValue={initialValue}\n value={value}\n onChange={(newVal: any) => {\n field.setValue(newVal)\n onChange?.(field, newVal)\n }}\n onInitial={() => {\n if (initialValue == null) {\n return\n }\n const value = typeof initialValue === 'function' ? initialValue(field) : initialValue\n field.setValue(value, true)\n }}\n removeProp={() => {\n if (field.name) {\n field.parent.clearPropValue(field.name)\n }\n }}\n {...mixedSetterProps}\n >\n {children}\n </SetterComponent>\n )\n})\n","import type { Designer, SetterManager, SettingField } from '@easy-editor/core'\nimport { observer } from 'mobx-react'\nimport { useMemo } from 'react'\nimport { SettingSetter } from './SettingSetter'\nimport { SettingRendererContext, useSettingRendererContext } from './context'\n\ninterface SettingFieldProps {\n field: SettingField\n}\n\nconst SettingFieldItem = observer<React.FC<SettingFieldProps>>(({ field }) => {\n const { customFieldItem } = useSettingRendererContext()\n\n if (customFieldItem) {\n return customFieldItem(field, <SettingSetter field={field} />)\n }\n\n return (\n <div className='space-y-2'>\n <label htmlFor={field.id} className='block text-sm font-medium text-gray-700'>\n {field.title}\n </label>\n <SettingSetter field={field} />\n </div>\n )\n})\n\nconst SettingFieldGroup = observer<React.FC<SettingFieldProps>>(({ field }) => {\n const { customFieldGroup } = useSettingRendererContext()\n\n if (customFieldGroup) {\n return customFieldGroup(\n field,\n <SettingSetter field={field}>\n {field.items?.map(item => (\n <SettingFieldView key={item.id} field={item} />\n ))}\n </SettingSetter>,\n )\n }\n\n return (\n <SettingSetter field={field}>\n {field.items?.map(item => (\n <SettingFieldView key={item.id} field={item} />\n ))}\n </SettingSetter>\n )\n})\n\nexport const SettingFieldView: React.FC<SettingFieldProps> = ({ field }) => {\n if (field.isGroup) {\n return <SettingFieldGroup field={field} key={field.id} />\n } else {\n return <SettingFieldItem field={field} key={field.id} />\n }\n}\n\ninterface SettingRenderProps extends SettingRendererContext {}\n\nexport const SettingRender = observer<React.FC<SettingRenderProps>>(props => {\n const { editor, customFieldItem, customFieldGroup } = props\n const designer = editor.get<Designer>('designer')!\n const setterManager = editor.get<SetterManager>('setterManager')!\n const { settingsManager } = designer\n const { settings } = settingsManager\n const items = settings?.items\n\n const ctx = useMemo(() => {\n const ctx = {} as SettingRendererContext\n ctx.setterManager = setterManager\n ctx.settingsManager = settingsManager\n ctx.customFieldItem = customFieldItem\n ctx.customFieldGroup = customFieldGroup\n\n return ctx\n }, [setterManager, settingsManager, customFieldItem, customFieldGroup])\n\n if (!settings) {\n // 未选中节点,提示选中 或者 显示根节点设置\n return (\n <div className='lc-settings-main'>\n <div className='lc-settings-notice'>\n <p>Please select a node in canvas</p>\n </div>\n </div>\n )\n }\n\n // 当节点被锁定,且未开启锁定后容器可设置属性\n if (settings.isLocked) {\n return (\n <div className='lc-settings-main'>\n <div className='lc-settings-notice'>\n <p>Current node is locked</p>\n </div>\n </div>\n )\n }\n if (Array.isArray(settings.items) && settings.items.length === 0) {\n return (\n <div className='lc-settings-main'>\n <div className='lc-settings-notice'>\n <p>No config found for this type of component</p>\n </div>\n </div>\n )\n }\n\n if (!settings.isSameComponent) {\n // TODO: future support 获取设置项交集编辑\n return (\n <div className='lc-settings-main'>\n <div className='lc-settings-notice'>\n <p>Please select same kind of components</p>\n </div>\n </div>\n )\n }\n\n return (\n <SettingRendererContext.Provider value={ctx}>\n {items?.map(item => (\n <SettingFieldView key={item.id} field={item} />\n ))}\n </SettingRendererContext.Provider>\n )\n})\n","import type { ComponentType } from 'react'\nimport type { BaseRenderComponent } from '../types'\n\nexport interface RendererModules {\n BaseRenderer?: BaseRenderComponent\n PageRenderer: BaseRenderComponent\n ComponentRenderer: BaseRenderComponent\n}\n\nclass Adapter {\n // @ts-ignore\n renderers: RendererModules = {}\n\n setRenderers(renderers: RendererModules) {\n this.renderers = renderers\n }\n\n setBaseRenderer(BaseRenderer: BaseRenderComponent) {\n this.renderers.BaseRenderer = BaseRenderer\n }\n\n setPageRenderer(PageRenderer: BaseRenderComponent) {\n this.renderers.PageRenderer = PageRenderer\n }\n\n setComponentRenderer(ComponentRenderer: BaseRenderComponent) {\n this.renderers.ComponentRenderer = ComponentRenderer\n }\n\n getRenderers() {\n return (this.renderers || {}) as unknown as Record<string, ComponentType<any>>\n }\n}\n\nexport const adapter = new Adapter()\n","import { createContext, useContext } from 'react'\n\nexport interface RendererContext {\n [extra: string]: any\n}\n\nexport const RendererContext = createContext<RendererContext>({} as RendererContext)\n\nexport const useRendererContext = () => {\n try {\n return useContext(RendererContext)\n } catch (error) {\n console.warn('useRendererContext must be used within a RendererContextProvider')\n }\n return {} as RendererContext\n}\n\nexport function contextFactory() {\n let context = (window as any).__appContext\n if (!context) {\n context = createContext({})\n ;(window as any).__appContext = context\n }\n return context\n}\n","export const classnames = (...args: any[]) => {\n return args.filter(Boolean).join(' ')\n}\n","import { createLogger } from '@easy-editor/core'\n\nexport const logger = createLogger('Renderer')\n","import { type NodeSchema, isJSExpression } from '@easy-editor/core'\n// import { default as factoryWithTypeCheckers } from 'prop-types/factoryWithTypeCheckers'\n// import { default as ReactPropTypesSecret } from 'prop-types/lib/ReactPropTypesSecret'\nimport { Component, type ComponentClass, type ComponentType } from 'react'\nimport { logger } from './logger'\n\n// const PropTypes2 = factoryWithTypeCheckers(ReactIs.isElement, true)\nconst PropTypes2 = true\n\nexport function inSameDomain() {\n try {\n return window.parent !== window && window.parent.location.host === window.location.host\n } catch (e) {\n return false\n }\n}\n\n/**\n * get css styled name from schema`s fileName\n * FileName -> lce-file-name\n * @returns string\n */\nexport function getFileCssName(fileName: string) {\n if (!fileName) {\n return\n }\n const name = fileName.replace(/([A-Z])/g, '-$1').toLowerCase()\n return `lce-${name}`\n .split('-')\n .filter(p => !!p)\n .join('-')\n}\n\nexport const isSchema = (schema: any): schema is NodeSchema => {\n if (!schema) {\n return false\n }\n // Leaf and Slot should be valid\n if (schema.componentName === 'Leaf' || schema.componentName === 'Slot') {\n return true\n }\n if (Array.isArray(schema)) {\n return schema.every(item => isSchema(item))\n }\n // check if props is valid\n const isValidProps = (props: any) => {\n if (!props) {\n return false\n }\n return typeof schema.props === 'object' && !Array.isArray(props)\n }\n return !!(schema.componentName && isValidProps(schema.props))\n}\n\nexport const getValue = (obj: any, path: string, defaultValue = {}) => {\n // array is not valid type, return default value\n if (Array.isArray(obj)) {\n return defaultValue\n }\n\n if (!obj || typeof obj !== 'object') {\n return defaultValue\n }\n\n const res = path.split('.').reduce((pre, cur) => {\n return pre && pre[cur]\n }, obj)\n if (res === undefined) {\n return defaultValue\n }\n return res\n}\n\nexport function transformArrayToMap(arr: any[], key: string, overwrite = true) {\n if (!arr || !Array.isArray(arr)) {\n return {}\n }\n const res: any = {}\n arr.forEach(item => {\n const curKey = item[key]\n if (item[key] === undefined) {\n return\n }\n if (res[curKey] && !overwrite) {\n return\n }\n res[curKey] = item\n })\n return res\n}\n\ninterface IParseOptions {\n thisRequiredInJSE?: boolean\n logScope?: string\n}\n\nexport const parseData = (schema: unknown, self: any, options: IParseOptions = {}): any => {\n if (isJSExpression(schema)) {\n return parseExpression({\n str: schema,\n self,\n thisRequired: options.thisRequiredInJSE,\n logScope: options.logScope,\n })\n }\n if (typeof schema === 'string') {\n return schema.trim()\n } else if (Array.isArray(schema)) {\n return schema.map(item => parseData(item, self, options))\n } else if (typeof schema === 'function') {\n return schema.bind(self)\n } else if (typeof schema === 'object') {\n // 对于undefined及null直接返回\n if (!schema) {\n return schema\n }\n const res: any = {}\n Object.entries(schema).forEach(([key, val]) => {\n if (key.startsWith('__')) {\n return\n }\n res[key] = parseData(val, self, options)\n })\n return res\n }\n return schema\n}\n\nexport const isUseLoop = (loop: null | any[], isDesignMode: boolean): boolean => {\n if (!isDesignMode) {\n return true\n }\n\n if (!Array.isArray(loop)) {\n return false\n }\n\n return loop.length > 0\n}\n\nexport function checkPropTypes(value: any, name: string, rule: any, componentName: string): boolean {\n let ruleFunction = rule\n if (typeof rule === 'string') {\n ruleFunction = new Function(`\"use strict\"; const PropTypes = arguments[0]; return ${rule}`)(PropTypes2)\n }\n if (!ruleFunction || typeof ruleFunction !== 'function') {\n logger.warn('checkPropTypes should have a function type rule argument')\n return true\n }\n const err = ruleFunction(\n {\n [name]: value,\n },\n name,\n componentName,\n 'prop',\n null,\n // ReactPropTypesSecret,\n )\n if (err) {\n logger.warn(err)\n }\n return !err\n}\n\n/**\n * transform string to a function\n * @param str function in string form\n * @returns funtion\n */\nexport function transformStringToFunction(str: string) {\n if (typeof str !== 'string') {\n return str\n }\n if (inSameDomain() && (window.parent as any).__newFunc) {\n return (window.parent as any).__newFunc(`\"use strict\"; return ${str}`)()\n } else {\n return new Function(`\"use strict\"; return ${str}`)()\n }\n}\n\n/**\n * 对象类型JSExpression,支持省略this\n * @param str expression in string form\n * @param self scope object\n * @returns funtion\n */\nfunction parseExpression(options: {\n str: any\n self: any\n thisRequired?: boolean\n logScope?: string\n}): any\nfunction parseExpression(str: any, self: any, thisRequired?: boolean): any\nfunction parseExpression(a: any, b?: any, c = false) {\n let str\n let self\n let thisRequired\n let logScope\n if (typeof a === 'object' && b === undefined) {\n str = a.str\n self = a.self\n thisRequired = a.thisRequired\n logScope = a.logScope\n } else {\n str = a\n self = b\n thisRequired = c\n }\n try {\n const contextArr = ['\"use strict\";', 'var __self = arguments[0];']\n contextArr.push('return ')\n let tarStr: string\n\n tarStr = (str.value || '').trim()\n\n // NOTE: use __self replace 'this' in the original function str\n // may be wrong in extreme case which contains '__self' already\n tarStr = tarStr.replace(/this(\\W|$)/g, (_a: any, b: any) => `__self${b}`)\n tarStr = contextArr.join('\\n') + tarStr\n\n // 默认调用顶层窗口的parseObj, 保障new Function的window对象是顶层的window对象\n if (inSameDomain() && (window.parent as any).__newFunc) {\n return (window.parent as any).__newFunc(tarStr)(self)\n }\n const code = `with(${thisRequired ? '{}' : '$scope || {}'}) { ${tarStr} }`\n return new Function('$scope', code)(self)\n } catch (err) {\n logger.error(`${logScope || ''} parseExpression.error`, err, str, self?.__self ?? self)\n return undefined\n }\n}\n\nexport { parseExpression }\n\nexport function parseThisRequiredExpression(str: any, self: any) {\n return parseExpression(str, self, true)\n}\n\n/**\n * check str passed in is a string type of not\n * @param str obj to be checked\n * @returns boolean\n */\nexport function isString(str: any): boolean {\n return {}.toString.call(str) === '[object String]'\n}\n\n/**\n * capitalize first letter\n * @param word string to be proccessed\n * @returns string capitalized string\n */\nexport function capitalizeFirstLetter(word: string) {\n if (!word || !isString(word) || word.length === 0) {\n return word\n }\n return word[0].toUpperCase() + word.slice(1)\n}\n\nexport const isReactClass = (obj: any): obj is ComponentClass<any> => {\n return obj && obj.prototype && (obj.prototype.isReactComponent || obj.prototype instanceof Component)\n}\n\nexport function isReactComponent(obj: any): obj is ComponentType<any> {\n return obj && (isReactClass(obj) || typeof obj === 'function')\n}\n","import { createElement } from 'react'\n\nimport { forwardRef } from 'react'\n\nconst excludePropertyNames = [\n '$$typeof',\n 'render',\n 'defaultProps',\n 'props',\n 'length',\n 'prototype',\n 'name',\n 'caller',\n 'callee',\n 'arguments',\n]\n\nexport const cloneEnumerableProperty = (target: any, origin: any, excludes = excludePropertyNames) => {\n const compExtraPropertyNames = Object.keys(origin).filter(d => !excludes.includes(d))\n\n compExtraPropertyNames.forEach((d: string) => {\n ;(target as any)[d] = origin[d]\n })\n\n return target\n}\n\nexport const createForwardRefHocElement = (Wrapper: any, Comp: any) => {\n const WrapperComponent = cloneEnumerableProperty(\n forwardRef((props: any, ref: any) => {\n return createElement(Wrapper, { ...props, forwardRef: ref })\n }),\n Comp,\n )\n WrapperComponent.displayName = Comp.displayName\n\n return WrapperComponent\n}\n","import { Component, PureComponent, createElement } from 'react'\nimport type { RendererProps } from '../types'\nimport { createForwardRefHocElement } from '../utils'\nimport type { ComponentConstruct, ComponentHocInfo } from './leaf'\n\nconst patchDidCatch = (Comp: any, { baseRenderer }: ComponentHocInfo) => {\n if (Comp.patchedCatch) {\n return\n }\n Comp.patchedCatch = true\n const originalDidCatch = Comp.prototype.componentDidCatch\n Comp.prototype.componentDidCatch = function didCatch(this: any, error: Error, errorInfo: any) {\n this.setState({ engineRenderError: true, error })\n if (originalDidCatch && typeof originalDidCatch === 'function') {\n originalDidCatch.call(this, error, errorInfo)\n }\n }\n\n const { engine } = baseRenderer.context\n const originRender = Comp.prototype.render\n Comp.prototype.render = function () {\n if (this.state && this.state.engineRenderError) {\n this.state.engineRenderError = false\n return engine.createElement(engine.getFaultComponent(), {\n ...this.props,\n error: this.state.error,\n componentName: this.props._componentName,\n })\n }\n return originRender.call(this)\n }\n if (!(Comp.prototype instanceof PureComponent)) {\n const originShouldComponentUpdate = Comp.prototype.shouldComponentUpdate\n Comp.prototype.shouldComponentUpdate = function (nextProps: RendererProps, nextState: any) {\n if (nextState && nextState.engineRenderError) {\n return true\n }\n return originShouldComponentUpdate ? originShouldComponentUpdate.call(this, nextProps, nextState) : true\n }\n }\n}\n\nconst cache = new Map<string, { Comp: any; WrapperComponent: any }>()\n\nexport const compWrapper: ComponentConstruct = (Comp, info) => {\n if (Comp?.prototype?.isReactComponent || Comp?.prototype instanceof Component) {\n patchDidCatch(Comp, info)\n return Comp\n }\n\n if (info.schema.id && cache.has(info.schema.id) && cache.get(info.schema.id)?.Comp === Comp) {\n return cache.get(info.schema.id)?.WrapperComponent\n }\n\n class Wrapper extends Component<any> {\n static displayName = Comp.displayName\n\n render() {\n const { forwardRef, ...rest } = this.props\n // @ts-ignore\n return createElement(Comp, { ...rest, ref: forwardRef })\n }\n }\n\n patchDidCatch(Wrapper, info)\n\n const WrapperComponent = createForwardRefHocElement(Wrapper, Comp)\n\n info.schema.id && cache.set(info.schema.id, { WrapperComponent, Comp })\n\n return WrapperComponent\n}\n","import { DESIGNER_EVENT, type Node, type NodeSchema, TRANSFORM_STAGE } from '@easy-editor/core'\nimport { debounce } from 'lodash-es'\nimport { Component, type ComponentType } from 'react'\nimport type { BaseRendererInstance, Schema } from '../types'\nimport { createForwardRefHocElement, logger } from '../utils'\n\nexport interface ComponentHocInfo {\n schema: Schema\n baseRenderer: BaseRendererInstance\n componentInfo: any\n scope: any\n}\n\nexport type ComponentConstruct = (Comp: ComponentType, info: ComponentHocInfo) => ComponentType\n\nexport interface ComponentHocProps {\n __tag: any\n componentId: any\n _leaf: any\n forwardedRef?: any\n\n children?: any | undefined\n}\n\nexport interface ComponentHocState {\n childrenInState: boolean\n nodeChildren: any\n nodeCacheProps: any\n\n /** 控制是否显示隐藏 */\n visible: boolean\n\n /** 控制是否渲染 */\n condition: boolean\n nodeProps: any\n}\n\ninterface LeftWrapperProps {\n _leaf: Node | undefined\n\n visible: boolean\n\n componentId: number\n\n children?: Node[]\n\n __tag: number\n\n forwardRef?: any\n}\n\nenum RerenderType {\n All = 'All',\n ChildChanged = 'ChildChanged',\n PropsChanged = 'PropsChanged',\n VisibleChanged = 'VisibleChanged',\n MinimalRenderUnit = 'MinimalRenderUnit',\n}\n\n// 缓存 Leaf 层组件,防止重新渲染问题\nclass LeafCache {\n /** 组件缓存 */\n component = new Map()\n\n /**\n * 状态缓存,场景:属性变化后,改组件被销毁,state 为空,没有展示修改后的属性\n */\n state = new Map()\n\n /**\n * 订阅事件缓存,导致 rerender 的订阅事件\n */\n event = new Map()\n\n ref = new Map()\n\n constructor(\n public documentId: string,\n public device: string,\n ) {}\n}\n\nlet cache: LeafCache\n\n/** 部分没有渲染的 node 节点进行兜底处理 or 渲染方式没有渲染 LeafWrapper */\nconst initRerenderEvent = ({ schema, container, getNode }: any) => {\n const leaf = getNode?.(schema.id)\n if (!leaf || cache.event.get(schema.id)?.clear || leaf === cache.event.get(schema.id)) {\n return\n }\n cache.event.get(schema.id)?.dispose.forEach((disposeFn: any) => disposeFn && disposeFn())\n const debounceRerender = debounce(() => {\n container.rerender()\n }, 20)\n cache.event.set(schema.id, {\n clear: false,\n leaf,\n dispose: [\n leaf?.onPropChange?.(() => {\n if (!container.autoRepaintNode) {\n return\n }\n logger.log(\n `${schema.componentName}[${schema.id}] leaf not render in SimulatorRendererView, leaf onPropsChange make rerender`,\n )\n debounceRerender()\n }),\n leaf?.onChildrenChange?.(() => {\n if (!container.autoRepaintNode) {\n return\n }\n logger.log(\n `${schema.componentName}[${schema.id}] leaf not render in SimulatorRendererView, leaf onChildrenChange make rerender`,\n )\n debounceRerender()\n }),\n leaf?.onVisibleChange?.(() => {\n if (!container.autoRepaintNode) {\n return\n }\n logger.log(\n `${schema.componentName}[${schema.id}] leaf not render in SimulatorRendererView, leaf onVisibleChange make rerender`,\n )\n debounceRerender()\n }),\n ],\n })\n}\n\n/** 渲染的 node 节点全局注册事件清除 */\nconst clearRerenderEvent = (id: string): void => {\n if (cache.event.get(id)?.clear) {\n return\n }\n cache.event.get(id)?.dispose?.forEach((disposeFn: any) => disposeFn && disposeFn())\n cache.event.set(id, {\n clear: true,\n dispose: [],\n })\n}\n\n// 给每个组件包裹一个 HOC Leaf,支持组件内部属性变化,自响应渲染\nexport const leafWrapper: ComponentConstruct = (Comp, { schema, baseRenderer, componentInfo, scope }) => {\n const { __getComponentProps: getProps, __getSchemaChildrenVirtualDom: getChildren, __parseData } = baseRenderer\n const { engine } = baseRenderer.context\n const host = baseRenderer.props?.__host\n const curDocumentId = baseRenderer.props?.documentId ?? ''\n const curDevice = baseRenderer.props?.device ?? ''\n const getNode = baseRenderer.props?.getNode\n const container = baseRenderer.props?.__container\n const setSchemaChangedSymbol = baseRenderer.props?.setSchemaChangedSymbol\n const designer = host?.designer\n\n const componentCacheId = schema.id\n\n if (!cache || (curDocumentId && curDocumentId !== cache.documentId) || (curDevice && curDevice !== cache.device)) {\n cache?.event.forEach(event => {\n event.dispose?.forEach((disposeFn: any) => disposeFn && disposeFn())\n })\n cache = new LeafCache(curDocumentId, curDevice)\n }\n\n // if (!isReactComponent(Comp)) {\n // logger.error(`${schema.componentName} component may be has errors: `, Comp)\n // }\n\n initRerenderEvent({\n schema,\n container,\n getNode,\n })\n\n if (curDocumentId && cache.component.has(componentCacheId) && cache.component.get(componentCacheId).Comp === Comp) {\n return cache.component.get(componentCacheId).LeafWrapper\n }\n\n class LeafHoc extends Component<LeftWrapperProps, ComponentHocState> {\n recordInfo: {\n startTime?: number | null\n type?: string\n node?: Node\n } = {}\n\n private curEventLeaf: Node | undefined\n\n static displayName = schema.componentName\n\n disposeFunctions: Array<(() => void) | Function> = []\n\n __component_tag = 'leafWrapper'\n\n renderUnitInfo: {\n minimalUnitId?: string\n minimalUnitName?: string\n singleRender?: boolean\n }\n\n // 最小渲染单元做防抖处理\n makeUnitRenderDebounced = debounce(() => {\n this.beforeRender(RerenderType.MinimalRenderUnit)\n const schema = this.leaf?.export?.(TRANSFORM_STAGE.RENDER)\n if (!schema) {\n return\n }\n const nextProps = getProps(schema, scope, Comp, componentInfo)\n const children = getChildren(schema, scope, Comp)\n const nextState = {\n nodeProps: nextProps,\n nodeChildren: children,\n childrenInState: true,\n }\n if ('children' in nextProps) {\n nextState.nodeChildren = nextProps.children\n }\n\n logger.log(`${this.leaf?.componentName}(${this.leaf?.id}) MinimalRenderUnit Render!`)\n this.setState(nextState)\n }, 20)\n\n constructor(props: LeftWrapperProps) {\n super(props)\n // 监听以下事件,当变化时更新自己\n logger.log(`${schema.componentName}[${this.leaf?.id}] leaf render in SimulatorRendererView`)\n componentCacheId && clearRerenderEvent(componentCacheId)\n this.curEventLeaf = this.leaf\n\n cache.ref.set(componentCacheId, {\n makeUnitRender: this.makeUnitRender,\n })\n\n let cacheState = cache.state.get(componentCacheId)\n if (!cacheState || cacheState.__tag !== props.__tag) {\n cacheState = this.getDefaultState(props)\n }\n\n this.state = cacheState\n }\n\n recordTime = () => {\n if (!this.recordInfo.startTime) {\n return\n }\n const endTime = Date.now()\n const nodeCount = host?.designer?.currentDocument?.getNodeCount?.()\n const componentName = this.recordInfo.node?.componentName || this.leaf?.componentName || 'UnknownComponent'\n designer?.postEvent(DESIGNER_EVENT.NODE_RENDER, {\n componentName,\n time: endTime - this.recordInfo.startTime,\n type: this.recordInfo.type,\n nodeCount,\n })\n this.recordInfo.startTime = null\n }\n\n makeUnitRender = () => {\n this.makeUnitRenderDebounced()\n }\n\n get autoRepaintNode() {\n return container?.autoRepaintNode\n }\n\n componentDidUpdate() {\n this.recordTime()\n }\n\n componentDidMount() {\n const _leaf = this.leaf\n this.initOnPropsChangeEvent(_leaf)\n this.initOnChildrenChangeEvent(_leaf)\n this.initOnVisibleChangeEvent(_leaf)\n this.recordTime()\n }\n\n getDefaultState(nextProps: any) {\n const { hidden = false, condition = true } =\n nextProps.__inner__ || this.leaf?.export?.(TRANSFORM_STAGE.RENDER) || {}\n\n return {\n nodeChildren: null,\n childrenInState: false,\n visible: !hidden,\n condition: __parseData?.(condition, scope),\n nodeCacheProps: {},\n nodeProps: {},\n }\n }\n\n setState(state: any) {\n cache.state.set(componentCacheId, {\n ...this.state,\n ...state,\n __tag: this.props.__tag,\n })\n super.setState(state)\n }\n\n /** 由于内部属性变化,在触发渲染前,会执行该函数 */\n beforeRender(type: string, node?: Node): void {\n this.recordInfo.startTime = Date.now()\n this.recordInfo.type = type\n this.recordInfo.node = node\n setSchemaChangedSymbol?.(true)\n }\n\n judgeMiniUnitRender() {\n if (!this.renderUnitInfo) {\n this.getRenderUnitInfo()\n }\n\n const renderUnitInfo = this.renderUnitInfo || {\n singleRender: true,\n }\n\n if (renderUnitInfo.singleRender) {\n return\n }\n\n const ref = cache.ref.get(renderUnitInfo.minimalUnitId)\n\n if (!ref) {\n logger.log('Cant find minimalRenderUnit ref! This make rerender!')\n container?.rerender()\n return\n }\n logger.log(\n `${this.leaf?.componentName}(${this.leaf?.id}) need render, make its minimalRenderUnit ${renderUnitInfo.minimalUnitName}(${renderUnitInfo.minimalUnitId})`,\n )\n ref.makeUnitRender()\n }\n\n getRenderUnitInfo(leaf = this.leaf) {\n // leaf 在低代码组件中存在 mock 的情况,退出最小渲染单元判断\n if (!leaf || typeof leaf.isRoot !== 'function') {\n return\n }\n\n if (leaf.isRoot) {\n this.renderUnitInfo = {\n singleRender: true,\n ...(this.renderUnitInfo || {}),\n }\n }\n if (leaf.componentMeta.isMinimalRenderUnit) {\n this.renderUnitInfo = {\n minimalUnitId: leaf.id,\n minimalUnitName: leaf.componentName,\n singleRender: false,\n }\n }\n if (leaf.hasLoop()) {\n // 含有循环配置的元素,父元素是最小渲染单元\n this.renderUnitInfo = {\n minimalUnitId: leaf?.parent?.id,\n minimalUnitName: leaf?.parent?.componentName,\n singleRender: false,\n }\n }\n if (leaf.parent) {\n this.getRenderUnitInfo(leaf.parent)\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: any) {\n const { componentId } = nextProps\n if (nextProps.__tag === this.props.__tag) {\n return null\n }\n\n const _leaf = getNode?.(componentId)\n if (_leaf && this.curEventLeaf && _leaf !== this.curEventLeaf) {\n this.disposeFunctions.forEach(fn => fn())\n this.disposeFunctions = []\n this.initOnChildrenChangeEvent(_leaf)\n this.initOnPropsChangeEvent(_leaf)\n this.initOnVisibleChangeEvent(_leaf)\n this.curEventLeaf = _leaf\n }\n\n const { visible, ...resetState } = this.getDefaultState(nextProps)\n this.setState(resetState)\n }\n\n /** 监听参数变化 */\n initOnPropsChangeEvent(leaf = this.leaf): void {\n // const handlePropsChange = debounce((propChangeInfo: PropChangeInfo) => {\n const handlePropsChange = debounce((propChangeInfo: any) => {\n const { key, newValue = null } = propChangeInfo\n const node = leaf\n\n if (key === '___condition___') {\n const { condition = true } = this.leaf?.export(TRANSFORM_STAGE.RENDER) || {}\n const conditionValue = __parseData?.(condition, scope)\n logger.log(`key is ___condition___, change condition value to [${condition}]`)\n // 条件表达式改变\n this.setState({\n condition: conditionValue,\n })\n return\n }\n\n // 如果循坏条件变化,从根节点重新渲染\n // 目前多层循坏无法判断需要从哪一层开始渲染,故先粗暴解决\n if (key === '___loop___') {\n logger.log('key is ___loop___, render a page!')\n container?.rerender()\n // 由于 scope 变化,需要清空缓存,使用新的 scope\n cache.component.delete(componentCacheId)\n return\n }\n this.beforeRender(RerenderType.PropsChanged)\n const { state } = this\n const { nodeCacheProps } = state\n const nodeProps = getProps(node?.export?.(TRANSFORM_STAGE.RENDER) as NodeSchema, scope, Comp, componentInfo)\n if (key && !(key in nodeProps) && key in this.props) {\n // 当 key 在 this.props 中时,且不存在在计算值中,需要用 newValue 覆盖掉 this.props 的取值\n nodeCacheProps[key] = newValue\n }\n logger.log(\n `${leaf?.componentName}[${this.leaf?.id}] component trigger onPropsChange!`,\n nodeProps,\n nodeCacheProps,\n key,\n newValue,\n )\n this.setState(\n 'children' in nodeProps\n ? {\n nodeChildren: nodeProps.children,\n nodeProps,\n childrenInState: true,\n nodeCacheProps,\n }\n : {\n nodeProps,\n nodeCacheProps,\n },\n )\n\n this.judgeMiniUnitRender()\n })\n // const dispose = leaf?.onPropChange?.((propChangeInfo: IPublicTypePropChangeOptions) => {\n const dispose = leaf?.onPropChange?.((propChangeInfo: any) => {\n if (!this.autoRepaintNode) {\n return\n }\n handlePropsChange(propChangeInfo)\n })\n\n dispose && this.disposeFunctions.push(dispose)\n }\n\n /**\n * 监听显隐变化\n */\n initOnVisibleChangeEvent(leaf = this.leaf) {\n const dispose = leaf?.onVisibleChange?.((flag: boolean) => {\n if (!this.autoRepaintNode) {\n return\n }\n if (this.state.visible === flag) {\n return\n }\n\n logger.log(`${leaf?.componentName}[${this.leaf?.id}] component trigger onVisibleChange(${flag}) event`)\n this.beforeRender(RerenderType.VisibleChanged)\n this.setState({\n visible: flag,\n })\n this.judgeMiniUnitRender()\n })\n\n dispose && this.disposeFunctions.push(dispose)\n }\n\n /**\n * 监听子元素变化(拖拽,删除...)\n */\n initOnChildrenChangeEvent(leaf = this.leaf) {\n const dispose = leaf?.onChildrenChange?.((param): void => {\n if (!this.autoRepaintNode) {\n return\n }\n const { type, node } = param || {}\n this.beforeRender(`${RerenderType.ChildChanged}-${type}`, node)\n // TODO: 缓存同级其他元素的 children。\n // 缓存二级 children Next 查询筛选组件有问题\n // 缓存一级 children Next Tab 组件有问题\n const nextChild = getChildren(leaf?.export?.(TRANSFORM_STAGE.RENDER) as NodeSchema, scope, Comp)\n logger.log(`${schema.componentName}[${this.leaf?.id}] component trigger onChildrenChange event`, nextChild)\n this.setState({\n nodeChildren: nextChild,\n childrenInState: true,\n })\n this.judgeMiniUnitRender()\n })\n dispose && this.disposeFunctions.push(dispose)\n }\n\n componentWillUnmount() {\n this.disposeFunctions.forEach(fn => fn())\n }\n\n get hasChildren(): boolean {\n if (!this.state.childrenInState) {\n return 'children' in this.props\n }\n\n return true\n }\n\n get children(): any {\n if (this.state.childrenInState) {\n return this.state.nodeChildren\n }\n if (this.props.children && !Array.isArray(this.props.children)) {\n return [this.props.children]\n }\n if (this.props.children && this.props.children.length) {\n return this.props.children\n }\n return this.props.children\n }\n\n get leaf(): Node | undefined {\n // if (this.props._leaf?.isMock) {\n // // 低代码组件作为一个整体更新,其内部的组件不需要监听相关事件\n // return undefined\n // }\n\n return getNode?.(componentCacheId)\n }\n\n render() {\n if (!this.state.visible || !this.state.condition) {\n return null\n }\n\n const { forwardRef, ...rest } = this.props\n\n const compProps = {\n ...rest,\n ...(this.state.nodeCacheProps || {}),\n ...(this.state.nodeProps || {}),\n children: [],\n __id: this.leaf?.id,\n ref: forwardRef,\n }\n\n delete compProps.__inner__\n\n if (this.hasChildren) {\n return engine.createElement(Comp, compProps, this.children)\n }\n\n return engine.createElement(Comp, compProps)\n }\n }\n\n const LeafWrapper = createForwardRefHocElement(LeafHoc, Comp)\n\n cache.component.set(componentCacheId, {\n LeafWrapper,\n Comp,\n })\n\n return LeafWrapper\n}\n","import {\n type CompositeValue,\n type JSONValue,\n type NodeData,\n type NodeSchema,\n type RootSchema,\n isJSExpression,\n isJSFunction,\n} from '@easy-editor/core'\nimport { forEach, isEmpty } from 'lodash-es'\nimport { Component } from 'react'\nimport { adapter } from './adapter'\nimport { RendererContext } from './context'\nimport { type ComponentConstruct, type ComponentHocInfo, compWrapper, leafWrapper } from './hoc'\nimport type { BaseRenderComponent, BaseRendererContext, BaseRendererProps, NodeInfo } from './types'\nimport {\n checkPropTypes,\n classnames,\n getFileCssName,\n getValue,\n isSchema,\n isUseLoop,\n logger,\n parseData,\n parseExpression,\n parseThisRequiredExpression,\n transformArrayToMap,\n transformStringToFunction,\n} from './utils'\n\n/**\n * execute method in schema.lifeCycles with context\n */\nexport function executeLifeCycleMethod(\n context: any,\n schema: RootSchema,\n method: string,\n args: any,\n thisRequiredInJSE: boolean | undefined,\n): any {\n if (!context || !isSchema(schema) || !method) {\n return\n }\n const lifeCycleMethods = getValue(schema, 'lifeCycles', {})\n let fn = lifeCycleMethods[method]\n\n if (!fn) {\n return\n }\n\n // TODO: cache\n if (isJSExpression(fn) || isJSFunction(fn)) {\n fn = thisRequiredInJSE ? parseThisRequiredExpression(fn, context) : parseExpression(fn, context)\n }\n\n if (typeof fn !== 'function') {\n logger.error(`生命周期${method}类型不符`, fn)\n return\n }\n\n try {\n return fn.apply(context, args)\n } catch (e) {\n logger.error(`[${schema.componentName}]生命周期${method}出错`, e)\n }\n}\n\n/**\n * get children from a node schema\n */\nexport function getSchemaChildren(schema: NodeSchema | undefined) {\n if (!schema) {\n return\n }\n\n return schema.children\n}\n\nexport function baseRendererFactory(): BaseRenderComponent {\n const { BaseRenderer: customBaseRenderer } = adapter.getRenderers()\n\n if (customBaseRenderer) {\n return customBaseRenderer as unknown as BaseRenderComponent\n }\n\n const DEFAULT_LOOP_ARG_ITEM = 'item'\n const DEFAULT_LOOP_ARG_INDEX = 'index'\n // const scopeIdx = 0\n\n return class BaseRenderer extends Component<BaseRendererProps, BaseRendererProps> {\n [key: string]: any\n\n static displayName = 'BaseRenderer'\n\n static defaultProps = {\n __schema: {},\n }\n\n static contextType = RendererContext\n declare context: BaseRendererContext\n\n dataSourceMap: Record<string, any> = {}\n\n __namespace = 'base'\n __compScopes: Record<string, any> = {}\n __instanceMap: Record<string, any> = {}\n __dataHelper: any\n\n /**\n * keep track of customMethods added to this context\n *\n * @type {any}\n */\n __customMethodsList: any[] = []\n __parseExpression: any\n __ref: any\n\n /**\n * reference of style element contains schema.css\n *\n * @type {any}\n */\n __styleElement: any\n\n constructor(props: BaseRendererProps) {\n super(props)\n this.__parseExpression = (str: string, self: any) => {\n return parseExpression({ str, self, thisRequired: props?.thisRequiredInJSE, logScope: props.componentName })\n }\n this.__beforeInit(props)\n this.__init(props)\n this.__afterInit(props)\n logger.log(`constructor - ${props?.__schema?.fileName}`)\n }\n\n __beforeInit(props: BaseRendererProps) {}\n\n __init(props: BaseRendererProps) {\n this.__compScopes = {}\n this.__instanceMap = {}\n this.__bindCustomMethods(props)\n }\n\n __afterInit(props: BaseRendererProps) {}\n\n static getDerivedStateFromProps(props: BaseRendererProps, state: any) {\n const result = executeLifeCycleMethod(\n this,\n props?.__schema,\n 'getDerivedStateFromProps',\n [props, state],\n props.thisRequiredInJSE,\n )\n return result === undefined ? null : result\n }\n\n async getSnapshotBeforeUpdate(...args: any[]) {\n this.__executeLifeCycleMethod('getSnapshotBeforeUpdate', args)\n logger.log(`getSnapshotBeforeUpdate - ${this.props?.__schema?.componentName}`)\n }\n\n async componentDidMount(...args: any[]) {\n this.reloadDataSource()\n this.__executeLifeCycleMethod('componentDidMount', args)\n logger.log(`componentDidMount - ${this.props?.__schema?.componentName}`)\n }\n\n async componentDidUpdate(...args: any[]) {\n this.__executeLifeCycleMethod('componentDidUpdate', args)\n logger.log(`componentDidUpdate - ${this.props.__schema.componentName}`)\n }\n\n async componentWillUnmount(...args: any[]) {\n this.__executeLifeCycleMethod('componentWillUnmount', args)\n logger.log(`componentWillUnmount - ${this.props?.__schema?.componentName}`)\n }\n\n async componentDidCatch(...args: any[]) {\n this.__executeLifeCycleMethod('componentDidCatch', args)\n logger.warn(args)\n }\n\n reloadDataSource = () =>\n new Promise((resolve, reject) => {\n logger.log('reload data source')\n if (!this.__dataHelper) {\n return resolve({})\n }\n this.__dataHelper\n .getInitData()\n .then((res: any) => {\n if (isEmpty(res)) {\n this.forceUpdate()\n return resolve({})\n }\n this.setState(res, resolve as () => void)\n })\n .catch((err: Error) => {\n reject(err)\n })\n })\n\n shouldComponentUpdate() {\n if (this.props.getSchemaChangedSymbol?.() && this.props.__container?.rerender) {\n this.props.__container?.rerender()\n return false\n }\n return true\n }\n\n forceUpdate() {\n if (this.shouldComponentUpdate()) {\n super.forceUpdate()\n }\n }\n\n /**\n * execute method in schema.lifeCycles\n */\n __executeLifeCycleMethod = (method: string, args?: any) => {\n executeLifeCycleMethod(this, this.props.__schema, method, args, this.props.thisRequiredInJSE)\n }\n\n /**\n * this method is for legacy purpose only, which used _ prefix instead of __ as private for some historical reasons\n */\n __getComponentView = () => {\n const { __components, __schema } = this.props\n if (!__components) {\n return\n }\n return __components[__schema.componentName]\n }\n\n __bindCustomMethods = (props: BaseRendererProps) => {\n const { __schema } = props\n const customMethodsList = Object.keys(__schema.methods || {}) || []\n ;(this.__customMethodsList || []).forEach((item: any) => {\n if (!customMethodsList.includes(item)) {\n delete this[item]\n }\n })\n this.__customMethodsList = customMethodsList\n forEach(__schema.methods, (val: any, key: string) => {\n let value = val\n if (isJSExpression(value) || isJSFunction(value)) {\n value = this.__parseExpression(value, this)\n }\n if (typeof value !== 'function') {\n logger.error(`custom method ${key} can not be parsed to a valid function`, value)\n return\n }\n this[key] = value.bind(this)\n })\n }\n\n __generateCtx = (ctx: Record<string, any>) => {\n const { pageContext, compContext } = this.context\n const obj = {\n page: pageContext,\n component: compContext,\n ...ctx,\n }\n forEach(obj, (val: any, key: string) => {\n this[key] = val\n })\n }\n\n __parseData = (data: any, ctx?: Record<string, any>) => {\n const { __ctx, thisRequiredInJSE, componentName } = this.props\n return parseData(data, ctx || __ctx || this, { thisRequiredInJSE, logScope: componentName })\n }\n\n __initDataSource = (props: BaseRendererProps) => {\n if (!props) {\n return\n }\n // TODO: 数据源引擎方案\n // const schema = props.__schema || {}\n // const defaultDataSource: DataSource = {\n // list: [],\n // }\n // const dataSource = schema.dataSource || defaultDataSource\n // // requestHandlersMap 存在才走数据源引擎方案\n // // TODO: 下面if else 抽成独立函数\n // const useDataSourceEngine = !!props.__appHelper?.requestHandlersMap\n // if (useDataSourceEngine) {\n // this.__dataHelper = {\n // updateConfig: (updateDataSource: any) => {\n // const { dataSourceMap, reloadDataSource } = createDataSourceEngine(\n // updateDataSource ?? {},\n // this,\n // props.__appHelper.requestHandlersMap\n // ? { requestHandlersMap: props.__appHelper.requestHandlersMap }\n // : undefined,\n // )\n\n // this.reloadDataSource = () =>\n // new Promise(resolve => {\n // logger.log('reload data source')\n // reloadDataSource().then(() => {\n // resolve({})\n // })\n // })\n // return dataSourceMap\n // },\n // }\n // this.dataSourceMap = this.__dataHelper.updateConfig(dataSource)\n // } else {\n // const appHelper = props.__appHelper\n // this.__dataHelper = new DataHelper(this, dataSource, appHelper, (config: any) => this.__parseData(config))\n // this.dataSourceMap = this.__dataHelper.dataSourceMap\n // this.reloadDataSource = () =>\n // new Promise((resolve, reject) => {\n // logger.log('reload data source')\n // if (!this.__dataHelper) {\n // return resolve({})\n // }\n // this.__dataHelper\n // .getInitData()\n // .then((res: any) => {\n // if (isEmpty(res)) {\n // return resolve({})\n // }\n // this.setState(res, resolve as () => void)\n // })\n // .catch((err: Error) => {\n // reject(err)\n // })\n // })\n // }\n }\n\n /**\n * write props.__schema.css to document as a style element,\n * which will be added once and only once.\n * @PRIVATE\n */\n __writeCss = (props: BaseRendererProps) => {\n const css = getValue(props.__schema, 'css', '')\n logger.log('create this.styleElement with css', css)\n let style = this.__styleElement\n if (!this.__styleElement) {\n style = document.createElement('style')\n style.type = 'text/css'\n style.setAttribute('from', 'style-sheet')\n\n const head = document.head || document.getElementsByTagName('head')[0]\n head.appendChild(style)\n this.__styleElement = style\n logger.log('this.styleElement is created', this.__styleElement)\n }\n\n if (style.innerHTML === css) {\n return\n }\n\n style.innerHTML = css\n }\n\n __render = () => {\n const schema = this.props.__schema\n this.__executeLifeCycleMethod('render')\n this.__writeCss(this.props)\n\n const { engine } = this.context\n if (engine) {\n engine.props.onCompGetCtx(schema, this)\n // 画布场景才需要每次渲染bind自定义方法\n if (this.__designModeIsDesign) {\n this.__bindCustomMethods(this.props)\n this.dataSourceMap = this.__dataHelper?.updateConfig(schema.dataSource)\n }\n }\n }\n\n __getRef = (ref: any) => {\n const { engine } = this.context\n const { __schema } = this.props\n // ref && engine?.props?.onCompGetRef(__schema, ref)\n // TODO: 只在 ref 存在执行,会影响 documentInstance 的卸载\n engine?.props?.onCompGetRef(__schema, ref)\n this.__ref = ref\n }\n\n __createDom = () => {\n const { __schema, __ctx } = this.props\n // merge defaultProps\n const scopeProps = {\n ...__schema.defaultProps,\n ...this.props,\n }\n const scope: any = {\n props: scopeProps,\n }\n scope.__proto__ = __ctx || this\n\n const _children = getSchemaChildren(__schema)\n const Comp = this.__getComponentView()\n\n if (!Comp) {\n logger.log(`${__schema.componentName} is invalid!`)\n }\n\n const parentNodeInfo = {\n schema: __schema,\n Comp: this.__getHOCWrappedComponent(Comp, {\n schema: __schema,\n scope,\n }),\n } as NodeInfo\n return this.__createVirtualDom(_children, scope, parentNodeInfo)\n }\n\n /**\n * 将模型结构转换成react Element\n * @param originalSchema schema\n * @param originalScope scope\n * @param parentInfo 父组件的信息,包含schema和Comp\n * @param idx 为循环渲染的循环Index\n */\n __createVirtualDom = (\n originalSchema: NodeData | NodeData[] | undefined,\n originalScope: any,\n parentInfo: NodeInfo,\n idx: string | number = '',\n ): any => {\n if (originalSchema === null || originalSchema === undefined) {\n return null\n }\n\n const scope = originalScope\n const schema = originalSchema\n const { engine } = this.context || {}\n\n if (!engine) {\n logger.log('this.context.engine is invalid!')\n return null\n }\n\n try {\n const { __appHelper: appHelper, __components: components = {} } = this.props || {}\n\n if (isJSExpression(schema)) {\n return this.__parseExpression(schema, scope)\n }\n\n if (typeof schema === 'string') {\n return schema\n }\n\n if (typeof schema === 'number' || typeof schema === 'boolean') {\n return String(schema)\n }\n\n if (Array.isArray(schema)) {\n if (schema.length === 1) {\n return this.__createVirtualDom(schema[0], scope, parentInfo)\n }\n return schema.map((item, idy) =>\n this.__createVirtualDom(item, scope, parentInfo, (item as NodeSchema)?.__ctx?.lceKey ? '' : String(idy)),\n )\n }\n\n if (schema.$$typeof) {\n return schema\n }\n\n if (!schema.componentName) {\n logger.error('The componentName in the schema is invalid, please check the schema: ', schema)\n return\n }\n\n if (!isSchema(schema)) {\n return null\n }\n\n let Comp = components[schema.componentName] || this.props.__container?.components?.[schema.componentName]\n\n // 容器类组件的上下文通过props传递,避免context传递带来的嵌套问题\n const otherProps: any = isSchema(schema)\n ? {\n __schema: schema,\n __appHelper: appHelper,\n __components: components,\n }\n : {}\n\n if (!Comp) {\n logger.error(\n `${schema.componentName} component is not found in components list! component list is:`,\n components || this.props.__container?.components,\n )\n\n return engine.createElement(\n engine.getNotFoundComponent(),\n {\n componentName: schema.componentName,\n componentId: schema.id,\n enableStrictNotFoundMode: engine.props.enableStrictNotFoundMode,\n ref: (ref: any) => {\n ref && engine.props?.onCompGetRef(schema, ref)\n },\n },\n this.__getSchemaChildrenVirtualDom(schema, scope, Comp),\n )\n }\n\n if (schema.loop != null) {\n const loop = this.__parseData(schema.loop, scope)\n if (Array.isArray(loop) && loop.length === 0) return null\n const useLoop = isUseLoop(loop, this.__designModeIsDesign)\n if (useLoop) {\n return this.__createLoopVirtualDom(\n {\n ...schema,\n loop,\n },\n scope,\n parentInfo,\n idx,\n )\n }\n }\n\n const condition = schema.condition == null ? true : this.__parseData(schema.condition, scope)\n\n // DesignMode 为 design 情况下,需要进入 leaf Hoc,进行相关事件注册\n const displayInHook = this.__designModeIsDesign\n if (!condition && !displayInHook) {\n return null\n }\n\n // TODO: scope\n // let scopeKey = ''\n // // 判断组件是否需要生成scope,且只生成一次,挂在this.__compScopes上\n // if (Comp.generateScope) {\n // const key = this.__parseExpression(schema.props?.key, scope)\n // if (key) {\n // // 如果组件自己设置key则使用组件自己的key\n // scopeKey = key\n // } else if (schema.__ctx) {\n // // 需要判断循环的情况\n // scopeKey = schema.__ctx.lceKey + (idx !== undefined ? `_${idx}` : '')\n // } else {\n // // 在生产环境schema没有__ctx上下文,需要手动生成一个lceKey\n // schema.__ctx = {\n // lceKey: `lce${++scopeIdx}`,\n // }\n // scopeKey = schema.__ctx.lceKey\n // }\n // if (!this.__compScopes[scopeKey]) {\n // this.__compScopes[scopeKey] = Comp.generateScope(this, schema)\n // }\n // }\n // // 如果组件有设置scope,需要为组件生成一个新的scope上下文\n // if (scopeKey && this.__compScopes[scopeKey]) {\n // const compSelf = { ...this.__compScopes[scopeKey] }\n // compSelf.__proto__ = scope\n // scope = compSelf\n // }\n\n if (engine.props?.designMode) {\n otherProps.__designMode = engine.props.designMode\n }\n if (this.__designModeIsDesign) {\n otherProps.__tag = Math.random()\n }\n\n const componentInfo: any = {}\n const props: any =\n this.__getComponentProps(schema, scope, Comp, {\n ...componentInfo,\n props: transformArrayToMap(componentInfo.props, 'name'),\n }) || {}\n\n Comp = this.__getHOCWrappedComponent(Comp, {\n schema,\n componentInfo,\n baseRenderer: this,\n scope,\n })\n\n otherProps.ref = (ref: any) => {\n this.$(schema.id || props.ref, ref) // 收集ref\n const refProps = props.ref\n if (refProps && typeof refProps === 'string') {\n this[refProps] = ref\n }\n ref && engine.props?.onCompGetRef(schema, ref)\n }\n\n // scope需要传入到组件上\n // if (scopeKey && this.__compScopes[scopeKey]) {\n // props.__scope = this.__compScopes[scopeKey]\n // }\n if (schema?.__ctx?.lceKey) {\n if (!isSchema(schema)) {\n engine.props?.onCompGetCtx(schema, scope)\n }\n props.key = props.key || `${schema.__ctx.lceKey}_${schema.__ctx.idx || 0}_${idx !== undefined ? idx : ''}`\n } else if ((typeof idx === 'number' || typeof idx === 'string') && !props.key) {\n // 仅当循环场景走这里\n props.key = idx\n }\n\n props.__id = schema.id\n if (!props.key) {\n props.key = props.__id\n }\n\n return engine.createElement(\n Comp,\n {\n ...props,\n ...otherProps,\n // TODO: 看看这里需要怎么处理简洁\n __inner__: {\n hidden: schema.hidden,\n condition,\n },\n },\n this.__getSchemaChildrenVirtualDom(schema, scope, Comp, condition),\n )\n } catch (e) {\n return engine.createElement(engine.getFaultComponent(), {\n error: e,\n schema,\n self: scope,\n parentInfo,\n idx,\n })\n }\n }\n\n /**\n * get Component HOCs\n *\n * @readonly\n * @type {ComponentConstruct[]}\n */\n get __componentHOCs(): ComponentConstruct[] {\n if (this.__designModeIsDesign) {\n return [leafWrapper, compWrapper]\n }\n return [compWrapper]\n }\n\n __getSchemaChildrenVirtualDom = (schema: NodeSchema | undefined, scope: any, Comp: any, condition = true) => {\n let children = condition ? getSchemaChildren(schema) : null\n\n const result: any = []\n if (children) {\n if (!Array.isArray(children)) {\n children = [children]\n }\n\n children.forEach((child: any) => {\n const childVirtualDom = this.__createVirtualDom(\n isJSExpression(child) ? this.__parseExpression(child, scope) : child,\n scope,\n {\n schema,\n Comp,\n },\n )\n\n result.push(childVirtualDom)\n })\n }\n\n if (result && result.length > 0) {\n return result\n }\n return null\n }\n\n __getComponentProps = (schema: NodeSchema | undefined, scope: any, Comp: any, componentInfo?: any) => {\n if (!schema) {\n return {}\n }\n return (\n this.__parseProps(schema?.props, scope, '', {\n schema,\n Comp,\n componentInfo: {\n ...(componentInfo || {}),\n props: transformArrayToMap((componentInfo || {}).props, 'name'),\n },\n }) || {}\n )\n }\n\n __createLoopVirtualDom = (schema: NodeSchema, scope: any, parentInfo: NodeInfo, idx: number | string) => {\n // TODO\n // if (isSchema(schema)) {\n // logger.warn('file type not support Loop')\n // return null\n // }\n if (!Array.isArray(schema.loop)) {\n return null\n }\n const itemArg = (schema.loopArgs && schema.loopArgs[0]) || DEFAULT_LOOP_ARG_ITEM\n const indexArg = (schema.loopArgs && schema.loopArgs[1]) || DEFAULT_LOOP_ARG_INDEX\n const { loop } = schema\n return loop.map((item: JSONValue | CompositeValue, i: number) => {\n const loopSelf: any = {\n [itemArg]: item,\n [indexArg]: i,\n }\n loopSelf.__proto__ = scope\n return this.__createVirtualDom(\n {\n ...schema,\n loop: undefined,\n props: {\n ...schema.props,\n // 循环下 key 不能为常量,这样会造成 key 值重复,渲染异常\n key: isJSExpression(schema.props?.key) ? schema.props?.key : null,\n },\n },\n loopSelf,\n parentInfo,\n idx ? `${idx}_${i}` : i,\n )\n })\n }\n\n get __designModeIsDesign() {\n const { engine } = this.context || {}\n return engine?.props?.designMode === 'design'\n }\n\n __parseProps = (originalProps: any, scope: any, path: string, info: NodeInfo): any => {\n let props = originalProps\n const { schema, Comp, componentInfo = {} } = info\n const propInfo = getValue(componentInfo.props, path)\n // FIXME: 将这行逻辑外置,解耦,线上环境不要验证参数,调试环境可以有,通过传参自定义\n const propType = propInfo?.extra?.propType\n\n const checkProps = (value: any) => {\n if (!propType) {\n return value\n }\n return checkPropTypes(value, path, propType, componentInfo.name) ? value : undefined\n }\n\n const parseReactNode = (data: any, params: any) => {\n if (isEmpty(params)) {\n const virtualDom = this.__createVirtualDom(data, scope, { schema, Comp } as NodeInfo)\n return checkProps(virtualDom)\n }\n return checkProps((...argValues: any[]) => {\n const args: any = {}\n if (Array.isArray(params) && params.length) {\n params.forEach((item, idx) => {\n if (typeof item === 'string') {\n args[item] = argValues[idx]\n } else if (item && typeof item === 'object') {\n args[item.name] = argValues[idx]\n }\n })\n }\n args.__proto__ = scope\n return scope.__createVirtualDom(data, args, { schema, Comp } as NodeInfo)\n })\n }\n\n if (isJSExpression(props)) {\n props = this.__parseExpression(props, scope)\n // 只有当变量解析出来为模型结构的时候才会继续解析\n if (!isSchema(props)) {\n return checkProps(props)\n }\n }\n\n if (isJSFunction(props)) {\n props = transformStringToFunction(props.value)\n }\n\n // 兼容通过componentInfo判断的情况\n if (isSchema(props)) {\n const isReactNodeFunction = !!(propInfo?.type === 'ReactNode' && propInfo?.props?.type === 'function')\n\n const isMixinReactNodeFunction = !!(\n propInfo?.type === 'Mixin' &&\n propInfo?.props?.types?.indexOf('ReactNode') > -1 &&\n propInfo?.props?.reactNodeProps?.type === 'function'\n )\n\n let params = null\n if (isReactNodeFunction) {\n params = propInfo?.props?.params\n } else if (isMixinReactNodeFunction) {\n params = propInfo?.props?.reactNodeProps?.params\n }\n return parseReactNode(props, params)\n }\n if (Array.isArray(props)) {\n return checkProps(\n props.map((item, idx) => this.__parseProps(item, scope, path ? `${path}.${idx}` : `${idx}`, info)),\n )\n }\n if (typeof props === 'function') {\n return checkProps(props.bind(scope))\n }\n if (props && typeof props === 'object') {\n if (props.$$typeof) {\n return checkProps(props)\n }\n const res: any = {}\n forEach(props, (val: any, key: string) => {\n if (key.startsWith('__')) {\n res[key] = val\n return\n }\n res[key] = this.__parseProps(val, scope, path ? `${path}.${key}` : key, info)\n })\n return checkProps(res)\n }\n return checkProps(props)\n }\n\n $(id: string, instance?: any) {\n this.__instanceMap = this.__instanceMap || {}\n if (!id || typeof id !== 'string') {\n return this.__instanceMap\n }\n if (instance) {\n this.__instanceMap[id] = instance\n }\n return this.__instanceMap[id]\n }\n\n __renderContextProvider = (customProps?: object, children?: any) => {\n return (\n <RendererContext.Provider\n value={{\n ...this.context,\n blockContext: this,\n ...(customProps || {}),\n }}\n >\n {children || this.__createDom()}\n </RendererContext.Provider>\n )\n }\n\n __renderContextConsumer = (children: any) => {\n return <RendererContext.Consumer>{children}</RendererContext.Consumer>\n }\n\n __getHOCWrappedComponent(\n OriginalComp: any,\n info: {\n schema: ComponentHocInfo['schema']\n scope: ComponentHocInfo['scope']\n componentInfo?: ComponentHocInfo['componentInfo']\n baseRenderer?: ComponentHocInfo['baseRenderer']\n },\n ) {\n let Comp = OriginalComp\n this.__componentHOCs.forEach(ComponentConstruct => {\n Comp = ComponentConstruct(Comp, {\n componentInfo: {},\n baseRenderer: this,\n ...info,\n })\n })\n\n return Comp\n }\n\n __renderComp(OriginalComp: any, ctxProps: object) {\n let Comp = OriginalComp\n const { __schema, __ctx } = this.props\n const scope: any = {}\n scope.__proto__ = __ctx || this\n Comp = this.__getHOCWrappedComponent(Comp, {\n schema: __schema,\n scope,\n })\n const data = this.__parseProps(__schema?.props, scope, '', {\n schema: __schema,\n Comp,\n componentInfo: {},\n })\n const { className } = data\n const otherProps: any = {}\n const { engine } = this.context || {}\n if (!engine) {\n return null\n }\n\n if (this.__designModeIsDesign) {\n otherProps.__tag = Math.random()\n }\n\n const child = engine.createElement(\n Comp,\n {\n ...data,\n ...this.props,\n ref: this.__getRef,\n className: classnames(\n __schema?.fileName && getFileCssName(__schema.fileName),\n className,\n this.props.className,\n ),\n __id: __schema?.id,\n ...otherProps,\n },\n this.__createDom(),\n )\n return this.__renderContextProvider(ctxProps, child)\n }\n\n __renderContent(children: any) {\n const { __schema } = this.props\n const parsedProps = this.__parseData(__schema.props)\n const className = classnames(\n `lce-${this.__namespace}`,\n __schema?.fileName && getFileCssName(__schema.fileName),\n parsedProps.className,\n this.props.className,\n )\n const style = { ...(parsedProps.style || {}), ...(typeof this.props.style === 'object' ? this.props.style : {}) }\n const id = this.props.id || parsedProps.id\n return (\n <div ref={this.__getRef} className={className} id={id} style={style}>\n {children}\n </div>\n )\n }\n\n __checkSchema = (schema: NodeSchema | undefined, originalExtraComponents: string | string[] = []) => {\n let extraComponents = originalExtraComponents\n if (typeof extraComponents === 'string') {\n extraComponents = [extraComponents]\n }\n\n // const builtin = capitalizeFirstLetter(this.__namespace)\n // const componentNames = [builtin, ...extraComponents]\n const componentNames = [...Object.keys(this.props.__components), ...extraComponents]\n return !isSchema(schema) || !componentNames.includes(schema?.componentName ?? '')\n }\n\n get appHelper() {\n return this.props.__appHelper\n }\n\n get requestHandlersMap() {\n return this.appHelper?.requestHandlersMap\n }\n\n get utils() {\n return this.appHelper?.utils\n }\n\n get constants() {\n return this.appHelper?.constants\n }\n\n // render() {\n // return null\n // }\n }\n}\n","import { baseRendererFactory } from './base'\nimport type { BaseRenderComponent, BaseRendererProps } from './types'\nimport { logger } from './utils'\n\nexport function componentRendererFactory(): BaseRenderComponent {\n const BaseRenderer = baseRendererFactory()\n return class CompRenderer extends BaseRenderer {\n static displayName = 'CompRenderer'\n\n __namespace = 'component'\n\n __afterInit(props: BaseRendererProps, ...rest: any[]) {\n this.__generateCtx({\n component: this,\n })\n const schema = props.__schema || {}\n this.state = this.__parseData(schema.state || {})\n this.__initDataSource(props)\n this.__executeLifeCycleMethod('constructor', [props, ...rest])\n }\n\n render() {\n const { __schema } = this.props\n if (this.__checkSchema(__schema)) {\n return '自定义组件 schema 结构异常!'\n }\n logger.log(`${CompRenderer.displayName} render - ${__schema.componentName}`)\n\n this.__generateCtx({\n component: this,\n })\n this.__render()\n\n const noContainer = this.__parseData(__schema.props?.noContainer)\n\n this.__bindCustomMethods(this.props)\n\n if (noContainer) {\n return this.__renderContextProvider({ compContext: this })\n }\n\n const Comp = this.__getComponentView()\n\n if (!Comp) {\n return this.__renderContent(this.__renderContextProvider({ compContext: this }))\n }\n\n return this.__renderComp(Comp, { compContext: this })\n }\n }\n}\n","import { baseRendererFactory } from './base'\nimport type { BaseRenderComponent, BaseRendererProps } from './types'\nimport { logger } from './utils'\n\nexport function pageRendererFactory(): BaseRenderComponent {\n const BaseRenderer = baseRendererFactory()\n\n return class PageRenderer extends BaseRenderer {\n static displayName = 'PageRenderer'\n\n __namespace = 'page'\n\n __afterInit(props: BaseRendererProps, ...rest: unknown[]) {\n const schema = props.__schema || {}\n this.state = this.__parseData(schema.state || {})\n this.__initDataSource(props)\n this.__executeLifeCycleMethod('constructor', [props, ...rest])\n }\n\n async componentDidUpdate(prevProps: BaseRendererProps, _prevState: any, snapshot: unknown) {\n const { __ctx } = this.props\n // 当编排的时候修改 schema.state 值,需要将最新 schema.state 值 setState\n if (JSON.stringify(prevProps.__schema.state) !== JSON.stringify(this.props.__schema.state)) {\n const newState = this.__parseData(this.props.__schema.state, __ctx)\n this.setState(newState)\n }\n\n super.componentDidUpdate?.(prevProps, _prevState, snapshot)\n }\n\n setState(state: any, callback?: () => void) {\n logger.log('page set state', state)\n super.setState(state, callback)\n }\n\n render() {\n const { __schema } = this.props\n if (this.__checkSchema(__schema)) {\n return '页面schema结构异常!'\n }\n logger.log(`${PageRenderer.displayName} render - ${__schema.componentName}`)\n\n this.__bindCustomMethods(this.props)\n this.__initDataSource(this.props)\n\n this.__generateCtx({\n page: this,\n })\n this.__render()\n\n const Comp = this.__getComponentView()\n\n if (!Comp) {\n return this.__renderContent(this.__renderContextProvider({ pageContext: this }))\n }\n\n return this.__renderComp(Comp, { pageContext: this })\n }\n }\n}\n","import type { NodeSchema } from '@easy-editor/core'\nimport type { FC } from 'react'\nimport { logger } from '../utils'\n\nexport interface FaultComponentProps extends NodeSchema {\n error?: Error | string\n}\n\nconst FaultComponent: FC<FaultComponentProps> = ({ componentName = '', error }) => {\n logger.error(`${componentName} 组件渲染异常, 异常原因: ${(error as Error)?.message || error || '未知'}`)\n\n return (\n <div\n role='alert'\n aria-label={`${componentName} 组件渲染异常`}\n style={{\n width: '100%',\n height: '50px',\n lineHeight: '50px',\n textAlign: 'center',\n fontSize: '15px',\n color: '#ef4444',\n border: '2px solid #ef4444',\n }}\n >\n {componentName} 组件渲染异常,请查看控制台日志\n </div>\n )\n}\n\nexport default FaultComponent\n","import type { NodeSchema } from '@easy-editor/core'\nimport type { FC } from 'react'\nimport { logger } from '../utils'\n\nexport interface NotFoundComponentProps extends NodeSchema {\n enableStrictNotFoundMode?: boolean\n}\n\nconst NotFoundComponent: FC<NotFoundComponentProps> = ({ componentName = '', enableStrictNotFoundMode, children }) => {\n logger.warn(`Component ${componentName} not found`)\n\n if (enableStrictNotFoundMode) {\n return <>{`${componentName} Component Not Found`}</>\n }\n\n return (\n <div\n role='alert'\n aria-label={`${componentName} component not found`}\n style={{\n width: '100%',\n height: '50px',\n lineHeight: '50px',\n textAlign: 'center',\n fontSize: '15px',\n color: '#eab308',\n border: '2px solid #eab308',\n }}\n >\n {/* {children || `${componentName} Component Not Found`} */}\n {`${componentName} Component Not Found`}\n </div>\n )\n}\n\nexport default NotFoundComponent\n","import { type RootSchema, logger } from '@easy-editor/core'\nimport { isEmpty } from 'lodash-es'\nimport { Component, createElement } from 'react'\nimport { adapter } from './adapter'\nimport FaultComponent from './components/FaultComponent'\nimport NotFoundComponent from './components/NotFoundComponent'\nimport { RendererContext } from './context'\nimport type { RenderComponent, RendererProps, RendererState } from './types'\nimport { isSchema } from './utils'\n\nexport function rendererFactory(): RenderComponent {\n const RENDERER_COMPS = adapter.getRenderers()\n\n return class Renderer extends Component<RendererProps> {\n static displayName = 'Renderer'\n\n state: Partial<RendererState> = {}\n\n __ref: any\n\n static defaultProps: RendererProps = {\n appHelper: undefined,\n components: {},\n designMode: 'live',\n suspended: false,\n schema: {} as RootSchema,\n onCompGetRef: () => {},\n onCompGetCtx: () => {},\n thisRequiredInJSE: true,\n }\n\n constructor(props: RendererProps) {\n super(props)\n this.state = {}\n logger.log(`entry.constructor - ${props?.schema?.componentName}`)\n }\n\n async componentDidMount() {\n logger.log(`entry.componentDidMount - ${this.props.schema && this.props.schema.componentName}`)\n }\n\n async componentDidUpdate() {\n logger.log(`entry.componentDidUpdate - ${this.props?.schema?.componentName}`)\n }\n\n async componentWillUnmount() {\n logger.log(`entry.componentWillUnmount - ${this.props?.schema?.componentName}`)\n }\n\n componentDidCatch(error: Error) {\n this.state.engineRenderError = true\n this.state.error = error\n }\n\n shouldComponentUpdate(nextProps: RendererProps) {\n return !nextProps.suspended\n }\n\n __getRef = (ref: any) => {\n this.__ref = ref\n if (ref) {\n this.props.onCompGetRef?.(this.props.schema, ref)\n }\n }\n\n isValidComponent(SetComponent: any) {\n return SetComponent\n }\n\n createElement(SetComponent: any, props: any, children?: any) {\n return (this.props.customCreateElement || createElement)(SetComponent, props, children)\n }\n\n getNotFoundComponent() {\n return this.props.notFoundComponent || NotFoundComponent\n }\n\n getFaultComponent() {\n return this.props.faultComponent || FaultComponent\n }\n\n render() {\n const { schema, designMode, appHelper, components } = this.props\n\n if (isEmpty(schema)) {\n return null\n }\n\n if (!isSchema(schema)) {\n logger.error(\n 'The root component name needs to be one of Page、Block、Component, please check the schema: ',\n schema,\n )\n return '模型结构异常'\n }\n\n logger.log('entry.render')\n const allComponents = { ...components, ...RENDERER_COMPS }\n // TODO: 默认最顶层使用 PageRenderer\n const Comp = allComponents.PageRenderer\n\n if (this.state && this.state.engineRenderError) {\n return createElement(this.getFaultComponent(), {\n componentName: schema.componentName,\n error: this.state.error,\n })\n }\n\n if (!Comp) {\n return null\n }\n\n return (\n <RendererContext.Provider\n value={{\n appHelper,\n components: allComponents,\n engine: this,\n }}\n >\n <Comp\n key={schema.__ctx && `${schema.__ctx.lceKey}_${schema.__ctx.idx || '0'}`}\n // ref={this.__getRef}\n __appHelper={appHelper}\n __components={allComponents}\n __schema={schema}\n __designMode={designMode}\n {...this.props}\n />\n </RendererContext.Provider>\n )\n }\n }\n}\n","export * from './configure-renderer'\nexport * from './renderer-core'\n\nexport const DEV = '_EASY_EDITOR_DEV_'\n"],"names":["SettingRendererContext","createContext","useSettingRendererContext","useContext","error","console","warn","getSetterInfo","field","extraProps","setter","defaultValue","setterProps","setterType","initialValue","isSetterConfig","componentName","props","valueState","multiValue","supportVariable","isUseVariableSetter","SettingSetter","observer","children","setterManager","visible","condition","onChange","value","getValue","component","SetterComponent","mixedSetterProps","createSetterContent","React","createElement","_extends","key","id","selected","top","getNode","newVal","setValue","onInitial","removeProp","name","parent","clearPropValue","SettingFieldItem","customFieldItem","className","htmlFor","title","SettingFieldGroup","customFieldGroup","items","map","item","SettingFieldView","isGroup","SettingRender","editor","designer","get","settingsManager","settings","ctx","useMemo","isLocked","Array","isArray","length","isSameComponent","Provider","Adapter","renderers","setRenderers","setBaseRenderer","BaseRenderer","setPageRenderer","PageRenderer","setComponentRenderer","ComponentRenderer","getRenderers","adapter","RendererContext","useRendererContext","contextFactory","context","window","__appContext","classnames","args","filter","Boolean","join","logger","createLogger","PropTypes2","inSameDomain","location","host","e","getFileCssName","fileName","replace","toLowerCase","split","p","isSchema","schema","every","isValidProps","obj","path","res","reduce","pre","cur","undefined","transformArrayToMap","arr","overwrite","forEach","curKey","parseData","self","options","isJSExpression","parseExpression","str","thisRequired","thisRequiredInJSE","logScope","trim","bind","Object","entries","val","startsWith","isUseLoop","loop","isDesignMode","checkPropTypes","rule","ruleFunction","Function","err","transformStringToFunction","__newFunc","a","b","c","contextArr","push","tarStr","_a","code","__self","parseThisRequiredExpression","isString","toString","call","capitalizeFirstLetter","word","toUpperCase","slice","isReactClass","prototype","isReactComponent","Component","excludePropertyNames","cloneEnumerableProperty","target","origin","excludes","compExtraPropertyNames","keys","d","includes","createForwardRefHocElement","Wrapper","Comp","WrapperComponent","forwardRef","ref","displayName","patchDidCatch","baseRenderer","patchedCatch","originalDidCatch","componentDidCatch","didCatch","errorInfo","setState","engineRenderError","engine","originRender","render","state","getFaultComponent","_componentName","PureComponent","originShouldComponentUpdate","shouldComponentUpdate","nextProps","nextState","cache","Map","compWrapper","info","has","rest","set","RerenderType","LeafCache","event","constructor","documentId","device","initRerenderEvent","container","leaf","clear","dispose","disposeFn","debounceRerender","debounce","rerender","onPropChange","autoRepaintNode","log","onChildrenChange","onVisibleChange","clearRerenderEvent","leafWrapper","componentInfo","scope","__getComponentProps","getProps","__getSchemaChildrenVirtualDom","getChildren","__parseData","__host","curDocumentId","curDevice","__container","setSchemaChangedSymbol","componentCacheId","LeafWrapper","LeafHoc","recordInfo","curEventLeaf","disposeFunctions","__component_tag","renderUnitInfo","makeUnitRenderDebounced","beforeRender","MinimalRenderUnit","export","TRANSFORM_STAGE","RENDER","nodeProps","nodeChildren","childrenInState","makeUnitRender","cacheState","__tag","getDefaultState","recordTime","startTime","endTime","Date","now","nodeCount","currentDocument","getNodeCount","node","postEvent","DESIGNER_EVENT","NODE_RENDER","time","type","componentDidUpdate","componentDidMount","_leaf","initOnPropsChangeEvent","initOnChildrenChangeEvent","initOnVisibleChangeEvent","hidden","__inner__","nodeCacheProps","judgeMiniUnitRender","getRenderUnitInfo","singleRender","minimalUnitId","minimalUnitName","isRoot","componentMeta","isMinimalRenderUnit","hasLoop","UNSAFE_componentWillReceiveProps","componentId","fn","resetState","handlePropsChange","propChangeInfo","newValue","conditionValue","delete","PropsChanged","flag","VisibleChanged","param","ChildChanged","nextChild","componentWillUnmount","hasChildren","compProps","__id","executeLifeCycleMethod","method","lifeCycleMethods","isJSFunction","apply","getSchemaChildren","baseRendererFactory","customBaseRenderer","DEFAULT_LOOP_ARG_ITEM","DEFAULT_LOOP_ARG_INDEX","defaultProps","__schema","contextType","dataSourceMap","__namespace","__compScopes","__instanceMap","__dataHelper","__customMethodsList","__parseExpression","__ref","__styleElement","__beforeInit","__init","__afterInit","__bindCustomMethods","getDerivedStateFromProps","result","getSnapshotBeforeUpdate","__executeLifeCycleMethod","reloadDataSource","Promise","resolve","reject","getInitData","then","isEmpty","forceUpdate","catch","getSchemaChangedSymbol","__getComponentView","__components","customMethodsList","methods","__generateCtx","pageContext","compContext","page","data","__ctx","__initDataSource","__writeCss","css","style","document","setAttribute","head","getElementsByTagName","appendChild","innerHTML","__render","onCompGetCtx","__designModeIsDesign","updateConfig","dataSource","__getRef","onCompGetRef","__createDom","scopeProps","__proto__","_children","parentNodeInfo","__getHOCWrappedComponent","__createVirtualDom","originalSchema","originalScope","parentInfo","idx","__appHelper","appHelper","components","String","idy","lceKey","$$typeof","otherProps","getNotFoundComponent","enableStrictNotFoundMode","useLoop","__createLoopVirtualDom","displayInHook","designMode","__designMode","Math","random","$","refProps","__componentHOCs","child","childVirtualDom","__parseProps","itemArg","loopArgs","indexArg","i","loopSelf","originalProps","propInfo","propType","extra","checkProps","parseReactNode","params","virtualDom","argValues","isReactNodeFunction","isMixinReactNodeFunction","types","indexOf","reactNodeProps","instance","__renderContextProvider","customProps","blockContext","__renderContextConsumer","Consumer","OriginalComp","ComponentConstruct","__renderComp","ctxProps","__renderContent","parsedProps","__checkSchema","originalExtraComponents","extraComponents","componentNames","requestHandlersMap","utils","constants","componentRendererFactory","CompRenderer","noContainer","pageRendererFactory","prevProps","_prevState","snapshot","JSON","stringify","newState","callback","FaultComponent","message","role","width","height","lineHeight","textAlign","fontSize","color","border","NotFoundComponent","Fragment","rendererFactory","RENDERER_COMPS","Renderer","suspended","isValidComponent","SetComponent","customCreateElement","notFoundComponent","faultComponent","allComponents","DEV"],"mappings":"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"}
1
+ {"version":3,"file":"index.production.js","sources":["../../src/configure-renderer/context.ts","../../src/configure-renderer/SettingSetter.tsx","../../src/configure-renderer/index.tsx","../../src/renderer-core/adapter/index.ts","../../src/renderer-core/context.ts","../../src/renderer-core/utils/classnames.ts","../../src/renderer-core/utils/logger.ts","../../src/renderer-core/utils/common.ts","../../src/renderer-core/utils/hoc.ts","../../src/renderer-core/hoc/comp.tsx","../../src/renderer-core/hoc/leaf.tsx","../../src/renderer-core/base.tsx","../../src/renderer-core/component.tsx","../../src/renderer-core/page.tsx","../../src/renderer-core/components/FaultComponent.tsx","../../src/renderer-core/components/NotFoundComponent.tsx","../../src/renderer-core/renderer.tsx","../../src/index.ts"],"sourcesContent":["import type { Editor, SettingField } from '@easy-editor/core'\nimport { type ReactNode, createContext, useContext } from 'react'\n\nexport interface SettingRendererContext {\n editor: Editor\n\n /** 自定义渲染 Field Item */\n customFieldItem?: (field: SettingField, setter: ReactNode) => ReactNode\n\n /** 自定义渲染 Field Item */\n customFieldGroup?: (field: SettingField, setters: ReactNode) => ReactNode\n\n [extra: string]: any\n}\n\nexport const SettingRendererContext = createContext<SettingRendererContext>({} as SettingRendererContext)\n\nexport const useSettingRendererContext = () => {\n try {\n return useContext(SettingRendererContext)\n } catch (error) {\n console.warn('useSettingRendererContext must be used within a SettingRendererContextProvider')\n }\n return {} as SettingRendererContext\n}\n","import { type DynamicSetterProps, type SettingField, isSetterConfig } from '@easy-editor/core'\nimport { observer } from 'mobx-react'\nimport type { PropsWithChildren, ReactNode } from 'react'\nimport { useSettingRendererContext } from './context'\n\nconst getSetterInfo = (field: SettingField) => {\n const { extraProps, setter } = field\n const { defaultValue } = extraProps\n\n let setterProps:\n | ({\n setters?: (ReactNode | string)[]\n } & Record<string, unknown>)\n | DynamicSetterProps = {}\n let setterType: any\n let initialValue: any = null\n\n if (isSetterConfig(setter)) {\n setterType = setter.componentName\n if (setter.props) {\n setterProps = setter.props\n if (typeof setterProps === 'function') {\n setterProps = setterProps(field)\n }\n }\n if (setter.defaultValue != null) {\n initialValue = setter.defaultValue\n }\n } else if (setter) {\n setterType = setter\n }\n\n if (defaultValue != null && !('defaultValue' in setterProps)) {\n setterProps.defaultValue = defaultValue\n if (initialValue == null) {\n initialValue = defaultValue\n }\n }\n\n if (field.valueState === -1) {\n setterProps.multiValue = true\n }\n\n // 根据是否支持变量配置做相应的更改\n const supportVariable = field.extraProps?.supportVariable\n const isUseVariableSetter = supportVariable\n if (isUseVariableSetter === false) {\n return {\n setterProps,\n initialValue,\n setterType,\n }\n }\n\n return {\n setterProps,\n setterType,\n initialValue,\n }\n}\n\ninterface SettingSetterProps extends PropsWithChildren {\n field: SettingField\n}\n\nexport const SettingSetter = observer(({ field, children }: SettingSetterProps) => {\n const { setterManager } = useSettingRendererContext()\n const { extraProps } = field\n const visible =\n extraProps?.condition && typeof extraProps.condition === 'function' ? extraProps.condition(field) !== false : true\n\n if (!visible) {\n return null\n }\n\n const { setterProps = {}, setterType, initialValue = null } = getSetterInfo(field)\n const onChange = extraProps?.onChange\n const value = field.valueState === -1 ? null : field.getValue()\n const { component: SetterComponent, props: mixedSetterProps } = setterManager.createSetterContent(\n setterType,\n setterProps,\n )\n\n return (\n <SetterComponent\n key={field.id}\n field={field}\n selected={field.top?.getNode()}\n initialValue={initialValue}\n value={value}\n onChange={(newVal: any) => {\n field.setValue(newVal)\n onChange?.(field, newVal)\n }}\n onInitial={() => {\n if (initialValue == null) {\n return\n }\n const value = typeof initialValue === 'function' ? initialValue(field) : initialValue\n field.setValue(value, true)\n }}\n removeProp={() => {\n if (field.name) {\n field.parent.clearPropValue(field.name)\n }\n }}\n {...mixedSetterProps}\n >\n {children}\n </SetterComponent>\n )\n})\n","import type { Designer, SetterManager, SettingField } from '@easy-editor/core'\nimport { observer } from 'mobx-react'\nimport { useMemo } from 'react'\nimport { SettingSetter } from './SettingSetter'\nimport { SettingRendererContext, useSettingRendererContext } from './context'\n\ninterface SettingFieldProps {\n field: SettingField\n}\n\nconst SettingFieldItem = observer<React.FC<SettingFieldProps>>(({ field }) => {\n const { customFieldItem } = useSettingRendererContext()\n\n if (customFieldItem) {\n return customFieldItem(field, <SettingSetter field={field} />)\n }\n\n return (\n <div className='space-y-2'>\n <label htmlFor={field.id} className='block text-sm font-medium text-gray-700'>\n {field.title}\n </label>\n <SettingSetter field={field} />\n </div>\n )\n})\n\nconst SettingFieldGroup = observer<React.FC<SettingFieldProps>>(({ field }) => {\n const { customFieldGroup } = useSettingRendererContext()\n\n if (customFieldGroup) {\n return customFieldGroup(\n field,\n <SettingSetter field={field}>\n {field.items?.map(item => (\n <SettingFieldView key={item.id} field={item} />\n ))}\n </SettingSetter>,\n )\n }\n\n return (\n <SettingSetter field={field}>\n {field.items?.map(item => (\n <SettingFieldView key={item.id} field={item} />\n ))}\n </SettingSetter>\n )\n})\n\nexport const SettingFieldView: React.FC<SettingFieldProps> = ({ field }) => {\n if (field.isGroup) {\n return <SettingFieldGroup field={field} key={field.id} />\n } else {\n return <SettingFieldItem field={field} key={field.id} />\n }\n}\n\ninterface SettingRenderProps extends SettingRendererContext {}\n\nexport const SettingRender = observer<React.FC<SettingRenderProps>>(props => {\n const { editor, customFieldItem, customFieldGroup } = props\n const designer = editor.get<Designer>('designer')!\n const setterManager = editor.get<SetterManager>('setterManager')!\n const { settingsManager } = designer\n const { settings } = settingsManager\n const items = settings?.items\n\n const ctx = useMemo(() => {\n const ctx = {} as SettingRendererContext\n ctx.setterManager = setterManager\n ctx.settingsManager = settingsManager\n ctx.customFieldItem = customFieldItem\n ctx.customFieldGroup = customFieldGroup\n\n return ctx\n }, [setterManager, settingsManager, customFieldItem, customFieldGroup])\n\n if (!settings) {\n // 未选中节点,提示选中 或者 显示根节点设置\n return (\n <div className='lc-settings-main'>\n <div className='lc-settings-notice'>\n <p>Please select a node in canvas</p>\n </div>\n </div>\n )\n }\n\n // 当节点被锁定,且未开启锁定后容器可设置属性\n if (settings.isLocked) {\n return (\n <div className='lc-settings-main'>\n <div className='lc-settings-notice'>\n <p>Current node is locked</p>\n </div>\n </div>\n )\n }\n if (Array.isArray(settings.items) && settings.items.length === 0) {\n return (\n <div className='lc-settings-main'>\n <div className='lc-settings-notice'>\n <p>No config found for this type of component</p>\n </div>\n </div>\n )\n }\n\n if (!settings.isSameComponent) {\n // TODO: future support 获取设置项交集编辑\n return (\n <div className='lc-settings-main'>\n <div className='lc-settings-notice'>\n <p>Please select same kind of components</p>\n </div>\n </div>\n )\n }\n\n return (\n <SettingRendererContext.Provider value={ctx}>\n {items?.map(item => (\n <SettingFieldView key={item.id} field={item} />\n ))}\n </SettingRendererContext.Provider>\n )\n})\n","import type { ComponentType } from 'react'\nimport type { BaseRenderComponent } from '../types'\n\nexport interface RendererModules {\n BaseRenderer?: BaseRenderComponent\n PageRenderer: BaseRenderComponent\n ComponentRenderer: BaseRenderComponent\n}\n\nclass Adapter {\n // @ts-ignore\n renderers: RendererModules = {}\n\n setRenderers(renderers: RendererModules) {\n this.renderers = renderers\n }\n\n setBaseRenderer(BaseRenderer: BaseRenderComponent) {\n this.renderers.BaseRenderer = BaseRenderer\n }\n\n setPageRenderer(PageRenderer: BaseRenderComponent) {\n this.renderers.PageRenderer = PageRenderer\n }\n\n setComponentRenderer(ComponentRenderer: BaseRenderComponent) {\n this.renderers.ComponentRenderer = ComponentRenderer\n }\n\n getRenderers() {\n return (this.renderers || {}) as unknown as Record<string, ComponentType<any>>\n }\n}\n\nexport const adapter = new Adapter()\n","import { createContext, useContext } from 'react'\n\nexport interface RendererContext {\n [extra: string]: any\n}\n\nexport const RendererContext = createContext<RendererContext>({} as RendererContext)\n\nexport const useRendererContext = () => {\n try {\n return useContext(RendererContext)\n } catch (error) {\n console.warn('useRendererContext must be used within a RendererContextProvider')\n }\n return {} as RendererContext\n}\n\nexport function contextFactory() {\n let context = (window as any).__appContext\n if (!context) {\n context = createContext({})\n ;(window as any).__appContext = context\n }\n return context\n}\n","export const classnames = (...args: any[]) => {\n return args.filter(Boolean).join(' ')\n}\n","import { createLogger } from '@easy-editor/core'\n\nexport const logger = createLogger('Renderer')\n","import { type NodeSchema, isJSExpression } from '@easy-editor/core'\n// import { default as factoryWithTypeCheckers } from 'prop-types/factoryWithTypeCheckers'\n// import { default as ReactPropTypesSecret } from 'prop-types/lib/ReactPropTypesSecret'\nimport { Component, type ComponentClass, type ComponentType } from 'react'\nimport { logger } from './logger'\n\n// const PropTypes2 = factoryWithTypeCheckers(ReactIs.isElement, true)\nconst PropTypes2 = true\n\nexport function inSameDomain() {\n try {\n return window.parent !== window && window.parent.location.host === window.location.host\n } catch (e) {\n return false\n }\n}\n\n/**\n * get css styled name from schema`s fileName\n * FileName -> lce-file-name\n * @returns string\n */\nexport function getFileCssName(fileName: string) {\n if (!fileName) {\n return\n }\n const name = fileName.replace(/([A-Z])/g, '-$1').toLowerCase()\n return `lce-${name}`\n .split('-')\n .filter(p => !!p)\n .join('-')\n}\n\nexport const isSchema = (schema: any): schema is NodeSchema => {\n if (!schema) {\n return false\n }\n // Leaf and Slot should be valid\n if (schema.componentName === 'Leaf' || schema.componentName === 'Slot') {\n return true\n }\n if (Array.isArray(schema)) {\n return schema.every(item => isSchema(item))\n }\n // check if props is valid\n const isValidProps = (props: any) => {\n if (!props) {\n return false\n }\n return typeof schema.props === 'object' && !Array.isArray(props)\n }\n return !!(schema.componentName && isValidProps(schema.props))\n}\n\nexport const getValue = (obj: any, path: string, defaultValue = {}) => {\n // array is not valid type, return default value\n if (Array.isArray(obj)) {\n return defaultValue\n }\n\n if (!obj || typeof obj !== 'object') {\n return defaultValue\n }\n\n const res = path.split('.').reduce((pre, cur) => {\n return pre && pre[cur]\n }, obj)\n if (res === undefined) {\n return defaultValue\n }\n return res\n}\n\nexport function transformArrayToMap(arr: any[], key: string, overwrite = true) {\n if (!arr || !Array.isArray(arr)) {\n return {}\n }\n const res: any = {}\n arr.forEach(item => {\n const curKey = item[key]\n if (item[key] === undefined) {\n return\n }\n if (res[curKey] && !overwrite) {\n return\n }\n res[curKey] = item\n })\n return res\n}\n\ninterface IParseOptions {\n logScope?: string\n}\n\nexport const parseData = (schema: unknown, self: any, options: IParseOptions = {}): any => {\n if (isJSExpression(schema)) {\n return parseExpression({\n str: schema,\n self,\n thisRequired: true,\n logScope: options.logScope,\n })\n }\n if (typeof schema === 'string') {\n return schema.trim()\n } else if (Array.isArray(schema)) {\n return schema.map(item => parseData(item, self, options))\n } else if (typeof schema === 'function') {\n return schema.bind(self)\n } else if (typeof schema === 'object') {\n // 对于undefined及null直接返回\n if (!schema) {\n return schema\n }\n const res: any = {}\n Object.entries(schema).forEach(([key, val]) => {\n if (key.startsWith('__')) {\n return\n }\n res[key] = parseData(val, self, options)\n })\n return res\n }\n return schema\n}\n\nexport const isUseLoop = (loop: null | any[], isDesignMode: boolean): boolean => {\n if (!isDesignMode) {\n return true\n }\n\n if (!Array.isArray(loop)) {\n return false\n }\n\n return loop.length > 0\n}\n\nexport function checkPropTypes(value: any, name: string, rule: any, componentName: string): boolean {\n let ruleFunction = rule\n if (typeof rule === 'string') {\n ruleFunction = new Function(`\"use strict\"; const PropTypes = arguments[0]; return ${rule}`)(PropTypes2)\n }\n if (!ruleFunction || typeof ruleFunction !== 'function') {\n logger.warn('checkPropTypes should have a function type rule argument')\n return true\n }\n const err = ruleFunction(\n {\n [name]: value,\n },\n name,\n componentName,\n 'prop',\n null,\n // ReactPropTypesSecret,\n )\n if (err) {\n logger.warn(err)\n }\n return !err\n}\n\n/**\n * transform string to a function\n * @param str function in string form\n * @returns funtion\n */\nexport function transformStringToFunction(str: string) {\n if (typeof str !== 'string') {\n return str\n }\n if (inSameDomain() && (window.parent as any).__newFunc) {\n return (window.parent as any).__newFunc(`\"use strict\"; return ${str}`)()\n } else {\n return new Function(`\"use strict\"; return ${str}`)()\n }\n}\n\n/**\n * 对象类型JSExpression,支持省略this\n * @param str expression in string form\n * @param self scope object\n * @returns funtion\n */\nfunction parseExpression(options: {\n str: any\n self: any\n thisRequired?: boolean\n logScope?: string\n}): any\nfunction parseExpression(str: any, self: any, thisRequired?: boolean): any\nfunction parseExpression(a: any, b?: any, c = false) {\n let str\n let self\n let thisRequired\n let logScope\n if (typeof a === 'object' && b === undefined) {\n str = a.str\n self = a.self\n thisRequired = a.thisRequired\n logScope = a.logScope\n } else {\n str = a\n self = b\n thisRequired = c\n }\n try {\n const contextArr = ['\"use strict\";', 'var __self = arguments[0];']\n contextArr.push('return ')\n let tarStr: string\n\n tarStr = (str.value || '').trim()\n\n // NOTE: use __self replace 'this' in the original function str\n // may be wrong in extreme case which contains '__self' already\n tarStr = tarStr.replace(/this(\\W|$)/g, (_a: any, b: any) => `__self${b}`)\n tarStr = contextArr.join('\\n') + tarStr\n\n // 默认调用顶层窗口的parseObj, 保障new Function的window对象是顶层的window对象\n if (inSameDomain() && (window.parent as any).__newFunc) {\n return (window.parent as any).__newFunc(tarStr)(self)\n }\n const code = `with(${thisRequired ? '{}' : '$scope || {}'}) { ${tarStr} }`\n return new Function('$scope', code)(self)\n } catch (err) {\n logger.error(`${logScope || ''} parseExpression.error`, err, str, self?.__self ?? self)\n return undefined\n }\n}\n\nexport { parseExpression }\n\nexport function parseThisRequiredExpression(str: any, self: any) {\n return parseExpression(str, self, true)\n}\n\n/**\n * check str passed in is a string type of not\n * @param str obj to be checked\n * @returns boolean\n */\nexport function isString(str: any): boolean {\n return {}.toString.call(str) === '[object String]'\n}\n\n/**\n * capitalize first letter\n * @param word string to be proccessed\n * @returns string capitalized string\n */\nexport function capitalizeFirstLetter(word: string) {\n if (!word || !isString(word) || word.length === 0) {\n return word\n }\n return word[0].toUpperCase() + word.slice(1)\n}\n\nexport const isReactClass = (obj: any): obj is ComponentClass<any> => {\n return obj && obj.prototype && (obj.prototype.isReactComponent || obj.prototype instanceof Component)\n}\n\nexport function isReactComponent(obj: any): obj is ComponentType<any> {\n return obj && (isReactClass(obj) || typeof obj === 'function')\n}\n","import { createElement } from 'react'\n\nimport { forwardRef } from 'react'\n\nconst excludePropertyNames = [\n '$$typeof',\n 'render',\n 'defaultProps',\n 'props',\n 'length',\n 'prototype',\n 'name',\n 'caller',\n 'callee',\n 'arguments',\n]\n\nexport const cloneEnumerableProperty = (target: any, origin: any, excludes = excludePropertyNames) => {\n const compExtraPropertyNames = Object.keys(origin).filter(d => !excludes.includes(d))\n\n compExtraPropertyNames.forEach((d: string) => {\n ;(target as any)[d] = origin[d]\n })\n\n return target\n}\n\nexport const createForwardRefHocElement = (Wrapper: any, Comp: any) => {\n const WrapperComponent = cloneEnumerableProperty(\n forwardRef((props: any, ref: any) => {\n return createElement(Wrapper, { ...props, forwardRef: ref })\n }),\n Comp,\n )\n WrapperComponent.displayName = Comp.displayName\n\n return WrapperComponent\n}\n","import { Component, PureComponent, createElement } from 'react'\nimport type { RendererProps } from '../types'\nimport { createForwardRefHocElement } from '../utils'\nimport type { ComponentConstruct, ComponentHocInfo } from './leaf'\n\nconst patchDidCatch = (Comp: any, { baseRenderer }: ComponentHocInfo) => {\n if (Comp.patchedCatch) {\n return\n }\n Comp.patchedCatch = true\n const originalDidCatch = Comp.prototype.componentDidCatch\n Comp.prototype.componentDidCatch = function didCatch(this: any, error: Error, errorInfo: any) {\n this.setState({ engineRenderError: true, error })\n if (originalDidCatch && typeof originalDidCatch === 'function') {\n originalDidCatch.call(this, error, errorInfo)\n }\n }\n\n const { engine } = baseRenderer.context\n const originRender = Comp.prototype.render\n Comp.prototype.render = function () {\n if (this.state && this.state.engineRenderError) {\n this.state.engineRenderError = false\n return engine.createElement(engine.getFaultComponent(), {\n ...this.props,\n error: this.state.error,\n componentName: this.props._componentName,\n })\n }\n return originRender.call(this)\n }\n if (!(Comp.prototype instanceof PureComponent)) {\n const originShouldComponentUpdate = Comp.prototype.shouldComponentUpdate\n Comp.prototype.shouldComponentUpdate = function (nextProps: RendererProps, nextState: any) {\n if (nextState && nextState.engineRenderError) {\n return true\n }\n return originShouldComponentUpdate ? originShouldComponentUpdate.call(this, nextProps, nextState) : true\n }\n }\n}\n\nconst cache = new Map<string, { Comp: any; WrapperComponent: any }>()\n\nexport const compWrapper: ComponentConstruct = (Comp, info) => {\n if (Comp?.prototype?.isReactComponent || Comp?.prototype instanceof Component) {\n patchDidCatch(Comp, info)\n return Comp\n }\n\n if (info.schema.id && cache.has(info.schema.id) && cache.get(info.schema.id)?.Comp === Comp) {\n return cache.get(info.schema.id)?.WrapperComponent\n }\n\n class Wrapper extends Component<any> {\n static displayName = Comp.displayName\n\n render() {\n const { forwardRef, ...rest } = this.props\n // @ts-ignore\n return createElement(Comp, { ...rest, ref: forwardRef })\n }\n }\n\n patchDidCatch(Wrapper, info)\n\n const WrapperComponent = createForwardRefHocElement(Wrapper, Comp)\n\n info.schema.id && cache.set(info.schema.id, { WrapperComponent, Comp })\n\n return WrapperComponent\n}\n","import { DESIGNER_EVENT, type Node, type NodeSchema, TRANSFORM_STAGE } from '@easy-editor/core'\nimport { debounce } from 'lodash-es'\nimport { Component, type ComponentType } from 'react'\nimport type { BaseRendererInstance, Schema } from '../types'\nimport { createForwardRefHocElement, logger } from '../utils'\n\nexport interface ComponentHocInfo {\n schema: Schema\n baseRenderer: BaseRendererInstance\n componentInfo: any\n scope: any\n}\n\nexport type ComponentConstruct = (Comp: ComponentType, info: ComponentHocInfo) => ComponentType\n\nexport interface ComponentHocProps {\n __tag: any\n componentId: any\n _leaf: any\n forwardedRef?: any\n\n children?: any | undefined\n}\n\nexport interface ComponentHocState {\n childrenInState: boolean\n nodeChildren: any\n nodeCacheProps: any\n\n /** 控制是否显示隐藏 */\n visible: boolean\n\n /** 控制是否渲染 */\n condition: boolean\n nodeProps: any\n}\n\ninterface LeftWrapperProps {\n _leaf: Node | undefined\n\n visible: boolean\n\n componentId: number\n\n children?: Node[]\n\n __tag: number\n\n forwardRef?: any\n}\n\nenum RerenderType {\n All = 'All',\n ChildChanged = 'ChildChanged',\n PropsChanged = 'PropsChanged',\n VisibleChanged = 'VisibleChanged',\n MinimalRenderUnit = 'MinimalRenderUnit',\n}\n\n// 缓存 Leaf 层组件,防止重新渲染问题\nclass LeafCache {\n /** 组件缓存 */\n component = new Map()\n\n /**\n * 状态缓存,场景:属性变化后,改组件被销毁,state 为空,没有展示修改后的属性\n */\n state = new Map()\n\n /**\n * 订阅事件缓存,导致 rerender 的订阅事件\n */\n event = new Map()\n\n ref = new Map()\n\n constructor(\n public documentId: string,\n public device: string,\n ) {}\n}\n\nlet cache: LeafCache\n\n/** 部分没有渲染的 node 节点进行兜底处理 or 渲染方式没有渲染 LeafWrapper */\nconst initRerenderEvent = ({ schema, container, getNode }: any) => {\n const leaf = getNode?.(schema.id)\n if (!leaf || cache.event.get(schema.id)?.clear || leaf === cache.event.get(schema.id)) {\n return\n }\n cache.event.get(schema.id)?.dispose.forEach((disposeFn: any) => disposeFn && disposeFn())\n const debounceRerender = debounce(() => {\n container.rerender()\n }, 20)\n cache.event.set(schema.id, {\n clear: false,\n leaf,\n dispose: [\n leaf?.onPropChange?.(() => {\n if (!container.autoRepaintNode) {\n return\n }\n logger.log(\n `${schema.componentName}[${schema.id}] leaf not render in SimulatorRendererView, leaf onPropsChange make rerender`,\n )\n debounceRerender()\n }),\n leaf?.onChildrenChange?.(() => {\n if (!container.autoRepaintNode) {\n return\n }\n logger.log(\n `${schema.componentName}[${schema.id}] leaf not render in SimulatorRendererView, leaf onChildrenChange make rerender`,\n )\n debounceRerender()\n }),\n leaf?.onVisibleChange?.(() => {\n if (!container.autoRepaintNode) {\n return\n }\n logger.log(\n `${schema.componentName}[${schema.id}] leaf not render in SimulatorRendererView, leaf onVisibleChange make rerender`,\n )\n debounceRerender()\n }),\n ],\n })\n}\n\n/** 渲染的 node 节点全局注册事件清除 */\nconst clearRerenderEvent = (id: string): void => {\n if (cache.event.get(id)?.clear) {\n return\n }\n cache.event.get(id)?.dispose?.forEach((disposeFn: any) => disposeFn && disposeFn())\n cache.event.set(id, {\n clear: true,\n dispose: [],\n })\n}\n\n// 给每个组件包裹一个 HOC Leaf,支持组件内部属性变化,自响应渲染\nexport const leafWrapper: ComponentConstruct = (Comp, { schema, baseRenderer, componentInfo, scope }) => {\n const { __getComponentProps: getProps, __getSchemaChildrenVirtualDom: getChildren, __parseData } = baseRenderer\n const { engine } = baseRenderer.context\n const host = baseRenderer.props?.__host\n const curDocumentId = baseRenderer.props?.documentId ?? ''\n const curDevice = baseRenderer.props?.device ?? ''\n const getNode = baseRenderer.props?.getNode\n const container = baseRenderer.props?.__container\n const setSchemaChangedSymbol = baseRenderer.props?.setSchemaChangedSymbol\n const designer = host?.designer\n\n const componentCacheId = schema.id\n\n if (!cache || (curDocumentId && curDocumentId !== cache.documentId) || (curDevice && curDevice !== cache.device)) {\n cache?.event.forEach(event => {\n event.dispose?.forEach((disposeFn: any) => disposeFn && disposeFn())\n })\n cache = new LeafCache(curDocumentId, curDevice)\n }\n\n // if (!isReactComponent(Comp)) {\n // logger.error(`${schema.componentName} component may be has errors: `, Comp)\n // }\n\n initRerenderEvent({\n schema,\n container,\n getNode,\n })\n\n if (curDocumentId && cache.component.has(componentCacheId) && cache.component.get(componentCacheId).Comp === Comp) {\n return cache.component.get(componentCacheId).LeafWrapper\n }\n\n class LeafHoc extends Component<LeftWrapperProps, ComponentHocState> {\n recordInfo: {\n startTime?: number | null\n type?: string\n node?: Node\n } = {}\n\n private curEventLeaf: Node | undefined\n\n static displayName = schema.componentName\n\n disposeFunctions: Array<(() => void) | Function> = []\n\n __component_tag = 'leafWrapper'\n\n renderUnitInfo: {\n minimalUnitId?: string\n minimalUnitName?: string\n singleRender?: boolean\n }\n\n // 最小渲染单元做防抖处理\n makeUnitRenderDebounced = debounce(() => {\n this.beforeRender(RerenderType.MinimalRenderUnit)\n const schema = this.leaf?.export?.(TRANSFORM_STAGE.RENDER)\n if (!schema) {\n return\n }\n const nextProps = getProps(schema, scope, Comp, componentInfo)\n const children = getChildren(schema, scope, Comp)\n const nextState = {\n nodeProps: nextProps,\n nodeChildren: children,\n childrenInState: true,\n }\n if ('children' in nextProps) {\n nextState.nodeChildren = nextProps.children\n }\n\n logger.log(`${this.leaf?.componentName}(${this.leaf?.id}) MinimalRenderUnit Render!`)\n this.setState(nextState)\n }, 20)\n\n constructor(props: LeftWrapperProps) {\n super(props)\n // 监听以下事件,当变化时更新自己\n logger.log(`${schema.componentName}[${this.leaf?.id}] leaf render in SimulatorRendererView`)\n componentCacheId && clearRerenderEvent(componentCacheId)\n this.curEventLeaf = this.leaf\n\n cache.ref.set(componentCacheId, {\n makeUnitRender: this.makeUnitRender,\n })\n\n let cacheState = cache.state.get(componentCacheId)\n if (!cacheState || cacheState.__tag !== props.__tag) {\n cacheState = this.getDefaultState(props)\n }\n\n this.state = cacheState\n }\n\n recordTime = () => {\n if (!this.recordInfo.startTime) {\n return\n }\n const endTime = Date.now()\n const nodeCount = host?.designer?.currentDocument?.getNodeCount?.()\n const componentName = this.recordInfo.node?.componentName || this.leaf?.componentName || 'UnknownComponent'\n designer?.postEvent(DESIGNER_EVENT.NODE_RENDER, {\n componentName,\n time: endTime - this.recordInfo.startTime,\n type: this.recordInfo.type,\n nodeCount,\n })\n this.recordInfo.startTime = null\n }\n\n makeUnitRender = () => {\n this.makeUnitRenderDebounced()\n }\n\n get autoRepaintNode() {\n return container?.autoRepaintNode\n }\n\n componentDidUpdate() {\n this.recordTime()\n }\n\n componentDidMount() {\n const _leaf = this.leaf\n this.initOnPropsChangeEvent(_leaf)\n this.initOnChildrenChangeEvent(_leaf)\n this.initOnVisibleChangeEvent(_leaf)\n this.recordTime()\n }\n\n getDefaultState(nextProps: any) {\n const { hidden = false, condition = true } =\n nextProps.__inner__ || this.leaf?.export?.(TRANSFORM_STAGE.RENDER) || {}\n\n return {\n nodeChildren: null,\n childrenInState: false,\n visible: !hidden,\n condition: __parseData?.(condition, scope),\n nodeCacheProps: {},\n nodeProps: {},\n }\n }\n\n setState(state: any) {\n cache.state.set(componentCacheId, {\n ...this.state,\n ...state,\n __tag: this.props.__tag,\n })\n super.setState(state)\n }\n\n /** 由于内部属性变化,在触发渲染前,会执行该函数 */\n beforeRender(type: string, node?: Node): void {\n this.recordInfo.startTime = Date.now()\n this.recordInfo.type = type\n this.recordInfo.node = node\n setSchemaChangedSymbol?.(true)\n }\n\n judgeMiniUnitRender() {\n if (!this.renderUnitInfo) {\n this.getRenderUnitInfo()\n }\n\n const renderUnitInfo = this.renderUnitInfo || {\n singleRender: true,\n }\n\n if (renderUnitInfo.singleRender) {\n return\n }\n\n const ref = cache.ref.get(renderUnitInfo.minimalUnitId)\n\n if (!ref) {\n logger.log('Cant find minimalRenderUnit ref! This make rerender!')\n container?.rerender()\n return\n }\n logger.log(\n `${this.leaf?.componentName}(${this.leaf?.id}) need render, make its minimalRenderUnit ${renderUnitInfo.minimalUnitName}(${renderUnitInfo.minimalUnitId})`,\n )\n ref.makeUnitRender()\n }\n\n getRenderUnitInfo(leaf = this.leaf) {\n // leaf 在低代码组件中存在 mock 的情况,退出最小渲染单元判断\n if (!leaf || typeof leaf.isRoot !== 'function') {\n return\n }\n\n if (leaf.isRoot) {\n this.renderUnitInfo = {\n singleRender: true,\n ...(this.renderUnitInfo || {}),\n }\n }\n if (leaf.componentMeta.isMinimalRenderUnit) {\n this.renderUnitInfo = {\n minimalUnitId: leaf.id,\n minimalUnitName: leaf.componentName,\n singleRender: false,\n }\n }\n if (leaf.hasLoop()) {\n // 含有循环配置的元素,父元素是最小渲染单元\n this.renderUnitInfo = {\n minimalUnitId: leaf?.parent?.id,\n minimalUnitName: leaf?.parent?.componentName,\n singleRender: false,\n }\n }\n if (leaf.parent) {\n this.getRenderUnitInfo(leaf.parent)\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: any) {\n const { componentId } = nextProps\n if (nextProps.__tag === this.props.__tag) {\n return null\n }\n\n const _leaf = getNode?.(componentId)\n if (_leaf && this.curEventLeaf && _leaf !== this.curEventLeaf) {\n this.disposeFunctions.forEach(fn => fn())\n this.disposeFunctions = []\n this.initOnChildrenChangeEvent(_leaf)\n this.initOnPropsChangeEvent(_leaf)\n this.initOnVisibleChangeEvent(_leaf)\n this.curEventLeaf = _leaf\n }\n\n const { visible, ...resetState } = this.getDefaultState(nextProps)\n this.setState(resetState)\n }\n\n /** 监听参数变化 */\n initOnPropsChangeEvent(leaf = this.leaf): void {\n // const handlePropsChange = debounce((propChangeInfo: PropChangeInfo) => {\n const handlePropsChange = debounce((propChangeInfo: any) => {\n const { key, newValue = null } = propChangeInfo\n const node = leaf\n\n if (key === '___condition___') {\n const { condition = true } = this.leaf?.export(TRANSFORM_STAGE.RENDER) || {}\n const conditionValue = __parseData?.(condition, scope)\n logger.log(`key is ___condition___, change condition value to [${condition}]`)\n // 条件表达式改变\n this.setState({\n condition: conditionValue,\n })\n return\n }\n\n // 如果循坏条件变化,从根节点重新渲染\n // 目前多层循坏无法判断需要从哪一层开始渲染,故先粗暴解决\n if (key === '___loop___') {\n logger.log('key is ___loop___, render a page!')\n container?.rerender()\n // 由于 scope 变化,需要清空缓存,使用新的 scope\n cache.component.delete(componentCacheId)\n return\n }\n this.beforeRender(RerenderType.PropsChanged)\n const { state } = this\n const { nodeCacheProps } = state\n const nodeProps = getProps(node?.export?.(TRANSFORM_STAGE.RENDER) as NodeSchema, scope, Comp, componentInfo)\n if (key && !(key in nodeProps) && key in this.props) {\n // 当 key 在 this.props 中时,且不存在在计算值中,需要用 newValue 覆盖掉 this.props 的取值\n nodeCacheProps[key] = newValue\n }\n logger.log(\n `${leaf?.componentName}[${this.leaf?.id}] component trigger onPropsChange!`,\n nodeProps,\n nodeCacheProps,\n key,\n newValue,\n )\n this.setState(\n 'children' in nodeProps\n ? {\n nodeChildren: nodeProps.children,\n nodeProps,\n childrenInState: true,\n nodeCacheProps,\n }\n : {\n nodeProps,\n nodeCacheProps,\n },\n )\n\n this.judgeMiniUnitRender()\n })\n // const dispose = leaf?.onPropChange?.((propChangeInfo: IPublicTypePropChangeOptions) => {\n const dispose = leaf?.onPropChange?.((propChangeInfo: any) => {\n if (!this.autoRepaintNode) {\n return\n }\n handlePropsChange(propChangeInfo)\n })\n\n dispose && this.disposeFunctions.push(dispose)\n }\n\n /**\n * 监听显隐变化\n */\n initOnVisibleChangeEvent(leaf = this.leaf) {\n const dispose = leaf?.onVisibleChange?.((flag: boolean) => {\n if (!this.autoRepaintNode) {\n return\n }\n if (this.state.visible === flag) {\n return\n }\n\n logger.log(`${leaf?.componentName}[${this.leaf?.id}] component trigger onVisibleChange(${flag}) event`)\n this.beforeRender(RerenderType.VisibleChanged)\n this.setState({\n visible: flag,\n })\n this.judgeMiniUnitRender()\n })\n\n dispose && this.disposeFunctions.push(dispose)\n }\n\n /**\n * 监听子元素变化(拖拽,删除...)\n */\n initOnChildrenChangeEvent(leaf = this.leaf) {\n const dispose = leaf?.onChildrenChange?.((param): void => {\n if (!this.autoRepaintNode) {\n return\n }\n const { type, node } = param || {}\n this.beforeRender(`${RerenderType.ChildChanged}-${type}`, node)\n // TODO: 缓存同级其他元素的 children。\n // 缓存二级 children Next 查询筛选组件有问题\n // 缓存一级 children Next Tab 组件有问题\n const nextChild = getChildren(leaf?.export?.(TRANSFORM_STAGE.RENDER) as NodeSchema, scope, Comp)\n logger.log(`${schema.componentName}[${this.leaf?.id}] component trigger onChildrenChange event`, nextChild)\n this.setState({\n nodeChildren: nextChild,\n childrenInState: true,\n })\n this.judgeMiniUnitRender()\n })\n dispose && this.disposeFunctions.push(dispose)\n }\n\n componentWillUnmount() {\n this.disposeFunctions.forEach(fn => fn())\n }\n\n get hasChildren(): boolean {\n if (!this.state.childrenInState) {\n return 'children' in this.props\n }\n\n return true\n }\n\n get children(): any {\n if (this.state.childrenInState) {\n return this.state.nodeChildren\n }\n if (this.props.children && !Array.isArray(this.props.children)) {\n return [this.props.children]\n }\n if (this.props.children && this.props.children.length) {\n return this.props.children\n }\n return this.props.children\n }\n\n get leaf(): Node | undefined {\n // if (this.props._leaf?.isMock) {\n // // 低代码组件作为一个整体更新,其内部的组件不需要监听相关事件\n // return undefined\n // }\n\n return getNode?.(componentCacheId)\n }\n\n render() {\n if (!this.state.visible || !this.state.condition) {\n return null\n }\n\n const { forwardRef, ...rest } = this.props\n\n const compProps = {\n ...rest,\n ...(this.state.nodeCacheProps || {}),\n ...(this.state.nodeProps || {}),\n children: [],\n __id: this.leaf?.id,\n ref: forwardRef,\n }\n\n delete compProps.__inner__\n\n if (this.hasChildren) {\n return engine.createElement(Comp, compProps, this.children)\n }\n\n return engine.createElement(Comp, compProps)\n }\n }\n\n const LeafWrapper = createForwardRefHocElement(LeafHoc, Comp)\n\n cache.component.set(componentCacheId, {\n LeafWrapper,\n Comp,\n })\n\n return LeafWrapper\n}\n","import {\n type CompositeValue,\n type JSONValue,\n type NodeData,\n type NodeSchema,\n type RootSchema,\n isJSExpression,\n isJSFunction,\n} from '@easy-editor/core'\nimport { forEach, isEmpty } from 'lodash-es'\nimport { Component } from 'react'\nimport { adapter } from './adapter'\nimport { RendererContext } from './context'\nimport { type ComponentConstruct, type ComponentHocInfo, compWrapper, leafWrapper } from './hoc'\nimport type { BaseRenderComponent, BaseRendererContext, BaseRendererProps, NodeInfo } from './types'\nimport {\n checkPropTypes,\n classnames,\n getFileCssName,\n getValue,\n isSchema,\n isUseLoop,\n logger,\n parseData,\n parseExpression,\n transformArrayToMap,\n transformStringToFunction,\n} from './utils'\n\n/**\n * execute method in schema.lifeCycles with context\n */\nexport function executeLifeCycleMethod(context: any, schema: RootSchema, method: string, args: any): any {\n if (!context || !isSchema(schema) || !method) {\n return\n }\n const lifeCycleMethods = getValue(schema, 'lifeCycles', {})\n let fn = lifeCycleMethods[method]\n\n if (!fn) {\n return\n }\n\n // TODO: cache\n if (isJSExpression(fn) || isJSFunction(fn)) {\n fn = parseExpression(fn, context, true)\n }\n\n if (typeof fn !== 'function') {\n logger.error(`生命周期${method}类型不符`, fn)\n return\n }\n\n try {\n return fn.apply(context, args)\n } catch (e) {\n logger.error(`[${schema.componentName}]生命周期${method}出错`, e)\n }\n}\n\n/**\n * get children from a node schema\n */\nexport function getSchemaChildren(schema: NodeSchema | undefined) {\n if (!schema) {\n return\n }\n\n return schema.children\n}\n\nexport function baseRendererFactory(): BaseRenderComponent {\n const { BaseRenderer: customBaseRenderer } = adapter.getRenderers()\n\n if (customBaseRenderer) {\n return customBaseRenderer as unknown as BaseRenderComponent\n }\n\n const DEFAULT_LOOP_ARG_ITEM = 'item'\n const DEFAULT_LOOP_ARG_INDEX = 'index'\n // const scopeIdx = 0\n\n return class BaseRenderer extends Component<BaseRendererProps, BaseRendererProps> {\n [key: string]: any\n\n static displayName = 'BaseRenderer'\n\n static defaultProps = {\n __schema: {},\n }\n\n static contextType = RendererContext\n declare context: BaseRendererContext\n\n dataSourceMap: Record<string, any> = {}\n\n __namespace = 'base'\n __compScopes: Record<string, any> = {}\n __instanceMap: Record<string, any> = {}\n __dataHelper: any\n\n /**\n * keep track of customMethods added to this context\n *\n * @type {any}\n */\n __customMethodsList: any[] = []\n __parseExpression: any\n __ref: any\n\n /**\n * reference of style element contains schema.css\n *\n * @type {any}\n */\n __styleElement: any\n\n constructor(props: BaseRendererProps) {\n super(props)\n this.__parseExpression = (str: string, self: any) => {\n return parseExpression({ str, self, logScope: props.componentName })\n }\n this.__beforeInit(props)\n this.__init(props)\n this.__afterInit(props)\n logger.log(`constructor - ${props?.__schema?.fileName}`)\n }\n\n __beforeInit(props: BaseRendererProps) {}\n\n __init(props: BaseRendererProps) {\n this.__compScopes = {}\n this.__instanceMap = {}\n this.__bindCustomMethods(props)\n }\n\n __afterInit(props: BaseRendererProps) {}\n\n static getDerivedStateFromProps(props: BaseRendererProps, state: any) {\n const result = executeLifeCycleMethod(this, props?.__schema, 'getDerivedStateFromProps', [props, state])\n return result === undefined ? null : result\n }\n\n async getSnapshotBeforeUpdate(...args: any[]) {\n this.__executeLifeCycleMethod('getSnapshotBeforeUpdate', args)\n logger.log(`getSnapshotBeforeUpdate - ${this.props?.__schema?.componentName}`)\n }\n\n async componentDidMount(...args: any[]) {\n this.reloadDataSource()\n this.__executeLifeCycleMethod('componentDidMount', args)\n logger.log(`componentDidMount - ${this.props?.__schema?.componentName}`)\n }\n\n async componentDidUpdate(...args: any[]) {\n this.__executeLifeCycleMethod('componentDidUpdate', args)\n logger.log(`componentDidUpdate - ${this.props.__schema.componentName}`)\n }\n\n async componentWillUnmount(...args: any[]) {\n this.__executeLifeCycleMethod('componentWillUnmount', args)\n logger.log(`componentWillUnmount - ${this.props?.__schema?.componentName}`)\n }\n\n async componentDidCatch(...args: any[]) {\n this.__executeLifeCycleMethod('componentDidCatch', args)\n logger.warn(args)\n }\n\n reloadDataSource = () =>\n new Promise((resolve, reject) => {\n logger.log('reload data source')\n if (!this.__dataHelper) {\n return resolve({})\n }\n this.__dataHelper\n .getInitData()\n .then((res: any) => {\n if (isEmpty(res)) {\n this.forceUpdate()\n return resolve({})\n }\n this.setState(res, resolve as () => void)\n })\n .catch((err: Error) => {\n reject(err)\n })\n })\n\n shouldComponentUpdate() {\n if (this.props.getSchemaChangedSymbol?.() && this.props.__container?.rerender) {\n this.props.__container?.rerender()\n return false\n }\n return true\n }\n\n forceUpdate() {\n if (this.shouldComponentUpdate()) {\n super.forceUpdate()\n }\n }\n\n /**\n * execute method in schema.lifeCycles\n */\n __executeLifeCycleMethod = (method: string, args?: any) => {\n executeLifeCycleMethod(this, this.props.__schema, method, args)\n }\n\n /**\n * this method is for legacy purpose only, which used _ prefix instead of __ as private for some historical reasons\n */\n __getComponentView = () => {\n const { __components, __schema } = this.props\n if (!__components) {\n return\n }\n return __components[__schema.componentName]\n }\n\n __bindCustomMethods = (props: BaseRendererProps) => {\n const { __schema } = props\n const customMethodsList = Object.keys(__schema.methods || {}) || []\n ;(this.__customMethodsList || []).forEach((item: any) => {\n if (!customMethodsList.includes(item)) {\n delete this[item]\n }\n })\n this.__customMethodsList = customMethodsList\n forEach(__schema.methods, (val: any, key: string) => {\n let value = val\n if (isJSExpression(value) || isJSFunction(value)) {\n value = this.__parseExpression(value, this)\n }\n if (typeof value !== 'function') {\n logger.error(`custom method ${key} can not be parsed to a valid function`, value)\n return\n }\n this[key] = value.bind(this)\n })\n }\n\n __generateCtx = (ctx: Record<string, any>) => {\n const { pageContext, compContext } = this.context\n const obj = {\n page: pageContext,\n component: compContext,\n ...ctx,\n }\n forEach(obj, (val: any, key: string) => {\n this[key] = val\n })\n }\n\n __parseData = (data: any, ctx?: Record<string, any>) => {\n const { __ctx, componentName } = this.props\n return parseData(data, ctx || __ctx || this, { logScope: componentName })\n }\n\n __initDataSource = (props: BaseRendererProps) => {\n if (!props) {\n return\n }\n // TODO: 数据源引擎方案\n // const schema = props.__schema || {}\n // const defaultDataSource: DataSource = {\n // list: [],\n // }\n // const dataSource = schema.dataSource || defaultDataSource\n // // requestHandlersMap 存在才走数据源引擎方案\n // // TODO: 下面if else 抽成独立函数\n // const useDataSourceEngine = !!props.__appHelper?.requestHandlersMap\n // if (useDataSourceEngine) {\n // this.__dataHelper = {\n // updateConfig: (updateDataSource: any) => {\n // const { dataSourceMap, reloadDataSource } = createDataSourceEngine(\n // updateDataSource ?? {},\n // this,\n // props.__appHelper.requestHandlersMap\n // ? { requestHandlersMap: props.__appHelper.requestHandlersMap }\n // : undefined,\n // )\n\n // this.reloadDataSource = () =>\n // new Promise(resolve => {\n // logger.log('reload data source')\n // reloadDataSource().then(() => {\n // resolve({})\n // })\n // })\n // return dataSourceMap\n // },\n // }\n // this.dataSourceMap = this.__dataHelper.updateConfig(dataSource)\n // } else {\n // const appHelper = props.__appHelper\n // this.__dataHelper = new DataHelper(this, dataSource, appHelper, (config: any) => this.__parseData(config))\n // this.dataSourceMap = this.__dataHelper.dataSourceMap\n // this.reloadDataSource = () =>\n // new Promise((resolve, reject) => {\n // logger.log('reload data source')\n // if (!this.__dataHelper) {\n // return resolve({})\n // }\n // this.__dataHelper\n // .getInitData()\n // .then((res: any) => {\n // if (isEmpty(res)) {\n // return resolve({})\n // }\n // this.setState(res, resolve as () => void)\n // })\n // .catch((err: Error) => {\n // reject(err)\n // })\n // })\n // }\n }\n\n /**\n * write props.__schema.css to document as a style element,\n * which will be added once and only once.\n * @PRIVATE\n */\n __writeCss = (props: BaseRendererProps) => {\n const css = getValue(props.__schema, 'css', '')\n logger.log('create this.styleElement with css', css)\n let style = this.__styleElement\n if (!this.__styleElement) {\n style = document.createElement('style')\n style.type = 'text/css'\n style.setAttribute('from', 'style-sheet')\n\n const head = document.head || document.getElementsByTagName('head')[0]\n head.appendChild(style)\n this.__styleElement = style\n logger.log('this.styleElement is created', this.__styleElement)\n }\n\n if (style.innerHTML === css) {\n return\n }\n\n style.innerHTML = css\n }\n\n __render = () => {\n const schema = this.props.__schema\n this.__executeLifeCycleMethod('render')\n this.__writeCss(this.props)\n\n const { engine } = this.context\n if (engine) {\n engine.props.onCompGetCtx(schema, this)\n // 画布场景才需要每次渲染bind自定义方法\n if (this.__designModeIsDesign) {\n this.__bindCustomMethods(this.props)\n this.dataSourceMap = this.__dataHelper?.updateConfig(schema.dataSource)\n }\n }\n }\n\n __getRef = (ref: any) => {\n const { engine } = this.context\n const { __schema } = this.props\n // ref && engine?.props?.onCompGetRef(__schema, ref)\n // TODO: 只在 ref 存在执行,会影响 documentInstance 的卸载\n engine?.props?.onCompGetRef(__schema, ref)\n this.__ref = ref\n }\n\n __createDom = () => {\n const { __schema, __ctx } = this.props\n // merge defaultProps\n const scopeProps = {\n ...__schema.defaultProps,\n ...this.props,\n }\n const scope: any = {\n props: scopeProps,\n }\n scope.__proto__ = __ctx || this\n\n const _children = getSchemaChildren(__schema)\n const Comp = this.__getComponentView()\n\n if (!Comp) {\n logger.log(`${__schema.componentName} is invalid!`)\n }\n\n const parentNodeInfo = {\n schema: __schema,\n Comp: this.__getHOCWrappedComponent(Comp, {\n schema: __schema,\n scope,\n }),\n } as NodeInfo\n return this.__createVirtualDom(_children, scope, parentNodeInfo)\n }\n\n /**\n * 将模型结构转换成react Element\n * @param originalSchema schema\n * @param originalScope scope\n * @param parentInfo 父组件的信息,包含schema和Comp\n * @param idx 为循环渲染的循环Index\n */\n __createVirtualDom = (\n originalSchema: NodeData | NodeData[] | undefined,\n originalScope: any,\n parentInfo: NodeInfo,\n idx: string | number = '',\n ): any => {\n if (originalSchema === null || originalSchema === undefined) {\n return null\n }\n\n const scope = originalScope\n const schema = originalSchema\n const { engine } = this.context || {}\n\n if (!engine) {\n logger.log('this.context.engine is invalid!')\n return null\n }\n\n try {\n const { __appHelper: appHelper, __components: components = {} } = this.props || {}\n\n if (isJSExpression(schema)) {\n return this.__parseExpression(schema, scope)\n }\n\n if (typeof schema === 'string') {\n return schema\n }\n\n if (typeof schema === 'number' || typeof schema === 'boolean') {\n return String(schema)\n }\n\n if (Array.isArray(schema)) {\n if (schema.length === 1) {\n return this.__createVirtualDom(schema[0], scope, parentInfo)\n }\n return schema.map((item, idy) =>\n this.__createVirtualDom(item, scope, parentInfo, (item as NodeSchema)?.__ctx?.lceKey ? '' : String(idy)),\n )\n }\n\n if (schema.$$typeof) {\n return schema\n }\n\n if (!schema.componentName) {\n logger.error('The componentName in the schema is invalid, please check the schema: ', schema)\n return\n }\n\n if (!isSchema(schema)) {\n return null\n }\n\n let Comp = components[schema.componentName] || this.props.__container?.components?.[schema.componentName]\n\n // 容器类组件的上下文通过props传递,避免context传递带来的嵌套问题\n const otherProps: any = isSchema(schema)\n ? {\n __schema: schema,\n __appHelper: appHelper,\n __components: components,\n }\n : {}\n\n if (!Comp) {\n logger.error(\n `${schema.componentName} component is not found in components list! component list is:`,\n components || this.props.__container?.components,\n )\n\n return engine.createElement(\n engine.getNotFoundComponent(),\n {\n componentName: schema.componentName,\n componentId: schema.id,\n enableStrictNotFoundMode: engine.props.enableStrictNotFoundMode,\n ref: (ref: any) => {\n ref && engine.props?.onCompGetRef(schema, ref)\n },\n },\n this.__getSchemaChildrenVirtualDom(schema, scope, Comp),\n )\n }\n\n if (schema.loop != null) {\n const loop = this.__parseData(schema.loop, scope)\n if (Array.isArray(loop) && loop.length === 0) return null\n const useLoop = isUseLoop(loop, this.__designModeIsDesign)\n if (useLoop) {\n return this.__createLoopVirtualDom(\n {\n ...schema,\n loop,\n },\n scope,\n parentInfo,\n idx,\n )\n }\n }\n\n const condition = schema.condition == null ? true : this.__parseData(schema.condition, scope)\n\n // DesignMode 为 design 情况下,需要进入 leaf Hoc,进行相关事件注册\n const displayInHook = this.__designModeIsDesign\n if (!condition && !displayInHook) {\n return null\n }\n\n // TODO: scope\n // let scopeKey = ''\n // // 判断组件是否需要生成scope,且只生成一次,挂在this.__compScopes上\n // if (Comp.generateScope) {\n // const key = this.__parseExpression(schema.props?.key, scope)\n // if (key) {\n // // 如果组件自己设置key则使用组件自己的key\n // scopeKey = key\n // } else if (schema.__ctx) {\n // // 需要判断循环的情况\n // scopeKey = schema.__ctx.lceKey + (idx !== undefined ? `_${idx}` : '')\n // } else {\n // // 在生产环境schema没有__ctx上下文,需要手动生成一个lceKey\n // schema.__ctx = {\n // lceKey: `lce${++scopeIdx}`,\n // }\n // scopeKey = schema.__ctx.lceKey\n // }\n // if (!this.__compScopes[scopeKey]) {\n // this.__compScopes[scopeKey] = Comp.generateScope(this, schema)\n // }\n // }\n // // 如果组件有设置scope,需要为组件生成一个新的scope上下文\n // if (scopeKey && this.__compScopes[scopeKey]) {\n // const compSelf = { ...this.__compScopes[scopeKey] }\n // compSelf.__proto__ = scope\n // scope = compSelf\n // }\n\n if (engine.props?.designMode) {\n otherProps.__designMode = engine.props.designMode\n }\n if (this.__designModeIsDesign) {\n otherProps.__tag = Math.random()\n }\n\n const componentInfo: any = {}\n const props: any =\n this.__getComponentProps(schema, scope, Comp, {\n ...componentInfo,\n props: transformArrayToMap(componentInfo.props, 'name'),\n }) || {}\n\n Comp = this.__getHOCWrappedComponent(Comp, {\n schema,\n componentInfo,\n baseRenderer: this,\n scope,\n })\n\n otherProps.ref = (ref: any) => {\n this.$(schema.id || props.ref, ref) // 收集ref\n const refProps = props.ref\n if (refProps && typeof refProps === 'string') {\n this[refProps] = ref\n }\n ref && engine.props?.onCompGetRef(schema, ref)\n }\n\n // scope需要传入到组件上\n // if (scopeKey && this.__compScopes[scopeKey]) {\n // props.__scope = this.__compScopes[scopeKey]\n // }\n if (schema?.__ctx?.lceKey) {\n if (!isSchema(schema)) {\n engine.props?.onCompGetCtx(schema, scope)\n }\n props.key = props.key || `${schema.__ctx.lceKey}_${schema.__ctx.idx || 0}_${idx !== undefined ? idx : ''}`\n } else if ((typeof idx === 'number' || typeof idx === 'string') && !props.key) {\n // 仅当循环场景走这里\n props.key = idx\n }\n\n props.__id = schema.id\n if (!props.key) {\n props.key = props.__id\n }\n\n return engine.createElement(\n Comp,\n {\n ...props,\n ...otherProps,\n // TODO: 看看这里需要怎么处理简洁\n __inner__: {\n hidden: schema.hidden,\n condition,\n },\n },\n this.__getSchemaChildrenVirtualDom(schema, scope, Comp, condition),\n )\n } catch (e) {\n return engine.createElement(engine.getFaultComponent(), {\n error: e,\n schema,\n self: scope,\n parentInfo,\n idx,\n })\n }\n }\n\n /**\n * get Component HOCs\n *\n * @readonly\n * @type {ComponentConstruct[]}\n */\n get __componentHOCs(): ComponentConstruct[] {\n if (this.__designModeIsDesign) {\n return [leafWrapper, compWrapper]\n }\n return [compWrapper]\n }\n\n __getSchemaChildrenVirtualDom = (schema: NodeSchema | undefined, scope: any, Comp: any, condition = true) => {\n let children = condition ? getSchemaChildren(schema) : null\n\n const result: any = []\n if (children) {\n if (!Array.isArray(children)) {\n children = [children]\n }\n\n children.forEach((child: any) => {\n const childVirtualDom = this.__createVirtualDom(\n isJSExpression(child) ? this.__parseExpression(child, scope) : child,\n scope,\n {\n schema,\n Comp,\n },\n )\n\n result.push(childVirtualDom)\n })\n }\n\n if (result && result.length > 0) {\n return result\n }\n return null\n }\n\n __getComponentProps = (schema: NodeSchema | undefined, scope: any, Comp: any, componentInfo?: any) => {\n if (!schema) {\n return {}\n }\n return (\n this.__parseProps(schema?.props, scope, '', {\n schema,\n Comp,\n componentInfo: {\n ...(componentInfo || {}),\n props: transformArrayToMap((componentInfo || {}).props, 'name'),\n },\n }) || {}\n )\n }\n\n __createLoopVirtualDom = (schema: NodeSchema, scope: any, parentInfo: NodeInfo, idx: number | string) => {\n // TODO\n // if (isSchema(schema)) {\n // logger.warn('file type not support Loop')\n // return null\n // }\n if (!Array.isArray(schema.loop)) {\n return null\n }\n const itemArg = (schema.loopArgs && schema.loopArgs[0]) || DEFAULT_LOOP_ARG_ITEM\n const indexArg = (schema.loopArgs && schema.loopArgs[1]) || DEFAULT_LOOP_ARG_INDEX\n const { loop } = schema\n return loop.map((item: JSONValue | CompositeValue, i: number) => {\n const loopSelf: any = {\n [itemArg]: item,\n [indexArg]: i,\n }\n loopSelf.__proto__ = scope\n return this.__createVirtualDom(\n {\n ...schema,\n loop: undefined,\n props: {\n ...schema.props,\n // 循环下 key 不能为常量,这样会造成 key 值重复,渲染异常\n key: isJSExpression(schema.props?.key) ? schema.props?.key : null,\n },\n },\n loopSelf,\n parentInfo,\n idx ? `${idx}_${i}` : i,\n )\n })\n }\n\n get __designModeIsDesign() {\n const { engine } = this.context || {}\n return engine?.props?.designMode === 'design'\n }\n\n __parseProps = (originalProps: any, scope: any, path: string, info: NodeInfo): any => {\n let props = originalProps\n const { schema, Comp, componentInfo = {} } = info\n const propInfo = getValue(componentInfo.props, path)\n // FIXME: 将这行逻辑外置,解耦,线上环境不要验证参数,调试环境可以有,通过传参自定义\n const propType = propInfo?.extra?.propType\n\n const checkProps = (value: any) => {\n if (!propType) {\n return value\n }\n return checkPropTypes(value, path, propType, componentInfo.name) ? value : undefined\n }\n\n const parseReactNode = (data: any, params: any) => {\n if (isEmpty(params)) {\n const virtualDom = this.__createVirtualDom(data, scope, { schema, Comp } as NodeInfo)\n return checkProps(virtualDom)\n }\n return checkProps((...argValues: any[]) => {\n const args: any = {}\n if (Array.isArray(params) && params.length) {\n params.forEach((item, idx) => {\n if (typeof item === 'string') {\n args[item] = argValues[idx]\n } else if (item && typeof item === 'object') {\n args[item.name] = argValues[idx]\n }\n })\n }\n args.__proto__ = scope\n return scope.__createVirtualDom(data, args, { schema, Comp } as NodeInfo)\n })\n }\n\n if (isJSExpression(props)) {\n props = this.__parseExpression(props, scope)\n // 只有当变量解析出来为模型结构的时候才会继续解析\n if (!isSchema(props)) {\n return checkProps(props)\n }\n }\n\n if (isJSFunction(props)) {\n props = transformStringToFunction(props.value)\n }\n\n // 兼容通过componentInfo判断的情况\n if (isSchema(props)) {\n const isReactNodeFunction = !!(propInfo?.type === 'ReactNode' && propInfo?.props?.type === 'function')\n\n const isMixinReactNodeFunction = !!(\n propInfo?.type === 'Mixin' &&\n propInfo?.props?.types?.indexOf('ReactNode') > -1 &&\n propInfo?.props?.reactNodeProps?.type === 'function'\n )\n\n let params = null\n if (isReactNodeFunction) {\n params = propInfo?.props?.params\n } else if (isMixinReactNodeFunction) {\n params = propInfo?.props?.reactNodeProps?.params\n }\n return parseReactNode(props, params)\n }\n if (Array.isArray(props)) {\n return checkProps(\n props.map((item, idx) => this.__parseProps(item, scope, path ? `${path}.${idx}` : `${idx}`, info)),\n )\n }\n if (typeof props === 'function') {\n return checkProps(props.bind(scope))\n }\n if (props && typeof props === 'object') {\n if (props.$$typeof) {\n return checkProps(props)\n }\n const res: any = {}\n forEach(props, (val: any, key: string) => {\n if (key.startsWith('__')) {\n res[key] = val\n return\n }\n res[key] = this.__parseProps(val, scope, path ? `${path}.${key}` : key, info)\n })\n return checkProps(res)\n }\n return checkProps(props)\n }\n\n $(id: string, instance?: any) {\n this.__instanceMap = this.__instanceMap || {}\n if (!id || typeof id !== 'string') {\n return this.__instanceMap\n }\n if (instance) {\n this.__instanceMap[id] = instance\n }\n return this.__instanceMap[id]\n }\n\n __renderContextProvider = (customProps?: object, children?: any) => {\n return (\n <RendererContext.Provider\n value={{\n ...this.context,\n blockContext: this,\n ...(customProps || {}),\n }}\n >\n {children || this.__createDom()}\n </RendererContext.Provider>\n )\n }\n\n __renderContextConsumer = (children: any) => {\n return <RendererContext.Consumer>{children}</RendererContext.Consumer>\n }\n\n __getHOCWrappedComponent(\n OriginalComp: any,\n info: {\n schema: ComponentHocInfo['schema']\n scope: ComponentHocInfo['scope']\n componentInfo?: ComponentHocInfo['componentInfo']\n baseRenderer?: ComponentHocInfo['baseRenderer']\n },\n ) {\n let Comp = OriginalComp\n this.__componentHOCs.forEach(ComponentConstruct => {\n Comp = ComponentConstruct(Comp, {\n componentInfo: {},\n baseRenderer: this,\n ...info,\n })\n })\n\n return Comp\n }\n\n __renderComp(OriginalComp: any, ctxProps: object) {\n let Comp = OriginalComp\n const { __schema, __ctx } = this.props\n const scope: any = {}\n scope.__proto__ = __ctx || this\n Comp = this.__getHOCWrappedComponent(Comp, {\n schema: __schema,\n scope,\n })\n const data = this.__parseProps(__schema?.props, scope, '', {\n schema: __schema,\n Comp,\n componentInfo: {},\n })\n const { className } = data\n const otherProps: any = {}\n const { engine } = this.context || {}\n if (!engine) {\n return null\n }\n\n if (this.__designModeIsDesign) {\n otherProps.__tag = Math.random()\n }\n\n const child = engine.createElement(\n Comp,\n {\n ...data,\n ...this.props,\n ref: this.__getRef,\n className: classnames(\n __schema?.fileName && getFileCssName(__schema.fileName),\n className,\n this.props.className,\n ),\n __id: __schema?.id,\n ...otherProps,\n },\n this.__createDom(),\n )\n return this.__renderContextProvider(ctxProps, child)\n }\n\n __renderContent(children: any) {\n const { __schema } = this.props\n const parsedProps = this.__parseData(__schema.props)\n const className = classnames(\n `lce-${this.__namespace}`,\n __schema?.fileName && getFileCssName(__schema.fileName),\n parsedProps.className,\n this.props.className,\n )\n const style = { ...(parsedProps.style || {}), ...(typeof this.props.style === 'object' ? this.props.style : {}) }\n const id = this.props.id || parsedProps.id\n return (\n <div ref={this.__getRef} className={className} id={id} style={style}>\n {children}\n </div>\n )\n }\n\n __checkSchema = (schema: NodeSchema | undefined, originalExtraComponents: string | string[] = []) => {\n let extraComponents = originalExtraComponents\n if (typeof extraComponents === 'string') {\n extraComponents = [extraComponents]\n }\n\n // const builtin = capitalizeFirstLetter(this.__namespace)\n // const componentNames = [builtin, ...extraComponents]\n const componentNames = [...Object.keys(this.props.__components), ...extraComponents]\n return !isSchema(schema) || !componentNames.includes(schema?.componentName ?? '')\n }\n\n get appHelper() {\n return this.props.__appHelper\n }\n\n get requestHandlersMap() {\n return this.appHelper?.requestHandlersMap\n }\n\n get utils() {\n return this.appHelper?.utils\n }\n\n get constants() {\n return this.appHelper?.constants\n }\n\n // render() {\n // return null\n // }\n }\n}\n","import { baseRendererFactory } from './base'\nimport type { BaseRenderComponent, BaseRendererProps } from './types'\nimport { logger } from './utils'\n\nexport function componentRendererFactory(): BaseRenderComponent {\n const BaseRenderer = baseRendererFactory()\n return class CompRenderer extends BaseRenderer {\n static displayName = 'CompRenderer'\n\n __namespace = 'component'\n\n __afterInit(props: BaseRendererProps, ...rest: any[]) {\n this.__generateCtx({\n component: this,\n })\n const schema = props.__schema || {}\n this.state = this.__parseData(schema.state || {})\n this.__initDataSource(props)\n this.__executeLifeCycleMethod('constructor', [props, ...rest])\n }\n\n render() {\n const { __schema } = this.props\n if (this.__checkSchema(__schema)) {\n return '自定义组件 schema 结构异常!'\n }\n logger.log(`${CompRenderer.displayName} render - ${__schema.componentName}`)\n\n this.__generateCtx({\n component: this,\n })\n this.__render()\n\n const noContainer = this.__parseData(__schema.props?.noContainer)\n\n this.__bindCustomMethods(this.props)\n\n if (noContainer) {\n return this.__renderContextProvider({ compContext: this })\n }\n\n const Comp = this.__getComponentView()\n\n if (!Comp) {\n return this.__renderContent(this.__renderContextProvider({ compContext: this }))\n }\n\n return this.__renderComp(Comp, { compContext: this })\n }\n }\n}\n","import { baseRendererFactory } from './base'\nimport type { BaseRenderComponent, BaseRendererProps } from './types'\nimport { logger } from './utils'\n\nexport function pageRendererFactory(): BaseRenderComponent {\n const BaseRenderer = baseRendererFactory()\n\n return class PageRenderer extends BaseRenderer {\n static displayName = 'PageRenderer'\n\n __namespace = 'page'\n\n __afterInit(props: BaseRendererProps, ...rest: unknown[]) {\n const schema = props.__schema || {}\n this.state = this.__parseData(schema.state || {})\n this.__initDataSource(props)\n this.__executeLifeCycleMethod('constructor', [props, ...rest])\n }\n\n async componentDidUpdate(prevProps: BaseRendererProps, _prevState: any, snapshot: unknown) {\n const { __ctx } = this.props\n // 当编排的时候修改 schema.state 值,需要将最新 schema.state 值 setState\n if (JSON.stringify(prevProps.__schema.state) !== JSON.stringify(this.props.__schema.state)) {\n const newState = this.__parseData(this.props.__schema.state, __ctx)\n this.setState(newState)\n }\n\n super.componentDidUpdate?.(prevProps, _prevState, snapshot)\n }\n\n setState(state: any, callback?: () => void) {\n logger.log('page set state', state)\n super.setState(state, callback)\n }\n\n render() {\n const { __schema } = this.props\n if (this.__checkSchema(__schema)) {\n return '页面schema结构异常!'\n }\n logger.log(`${PageRenderer.displayName} render - ${__schema.componentName}`)\n\n this.__bindCustomMethods(this.props)\n this.__initDataSource(this.props)\n\n this.__generateCtx({\n page: this,\n })\n this.__render()\n\n const Comp = this.__getComponentView()\n\n if (!Comp) {\n return this.__renderContent(this.__renderContextProvider({ pageContext: this }))\n }\n\n return this.__renderComp(Comp, { pageContext: this })\n }\n }\n}\n","import type { NodeSchema } from '@easy-editor/core'\nimport type { FC } from 'react'\nimport { logger } from '../utils'\n\nexport interface FaultComponentProps extends NodeSchema {\n error?: Error | string\n}\n\nconst FaultComponent: FC<FaultComponentProps> = ({ componentName = '', error }) => {\n logger.error(`${componentName} 组件渲染异常, 异常原因: ${(error as Error)?.message || error || '未知'}`)\n\n return (\n <div\n role='alert'\n aria-label={`${componentName} 组件渲染异常`}\n style={{\n width: '100%',\n height: '50px',\n lineHeight: '50px',\n textAlign: 'center',\n fontSize: '15px',\n color: '#ef4444',\n border: '2px solid #ef4444',\n }}\n >\n {componentName} 组件渲染异常,请查看控制台日志\n </div>\n )\n}\n\nexport default FaultComponent\n","import type { NodeSchema } from '@easy-editor/core'\nimport type { FC } from 'react'\nimport { logger } from '../utils'\n\nexport interface NotFoundComponentProps extends NodeSchema {\n enableStrictNotFoundMode?: boolean\n}\n\nconst NotFoundComponent: FC<NotFoundComponentProps> = ({ componentName = '', enableStrictNotFoundMode, children }) => {\n logger.warn(`Component ${componentName} not found`)\n\n if (enableStrictNotFoundMode) {\n return <>{`${componentName} Component Not Found`}</>\n }\n\n return (\n <div\n role='alert'\n aria-label={`${componentName} component not found`}\n style={{\n width: '100%',\n height: '50px',\n lineHeight: '50px',\n textAlign: 'center',\n fontSize: '15px',\n color: '#eab308',\n border: '2px solid #eab308',\n }}\n >\n {/* {children || `${componentName} Component Not Found`} */}\n {`${componentName} Component Not Found`}\n </div>\n )\n}\n\nexport default NotFoundComponent\n","import { type RootSchema, logger } from '@easy-editor/core'\nimport { isEmpty } from 'lodash-es'\nimport { Component, createElement } from 'react'\nimport { adapter } from './adapter'\nimport FaultComponent from './components/FaultComponent'\nimport NotFoundComponent from './components/NotFoundComponent'\nimport { RendererContext } from './context'\nimport type { RenderComponent, RendererProps, RendererState } from './types'\nimport { isSchema } from './utils'\n\nexport function rendererFactory(): RenderComponent {\n const RENDERER_COMPS = adapter.getRenderers()\n\n return class Renderer extends Component<RendererProps> {\n static displayName = 'Renderer'\n\n state: Partial<RendererState> = {}\n\n __ref: any\n\n static defaultProps: RendererProps = {\n appHelper: undefined,\n components: {},\n designMode: 'live',\n suspended: false,\n schema: {} as RootSchema,\n onCompGetRef: () => {},\n onCompGetCtx: () => {},\n }\n\n constructor(props: RendererProps) {\n super(props)\n this.state = {}\n logger.log(`entry.constructor - ${props?.schema?.componentName}`)\n }\n\n async componentDidMount() {\n logger.log(`entry.componentDidMount - ${this.props.schema && this.props.schema.componentName}`)\n }\n\n async componentDidUpdate() {\n logger.log(`entry.componentDidUpdate - ${this.props?.schema?.componentName}`)\n }\n\n async componentWillUnmount() {\n logger.log(`entry.componentWillUnmount - ${this.props?.schema?.componentName}`)\n }\n\n componentDidCatch(error: Error) {\n this.state.engineRenderError = true\n this.state.error = error\n }\n\n shouldComponentUpdate(nextProps: RendererProps) {\n return !nextProps.suspended\n }\n\n __getRef = (ref: any) => {\n this.__ref = ref\n if (ref) {\n this.props.onCompGetRef?.(this.props.schema, ref)\n }\n }\n\n isValidComponent(SetComponent: any) {\n return SetComponent\n }\n\n createElement(SetComponent: any, props: any, children?: any) {\n return (this.props.customCreateElement || createElement)(SetComponent, props, children)\n }\n\n getNotFoundComponent() {\n return this.props.notFoundComponent || NotFoundComponent\n }\n\n getFaultComponent() {\n return this.props.faultComponent || FaultComponent\n }\n\n render() {\n const { schema, designMode, appHelper, components } = this.props\n\n if (isEmpty(schema)) {\n return null\n }\n\n if (!isSchema(schema)) {\n logger.error(\n 'The root component name needs to be one of Page、Block、Component, please check the schema: ',\n schema,\n )\n return '模型结构异常'\n }\n\n logger.log('entry.render')\n const allComponents = { ...components, ...RENDERER_COMPS }\n // TODO: 默认最顶层使用 PageRenderer\n const Comp = allComponents.PageRenderer\n\n if (this.state && this.state.engineRenderError) {\n return createElement(this.getFaultComponent(), {\n componentName: schema.componentName,\n error: this.state.error,\n })\n }\n\n if (!Comp) {\n return null\n }\n\n return (\n <RendererContext.Provider\n value={{\n appHelper,\n components: allComponents,\n engine: this,\n }}\n >\n <Comp\n key={schema.__ctx && `${schema.__ctx.lceKey}_${schema.__ctx.idx || '0'}`}\n // ref={this.__getRef}\n __appHelper={appHelper}\n __components={allComponents}\n __schema={schema}\n __designMode={designMode}\n {...this.props}\n />\n </RendererContext.Provider>\n )\n }\n }\n}\n","export * from './configure-renderer'\nexport * from './renderer-core'\n\nexport const DEV = '_EASY_EDITOR_DEV_'\n"],"names":["SettingRendererContext","createContext","useSettingRendererContext","useContext","error","console","warn","getSetterInfo","field","extraProps","setter","defaultValue","setterProps","setterType","initialValue","isSetterConfig","componentName","props","valueState","multiValue","supportVariable","isUseVariableSetter","SettingSetter","observer","children","setterManager","visible","condition","onChange","value","getValue","component","SetterComponent","mixedSetterProps","createSetterContent","React","createElement","_extends","key","id","selected","top","getNode","newVal","setValue","onInitial","removeProp","name","parent","clearPropValue","SettingFieldItem","customFieldItem","className","htmlFor","title","SettingFieldGroup","customFieldGroup","items","map","item","SettingFieldView","isGroup","SettingRender","editor","designer","get","settingsManager","settings","ctx","useMemo","isLocked","Array","isArray","length","isSameComponent","Provider","Adapter","renderers","setRenderers","setBaseRenderer","BaseRenderer","setPageRenderer","PageRenderer","setComponentRenderer","ComponentRenderer","getRenderers","adapter","RendererContext","useRendererContext","contextFactory","context","window","__appContext","classnames","args","filter","Boolean","join","logger","createLogger","PropTypes2","inSameDomain","location","host","e","getFileCssName","fileName","replace","toLowerCase","split","p","isSchema","schema","every","isValidProps","obj","path","res","reduce","pre","cur","undefined","transformArrayToMap","arr","overwrite","forEach","curKey","parseData","self","options","isJSExpression","parseExpression","str","thisRequired","logScope","trim","bind","Object","entries","val","startsWith","isUseLoop","loop","isDesignMode","checkPropTypes","rule","ruleFunction","Function","err","transformStringToFunction","__newFunc","a","b","c","contextArr","push","tarStr","_a","code","__self","parseThisRequiredExpression","isString","toString","call","capitalizeFirstLetter","word","toUpperCase","slice","isReactClass","prototype","isReactComponent","Component","excludePropertyNames","cloneEnumerableProperty","target","origin","excludes","compExtraPropertyNames","keys","d","includes","createForwardRefHocElement","Wrapper","Comp","WrapperComponent","forwardRef","ref","displayName","patchDidCatch","baseRenderer","patchedCatch","originalDidCatch","componentDidCatch","didCatch","errorInfo","setState","engineRenderError","engine","originRender","render","state","getFaultComponent","_componentName","PureComponent","originShouldComponentUpdate","shouldComponentUpdate","nextProps","nextState","cache","Map","compWrapper","info","has","rest","set","RerenderType","LeafCache","event","constructor","documentId","device","initRerenderEvent","container","leaf","clear","dispose","disposeFn","debounceRerender","debounce","rerender","onPropChange","autoRepaintNode","log","onChildrenChange","onVisibleChange","clearRerenderEvent","leafWrapper","componentInfo","scope","__getComponentProps","getProps","__getSchemaChildrenVirtualDom","getChildren","__parseData","__host","curDocumentId","curDevice","__container","setSchemaChangedSymbol","componentCacheId","LeafWrapper","LeafHoc","recordInfo","curEventLeaf","disposeFunctions","__component_tag","renderUnitInfo","makeUnitRenderDebounced","beforeRender","MinimalRenderUnit","export","TRANSFORM_STAGE","RENDER","nodeProps","nodeChildren","childrenInState","makeUnitRender","cacheState","__tag","getDefaultState","recordTime","startTime","endTime","Date","now","nodeCount","currentDocument","getNodeCount","node","postEvent","DESIGNER_EVENT","NODE_RENDER","time","type","componentDidUpdate","componentDidMount","_leaf","initOnPropsChangeEvent","initOnChildrenChangeEvent","initOnVisibleChangeEvent","hidden","__inner__","nodeCacheProps","judgeMiniUnitRender","getRenderUnitInfo","singleRender","minimalUnitId","minimalUnitName","isRoot","componentMeta","isMinimalRenderUnit","hasLoop","UNSAFE_componentWillReceiveProps","componentId","fn","resetState","handlePropsChange","propChangeInfo","newValue","conditionValue","delete","PropsChanged","flag","VisibleChanged","param","ChildChanged","nextChild","componentWillUnmount","hasChildren","compProps","__id","executeLifeCycleMethod","method","lifeCycleMethods","isJSFunction","apply","getSchemaChildren","baseRendererFactory","customBaseRenderer","DEFAULT_LOOP_ARG_ITEM","DEFAULT_LOOP_ARG_INDEX","defaultProps","__schema","contextType","dataSourceMap","__namespace","__compScopes","__instanceMap","__dataHelper","__customMethodsList","__parseExpression","__ref","__styleElement","__beforeInit","__init","__afterInit","__bindCustomMethods","getDerivedStateFromProps","result","getSnapshotBeforeUpdate","__executeLifeCycleMethod","reloadDataSource","Promise","resolve","reject","getInitData","then","isEmpty","forceUpdate","catch","getSchemaChangedSymbol","__getComponentView","__components","customMethodsList","methods","__generateCtx","pageContext","compContext","page","data","__ctx","__initDataSource","__writeCss","css","style","document","setAttribute","head","getElementsByTagName","appendChild","innerHTML","__render","onCompGetCtx","__designModeIsDesign","updateConfig","dataSource","__getRef","onCompGetRef","__createDom","scopeProps","__proto__","_children","parentNodeInfo","__getHOCWrappedComponent","__createVirtualDom","originalSchema","originalScope","parentInfo","idx","__appHelper","appHelper","components","String","idy","lceKey","$$typeof","otherProps","getNotFoundComponent","enableStrictNotFoundMode","useLoop","__createLoopVirtualDom","displayInHook","designMode","__designMode","Math","random","$","refProps","__componentHOCs","child","childVirtualDom","__parseProps","itemArg","loopArgs","indexArg","i","loopSelf","originalProps","propInfo","propType","extra","checkProps","parseReactNode","params","virtualDom","argValues","isReactNodeFunction","isMixinReactNodeFunction","types","indexOf","reactNodeProps","instance","__renderContextProvider","customProps","blockContext","__renderContextConsumer","Consumer","OriginalComp","ComponentConstruct","__renderComp","ctxProps","__renderContent","parsedProps","__checkSchema","originalExtraComponents","extraComponents","componentNames","requestHandlersMap","utils","constants","componentRendererFactory","CompRenderer","noContainer","pageRendererFactory","prevProps","_prevState","snapshot","JSON","stringify","newState","callback","FaultComponent","message","role","width","height","lineHeight","textAlign","fontSize","color","border","NotFoundComponent","Fragment","rendererFactory","RENDERER_COMPS","Renderer","suspended","isValidComponent","SetComponent","customCreateElement","notFoundComponent","faultComponent","allComponents","DEV"],"mappings":"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"}