amis 1.9.1-beta.3 → 1.9.1-beta.4
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/SchemaRenderer.js +6 -9
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/actions/CmptAction.js +4 -4
- package/lib/actions/CmptAction.js.map +2 -2
- package/lib/components/WithRemoteConfig.d.ts +2 -2
- package/lib/components/WithRemoteConfig.js +6 -3
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/table/ItemActionsWrapper.d.ts +10 -0
- package/lib/components/table/ItemActionsWrapper.js +25 -0
- package/lib/components/table/ItemActionsWrapper.js.map +13 -0
- package/lib/components/table/index.d.ts +48 -41
- package/lib/components/table/index.js +46 -18
- package/lib/components/table/index.js.map +2 -2
- package/lib/index.js +1 -1
- package/lib/renderers/Form/JSONSchema.js +3 -3
- package/lib/renderers/Form/JSONSchema.js.map +2 -2
- package/lib/renderers/Form/Options.js +11 -5
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Table-v2/index.d.ts +14 -2
- package/lib/renderers/Table-v2/index.js +33 -3
- package/lib/renderers/Table-v2/index.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +13 -2
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk.js +1299 -1297
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/SchemaRenderer.tsx +1 -4
- package/src/actions/CmptAction.ts +4 -4
- package/src/components/WithRemoteConfig.tsx +20 -11
- package/src/components/table/ItemActionsWrapper.tsx +32 -0
- package/src/components/table/index.tsx +115 -58
- package/src/renderers/Form/JSONSchema.tsx +3 -3
- package/src/renderers/Form/Options.tsx +17 -7
- package/src/renderers/Form/wrapControl.tsx +0 -1
- package/src/renderers/Table-v2/index.tsx +65 -2
package/lib/SchemaRenderer.js
CHANGED
@@ -171,12 +171,12 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
171
171
|
};
|
172
172
|
SchemaRenderer.prototype.render = function () {
|
173
173
|
var _this = this;
|
174
|
-
var _a, _b, _c;
|
175
|
-
var
|
174
|
+
var _a, _b, _c, _d;
|
175
|
+
var _e = this.props, _ = _e.$path, __ = _e.schema, rootStore = _e.rootStore, rest = (0, tslib_1.__rest)(_e, ["$path", "schema", "rootStore"]);
|
176
176
|
if (__ == null) {
|
177
177
|
return null;
|
178
178
|
}
|
179
|
-
var
|
179
|
+
var _f = this.resolveRenderer(this.props), $path = _f.path, schema = _f.schema;
|
180
180
|
var theme = this.props.env.theme;
|
181
181
|
if (Array.isArray(schema)) {
|
182
182
|
return (0, Root_1.renderChildren)($path, schema, rest);
|
@@ -258,14 +258,11 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
258
258
|
}
|
259
259
|
var isClassComponent = (_a = Component.prototype) === null || _a === void 0 ? void 0 : _a.isReactComponent;
|
260
260
|
var $schema = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema), exprProps);
|
261
|
-
var props = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, theme.getRendererConfig(renderer.name)), restSchema), (0, helper_1.chainEvents)(rest, restSchema)), exprProps), { defaultData: (_b = restSchema.defaultData) !== null && _b !== void 0 ? _b : defaultData, defaultValue: (_c = restSchema.defaultValue) !== null && _c !== void 0 ? _c : defaultValue, defaultActiveKey: defaultActiveKey, propKey: propKey, $path: $path, $schema: $schema, ref: this.refFn, render: this.renderChild, rootStore: rootStore, dispatchEvent: this.dispatchEvent });
|
262
|
-
if (disable) {
|
263
|
-
props.disabled = true;
|
264
|
-
}
|
261
|
+
var props = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, theme.getRendererConfig(renderer.name)), restSchema), (0, helper_1.chainEvents)(rest, restSchema)), exprProps), { defaultData: (_b = restSchema.defaultData) !== null && _b !== void 0 ? _b : defaultData, defaultValue: (_c = restSchema.defaultValue) !== null && _c !== void 0 ? _c : defaultValue, defaultActiveKey: defaultActiveKey, propKey: propKey, $path: $path, $schema: $schema, ref: this.refFn, render: this.renderChild, rootStore: rootStore, disabled: (_d = disable !== null && disable !== void 0 ? disable : rest.disabled) !== null && _d !== void 0 ? _d : restSchema.disabled, dispatchEvent: this.dispatchEvent });
|
265
262
|
// 自动解析变量模式,主要是方便直接引入第三方组件库,无需为了支持变量封装一层
|
266
263
|
if (renderer.autoVar) {
|
267
|
-
for (var _i = 0,
|
268
|
-
var key =
|
264
|
+
for (var _i = 0, _g = Object.keys($schema); _i < _g.length; _i++) {
|
265
|
+
var key = _g[_i];
|
269
266
|
if (typeof props[key] === 'string') {
|
270
267
|
props[key] = (0, tpl_builtin_1.resolveVariableAndFilter)(props[key], props.data, '| raw');
|
271
268
|
}
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/SchemaRenderer.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import difference from 'lodash/difference';\nimport omit from 'lodash/omit';\nimport React from 'react';\nimport LazyComponent from './components/LazyComponent';\nimport {\n filterSchema,\n loadRenderer,\n RendererComponent,\n RendererConfig,\n RendererEnv,\n RendererProps,\n resolveRenderer\n} from './factory';\nimport {asFormItem} from './renderers/Form/Item';\nimport {renderChild, renderChildren} from './Root';\nimport {ScopedContext} from './Scoped';\nimport {Schema, SchemaNode} from './types';\nimport {DebugWrapper} from './utils/debug';\nimport getExprProperties from './utils/filter-schema';\nimport {anyChanged, chainEvents, autobind} from './utils/helper';\nimport {SimpleMap} from './utils/SimpleMap';\n\nimport {bindEvent, dispatchEvent, RendererEvent} from './utils/renderer-event';\nimport {isAlive} from 'mobx-state-tree';\nimport {reaction} from 'mobx';\nimport {resolveVariableAndFilter} from './utils/tpl-builtin';\n\ninterface SchemaRendererProps extends Partial<RendererProps> {\n schema: Schema;\n $path: string;\n env: RendererEnv;\n}\n\nconst defaultOmitList = [\n 'type',\n 'name',\n '$ref',\n 'className',\n 'data',\n 'children',\n 'ref',\n 'visible',\n 'visibleOn',\n 'hidden',\n 'hiddenOn',\n 'disabled',\n 'disabledOn',\n 'component',\n 'detectField',\n 'defaultValue',\n 'defaultData',\n 'required',\n 'requiredOn',\n 'syncSuperStore',\n 'mode',\n 'body'\n];\n\nconst componentCache: SimpleMap = new SimpleMap();\n\nexport class SchemaRenderer extends React.Component<SchemaRendererProps, any> {\n static displayName: string = 'Renderer';\n static contextType = ScopedContext;\n\n rendererKey = '';\n renderer: RendererConfig | null;\n ref: any;\n cRef: any;\n\n schema: any;\n path: string;\n\n reaction: any;\n unbindEvent: (() => void) | undefined = undefined;\n\n constructor(props: SchemaRendererProps) {\n super(props);\n this.refFn = this.refFn.bind(this);\n this.renderChild = this.renderChild.bind(this);\n this.reRender = this.reRender.bind(this);\n this.resolveRenderer(this.props);\n\n this.dispatchEvent = this.dispatchEvent.bind(this);\n\n // 监听rootStore更新\n this.reaction = reaction(\n () =>\n `${props.rootStore.visibleState[props.schema.id || props.$path]}${\n props.rootStore.disableState[props.schema.id || props.$path]\n }`,\n () => this.forceUpdate()\n );\n }\n\n componentDidMount() {\n // 这里无法区分监听的是不是广播,所以又bind一下,主要是为了绑广播\n this.unbindEvent = bindEvent(this.cRef);\n }\n\n componentWillUnmount() {\n this.reaction?.();\n this.unbindEvent?.();\n }\n\n // 限制:只有 schema 除外的 props 变化,或者 schema 里面的某个成员值发生变化才更新。\n shouldComponentUpdate(nextProps: SchemaRendererProps) {\n const props = this.props;\n const list: Array<string> = difference(Object.keys(nextProps), [\n 'schema',\n 'scope'\n ]);\n\n if (\n difference(Object.keys(props), ['schema', 'scope']).length !==\n list.length ||\n anyChanged(list, this.props, nextProps)\n ) {\n return true;\n } else {\n const list: Array<string> = Object.keys(nextProps.schema);\n\n if (\n Object.keys(props.schema).length !== list.length ||\n anyChanged(list, props.schema, nextProps.schema)\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n resolveRenderer(props: SchemaRendererProps, force = false): any {\n let schema = props.schema;\n let path = props.$path;\n\n if (schema && schema.$ref) {\n schema = {\n ...props.resolveDefinitions(schema.$ref),\n ...schema\n };\n\n path = path.replace(/(?!.*\\/).*/, schema.type);\n }\n\n if (\n schema?.type &&\n (force ||\n !this.renderer ||\n this.rendererKey !== `${schema.type}-${schema.$$id}`)\n ) {\n const rendererResolver = props.env.rendererResolver || resolveRenderer;\n this.renderer = rendererResolver(path, schema, props);\n this.rendererKey = `${schema.type}-${schema.$$id}`;\n } else {\n // 自定义组件如果在节点设置了 label name 什么的,就用 formItem 包一层\n // 至少自动支持了 valdiations, label, description 等逻辑。\n if (schema.children && !schema.component && schema.asFormItem) {\n schema.component = PlaceholderComponent;\n schema.renderChildren = schema.children;\n delete schema.children;\n }\n\n if (\n schema.component &&\n !schema.component.wrapedAsFormItem &&\n schema.asFormItem\n ) {\n const cache = componentCache.get(schema.component);\n\n if (cache) {\n schema.component = cache;\n } else {\n const cache = asFormItem({\n strictMode: false,\n ...schema.asFormItem\n })(schema.component);\n componentCache.set(schema.component, cache);\n cache.wrapedAsFormItem = true;\n schema.component = cache;\n }\n }\n }\n\n return {path, schema};\n }\n\n getWrappedInstance() {\n return this.cRef;\n }\n\n refFn(ref: any) {\n this.ref = ref;\n }\n\n @autobind\n childRef(ref: any) {\n while (ref && ref.getWrappedInstance) {\n ref = ref.getWrappedInstance();\n }\n\n this.cRef = ref;\n }\n\n async dispatchEvent(\n e: React.MouseEvent<any>,\n data: any\n ): Promise<RendererEvent<any> | void> {\n return await dispatchEvent(e, this.cRef, this.context, data);\n }\n\n renderChild(\n region: string,\n node?: SchemaNode,\n subProps: {\n data?: object;\n [propName: string]: any;\n } = {}\n ) {\n let {schema: _, $path: __, env, ...rest} = this.props;\n let {path: $path} = this.resolveRenderer(this.props);\n\n const omitList = defaultOmitList.concat();\n if (this.renderer) {\n const Component = this.renderer.component;\n Component.propsList &&\n omitList.push.apply(omitList, Component.propsList as Array<string>);\n }\n\n return renderChild(`${$path}${region ? `/${region}` : ''}`, node || '', {\n ...omit(rest, omitList),\n ...subProps,\n data: subProps.data || rest.data,\n env: env\n });\n }\n\n reRender() {\n this.resolveRenderer(this.props, true);\n this.forceUpdate();\n }\n\n render(): JSX.Element | null {\n let {$path: _, schema: __, rootStore, ...rest} = this.props;\n\n if (__ == null) {\n return null;\n }\n\n let {path: $path, schema} = this.resolveRenderer(this.props);\n const theme = this.props.env.theme;\n\n if (Array.isArray(schema)) {\n return renderChildren($path, schema as any, rest) as JSX.Element;\n }\n\n const detectData =\n schema &&\n (schema.detectField === '&' ? rest : rest[schema.detectField || 'data']);\n const exprProps: any = detectData\n ? getExprProperties(schema, detectData, undefined, rest)\n : {};\n\n // 控制显隐\n const visible = isAlive(rootStore)\n ? rootStore.visibleState[schema.id || $path]\n : undefined;\n const disable = isAlive(rootStore)\n ? rootStore.disableState[schema.id || $path]\n : undefined;\n\n if (\n visible === false ||\n (visible !== true &&\n exprProps &&\n (exprProps.hidden ||\n exprProps.visible === false ||\n schema.hidden ||\n schema.visible === false ||\n rest.hidden ||\n rest.visible === false))\n ) {\n (rest as any).invisible = true;\n }\n\n if (schema.children) {\n return rest.invisible\n ? null\n : React.isValidElement(schema.children)\n ? schema.children\n : (schema.children as Function)({\n ...rest,\n ...exprProps,\n $path: $path,\n $schema: schema,\n render: this.renderChild,\n forwardedRef: this.refFn\n });\n } else if (typeof schema.component === 'function') {\n const isSFC = !(schema.component.prototype instanceof React.Component);\n const {\n data: defaultData,\n value: defaultValue,\n activeKey: defaultActiveKey,\n key: propKey,\n ...restSchema\n } = schema;\n return rest.invisible\n ? null\n : React.createElement(schema.component as any, {\n ...rest,\n ...restSchema,\n ...exprProps,\n defaultData,\n defaultValue,\n defaultActiveKey,\n propKey,\n $path: $path,\n $schema: schema,\n ref: isSFC ? undefined : this.refFn,\n forwardedRef: isSFC ? this.refFn : undefined,\n render: this.renderChild\n });\n } else if (Object.keys(schema).length === 0) {\n return null;\n } else if (!this.renderer) {\n return rest.invisible ? null : (\n <LazyComponent\n {...rest}\n {...exprProps}\n getComponent={async () => {\n const result = await rest.env.loadRenderer(\n schema,\n $path,\n this.reRender\n );\n if (result && typeof result === 'function') {\n return result;\n } else if (result && React.isValidElement(result)) {\n return () => result;\n }\n\n this.reRender();\n return () => loadRenderer(schema, $path);\n }}\n $path={$path}\n $schema={schema}\n retry={this.reRender}\n />\n );\n }\n\n const renderer = this.renderer as RendererConfig;\n schema = filterSchema(schema, renderer, rest);\n const {\n data: defaultData,\n value: defaultValue,\n key: propKey,\n activeKey: defaultActiveKey,\n ...restSchema\n } = schema;\n const Component = renderer.component;\n\n // 原来表单项的 visible: false 和 hidden: true 表单项的值和验证是有效的\n // 而 visibleOn 和 hiddenOn 是无效的,\n // 这个本来就是个bug,但是已经被广泛使用了\n // 我只能继续实现这个bug了\n if (\n rest.invisible &&\n (exprProps.hidden ||\n exprProps.visible === false ||\n !renderer.isFormItem ||\n (schema.visible !== false && !schema.hidden))\n ) {\n return null;\n }\n\n const isClassComponent = Component.prototype?.isReactComponent;\n const $schema = {...schema, ...exprProps};\n let props = {\n ...theme.getRendererConfig(renderer.name),\n ...restSchema,\n ...chainEvents(rest, restSchema),\n ...exprProps,\n defaultData: restSchema.defaultData ?? defaultData,\n defaultValue: restSchema.defaultValue ?? defaultValue,\n defaultActiveKey: defaultActiveKey,\n propKey: propKey,\n $path: $path,\n $schema: $schema,\n ref: this.refFn,\n render: this.renderChild,\n rootStore: rootStore,\n dispatchEvent: this.dispatchEvent\n };\n\n if (disable) {\n (props as any).disabled = true;\n }\n\n // 自动解析变量模式,主要是方便直接引入第三方组件库,无需为了支持变量封装一层\n if (renderer.autoVar) {\n for (const key of Object.keys($schema)) {\n if (typeof props[key] === 'string') {\n props[key] = resolveVariableAndFilter(\n props[key],\n props.data,\n '| raw'\n );\n }\n }\n }\n\n const component = isClassComponent ? (\n <Component {...props} ref={this.childRef} />\n ) : (\n <Component {...props} />\n );\n\n return this.props.env.enableAMISDebug ? (\n <DebugWrapper renderer={renderer}>{component}</DebugWrapper>\n ) : (\n component\n );\n }\n}\n\nclass PlaceholderComponent extends React.Component {\n render() {\n const {renderChildren, ...rest} = this.props as any;\n\n if (typeof renderChildren === 'function') {\n return renderChildren(rest);\n }\n\n return null;\n }\n}\n"
|
11
|
+
"import difference from 'lodash/difference';\nimport omit from 'lodash/omit';\nimport React from 'react';\nimport LazyComponent from './components/LazyComponent';\nimport {\n filterSchema,\n loadRenderer,\n RendererComponent,\n RendererConfig,\n RendererEnv,\n RendererProps,\n resolveRenderer\n} from './factory';\nimport {asFormItem} from './renderers/Form/Item';\nimport {renderChild, renderChildren} from './Root';\nimport {ScopedContext} from './Scoped';\nimport {Schema, SchemaNode} from './types';\nimport {DebugWrapper} from './utils/debug';\nimport getExprProperties from './utils/filter-schema';\nimport {anyChanged, chainEvents, autobind} from './utils/helper';\nimport {SimpleMap} from './utils/SimpleMap';\n\nimport {bindEvent, dispatchEvent, RendererEvent} from './utils/renderer-event';\nimport {isAlive} from 'mobx-state-tree';\nimport {reaction} from 'mobx';\nimport {resolveVariableAndFilter} from './utils/tpl-builtin';\n\ninterface SchemaRendererProps extends Partial<RendererProps> {\n schema: Schema;\n $path: string;\n env: RendererEnv;\n}\n\nconst defaultOmitList = [\n 'type',\n 'name',\n '$ref',\n 'className',\n 'data',\n 'children',\n 'ref',\n 'visible',\n 'visibleOn',\n 'hidden',\n 'hiddenOn',\n 'disabled',\n 'disabledOn',\n 'component',\n 'detectField',\n 'defaultValue',\n 'defaultData',\n 'required',\n 'requiredOn',\n 'syncSuperStore',\n 'mode',\n 'body'\n];\n\nconst componentCache: SimpleMap = new SimpleMap();\n\nexport class SchemaRenderer extends React.Component<SchemaRendererProps, any> {\n static displayName: string = 'Renderer';\n static contextType = ScopedContext;\n\n rendererKey = '';\n renderer: RendererConfig | null;\n ref: any;\n cRef: any;\n\n schema: any;\n path: string;\n\n reaction: any;\n unbindEvent: (() => void) | undefined = undefined;\n\n constructor(props: SchemaRendererProps) {\n super(props);\n this.refFn = this.refFn.bind(this);\n this.renderChild = this.renderChild.bind(this);\n this.reRender = this.reRender.bind(this);\n this.resolveRenderer(this.props);\n\n this.dispatchEvent = this.dispatchEvent.bind(this);\n\n // 监听rootStore更新\n this.reaction = reaction(\n () =>\n `${props.rootStore.visibleState[props.schema.id || props.$path]}${\n props.rootStore.disableState[props.schema.id || props.$path]\n }`,\n () => this.forceUpdate()\n );\n }\n\n componentDidMount() {\n // 这里无法区分监听的是不是广播,所以又bind一下,主要是为了绑广播\n this.unbindEvent = bindEvent(this.cRef);\n }\n\n componentWillUnmount() {\n this.reaction?.();\n this.unbindEvent?.();\n }\n\n // 限制:只有 schema 除外的 props 变化,或者 schema 里面的某个成员值发生变化才更新。\n shouldComponentUpdate(nextProps: SchemaRendererProps) {\n const props = this.props;\n const list: Array<string> = difference(Object.keys(nextProps), [\n 'schema',\n 'scope'\n ]);\n\n if (\n difference(Object.keys(props), ['schema', 'scope']).length !==\n list.length ||\n anyChanged(list, this.props, nextProps)\n ) {\n return true;\n } else {\n const list: Array<string> = Object.keys(nextProps.schema);\n\n if (\n Object.keys(props.schema).length !== list.length ||\n anyChanged(list, props.schema, nextProps.schema)\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n resolveRenderer(props: SchemaRendererProps, force = false): any {\n let schema = props.schema;\n let path = props.$path;\n\n if (schema && schema.$ref) {\n schema = {\n ...props.resolveDefinitions(schema.$ref),\n ...schema\n };\n\n path = path.replace(/(?!.*\\/).*/, schema.type);\n }\n\n if (\n schema?.type &&\n (force ||\n !this.renderer ||\n this.rendererKey !== `${schema.type}-${schema.$$id}`)\n ) {\n const rendererResolver = props.env.rendererResolver || resolveRenderer;\n this.renderer = rendererResolver(path, schema, props);\n this.rendererKey = `${schema.type}-${schema.$$id}`;\n } else {\n // 自定义组件如果在节点设置了 label name 什么的,就用 formItem 包一层\n // 至少自动支持了 valdiations, label, description 等逻辑。\n if (schema.children && !schema.component && schema.asFormItem) {\n schema.component = PlaceholderComponent;\n schema.renderChildren = schema.children;\n delete schema.children;\n }\n\n if (\n schema.component &&\n !schema.component.wrapedAsFormItem &&\n schema.asFormItem\n ) {\n const cache = componentCache.get(schema.component);\n\n if (cache) {\n schema.component = cache;\n } else {\n const cache = asFormItem({\n strictMode: false,\n ...schema.asFormItem\n })(schema.component);\n componentCache.set(schema.component, cache);\n cache.wrapedAsFormItem = true;\n schema.component = cache;\n }\n }\n }\n\n return {path, schema};\n }\n\n getWrappedInstance() {\n return this.cRef;\n }\n\n refFn(ref: any) {\n this.ref = ref;\n }\n\n @autobind\n childRef(ref: any) {\n while (ref && ref.getWrappedInstance) {\n ref = ref.getWrappedInstance();\n }\n\n this.cRef = ref;\n }\n\n async dispatchEvent(\n e: React.MouseEvent<any>,\n data: any\n ): Promise<RendererEvent<any> | void> {\n return await dispatchEvent(e, this.cRef, this.context, data);\n }\n\n renderChild(\n region: string,\n node?: SchemaNode,\n subProps: {\n data?: object;\n [propName: string]: any;\n } = {}\n ) {\n let {schema: _, $path: __, env, ...rest} = this.props;\n let {path: $path} = this.resolveRenderer(this.props);\n\n const omitList = defaultOmitList.concat();\n if (this.renderer) {\n const Component = this.renderer.component;\n Component.propsList &&\n omitList.push.apply(omitList, Component.propsList as Array<string>);\n }\n\n return renderChild(`${$path}${region ? `/${region}` : ''}`, node || '', {\n ...omit(rest, omitList),\n ...subProps,\n data: subProps.data || rest.data,\n env: env\n });\n }\n\n reRender() {\n this.resolveRenderer(this.props, true);\n this.forceUpdate();\n }\n\n render(): JSX.Element | null {\n let {$path: _, schema: __, rootStore, ...rest} = this.props;\n\n if (__ == null) {\n return null;\n }\n\n let {path: $path, schema} = this.resolveRenderer(this.props);\n const theme = this.props.env.theme;\n\n if (Array.isArray(schema)) {\n return renderChildren($path, schema as any, rest) as JSX.Element;\n }\n\n const detectData =\n schema &&\n (schema.detectField === '&' ? rest : rest[schema.detectField || 'data']);\n const exprProps: any = detectData\n ? getExprProperties(schema, detectData, undefined, rest)\n : {};\n\n // 控制显隐\n const visible = isAlive(rootStore)\n ? rootStore.visibleState[schema.id || $path]\n : undefined;\n const disable = isAlive(rootStore)\n ? rootStore.disableState[schema.id || $path]\n : undefined;\n\n if (\n visible === false ||\n (visible !== true &&\n exprProps &&\n (exprProps.hidden ||\n exprProps.visible === false ||\n schema.hidden ||\n schema.visible === false ||\n rest.hidden ||\n rest.visible === false))\n ) {\n (rest as any).invisible = true;\n }\n\n if (schema.children) {\n return rest.invisible\n ? null\n : React.isValidElement(schema.children)\n ? schema.children\n : (schema.children as Function)({\n ...rest,\n ...exprProps,\n $path: $path,\n $schema: schema,\n render: this.renderChild,\n forwardedRef: this.refFn\n });\n } else if (typeof schema.component === 'function') {\n const isSFC = !(schema.component.prototype instanceof React.Component);\n const {\n data: defaultData,\n value: defaultValue,\n activeKey: defaultActiveKey,\n key: propKey,\n ...restSchema\n } = schema;\n return rest.invisible\n ? null\n : React.createElement(schema.component as any, {\n ...rest,\n ...restSchema,\n ...exprProps,\n defaultData,\n defaultValue,\n defaultActiveKey,\n propKey,\n $path: $path,\n $schema: schema,\n ref: isSFC ? undefined : this.refFn,\n forwardedRef: isSFC ? this.refFn : undefined,\n render: this.renderChild\n });\n } else if (Object.keys(schema).length === 0) {\n return null;\n } else if (!this.renderer) {\n return rest.invisible ? null : (\n <LazyComponent\n {...rest}\n {...exprProps}\n getComponent={async () => {\n const result = await rest.env.loadRenderer(\n schema,\n $path,\n this.reRender\n );\n if (result && typeof result === 'function') {\n return result;\n } else if (result && React.isValidElement(result)) {\n return () => result;\n }\n\n this.reRender();\n return () => loadRenderer(schema, $path);\n }}\n $path={$path}\n $schema={schema}\n retry={this.reRender}\n />\n );\n }\n\n const renderer = this.renderer as RendererConfig;\n schema = filterSchema(schema, renderer, rest);\n const {\n data: defaultData,\n value: defaultValue,\n key: propKey,\n activeKey: defaultActiveKey,\n ...restSchema\n } = schema;\n const Component = renderer.component;\n\n // 原来表单项的 visible: false 和 hidden: true 表单项的值和验证是有效的\n // 而 visibleOn 和 hiddenOn 是无效的,\n // 这个本来就是个bug,但是已经被广泛使用了\n // 我只能继续实现这个bug了\n if (\n rest.invisible &&\n (exprProps.hidden ||\n exprProps.visible === false ||\n !renderer.isFormItem ||\n (schema.visible !== false && !schema.hidden))\n ) {\n return null;\n }\n\n const isClassComponent = Component.prototype?.isReactComponent;\n const $schema = {...schema, ...exprProps};\n let props = {\n ...theme.getRendererConfig(renderer.name),\n ...restSchema,\n ...chainEvents(rest, restSchema),\n ...exprProps,\n defaultData: restSchema.defaultData ?? defaultData,\n defaultValue: restSchema.defaultValue ?? defaultValue,\n defaultActiveKey: defaultActiveKey,\n propKey: propKey,\n $path: $path,\n $schema: $schema,\n ref: this.refFn,\n render: this.renderChild,\n rootStore: rootStore,\n disabled: disable ?? rest.disabled ?? restSchema.disabled,\n dispatchEvent: this.dispatchEvent\n };\n\n // 自动解析变量模式,主要是方便直接引入第三方组件库,无需为了支持变量封装一层\n if (renderer.autoVar) {\n for (const key of Object.keys($schema)) {\n if (typeof props[key] === 'string') {\n props[key] = resolveVariableAndFilter(\n props[key],\n props.data,\n '| raw'\n );\n }\n }\n }\n\n const component = isClassComponent ? (\n <Component {...props} ref={this.childRef} />\n ) : (\n <Component {...props} />\n );\n\n return this.props.env.enableAMISDebug ? (\n <DebugWrapper renderer={renderer}>{component}</DebugWrapper>\n ) : (\n component\n );\n }\n}\n\nclass PlaceholderComponent extends React.Component {\n render() {\n const {renderChildren, ...rest} = this.props as any;\n\n if (typeof renderChildren === 'function') {\n return renderChildren(rest);\n }\n\n return null;\n }\n}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -30,16 +30,16 @@ var CmptAction = /** @class */ (function () {
|
|
30
30
|
}
|
31
31
|
// 数据更新
|
32
32
|
if (action.actionType === 'setValue') {
|
33
|
-
if (component.setData) {
|
34
|
-
return [2 /*return*/, component.setData((_b = action.args) === null || _b === void 0 ? void 0 : _b.value)];
|
33
|
+
if (component === null || component === void 0 ? void 0 : component.setData) {
|
34
|
+
return [2 /*return*/, component === null || component === void 0 ? void 0 : component.setData((_b = action.args) === null || _b === void 0 ? void 0 : _b.value)];
|
35
35
|
}
|
36
36
|
else {
|
37
|
-
return [2 /*return*/, (_d = (_c = component.props).onChange) === null || _d === void 0 ? void 0 : _d.call(_c, (_e = action.args) === null || _e === void 0 ? void 0 : _e.value)];
|
37
|
+
return [2 /*return*/, (_d = component === null || component === void 0 ? void 0 : (_c = component.props).onChange) === null || _d === void 0 ? void 0 : _d.call(_c, (_e = action.args) === null || _e === void 0 ? void 0 : _e.value)];
|
38
38
|
}
|
39
39
|
}
|
40
40
|
// 刷新
|
41
41
|
if (action.actionType === 'reload') {
|
42
|
-
return [2 /*return*/, (_f = component.reload) === null || _f === void 0 ? void 0 : _f.call(component, undefined, action.args)];
|
42
|
+
return [2 /*return*/, (_f = component === null || component === void 0 ? void 0 : component.reload) === null || _f === void 0 ? void 0 : _f.call(component, undefined, action.args)];
|
43
43
|
}
|
44
44
|
// 执行组件动作
|
45
45
|
return [2 /*return*/, (_g = component === null || component === void 0 ? void 0 : component.doAction) === null || _g === void 0 ? void 0 : _g.call(component, action, action.args)];
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/actions/CmptAction.ts"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AACA,mCAKkB;AAelB;;;;;;GAMG;AACH;IAAA;IA6CA,CAAC;IA5CO,wBAAG,GAAT,UACE,MAAmB,EACnB,QAAyB,EACzB,KAAyB;;;;;gBAMnB,SAAS,GACb,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW;oBACpE,CAAC,CAAC,MAAA,KAAK,CAAC,OAAO,CAAC,MAAM,0CAAE,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC;oBAC5D,CAAC,CAAC,QAAQ,CAAC;gBAEf,UAAU;gBACV,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;oBAClD,sBAAO,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CACxC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,UAAU,KAAK,MAAM,CAC7B,EAAC;iBACH;qBAAM,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;oBAC9D,sBAAO,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CACxC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,UAAU,KAAK,UAAU,CACjC,EAAC;iBACH;gBAED,OAAO;gBACP,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE;oBACpC,IAAI,SAAS,
|
9
|
+
"mappings": ";;;;AACA,mCAKkB;AAelB;;;;;;GAMG;AACH;IAAA;IA6CA,CAAC;IA5CO,wBAAG,GAAT,UACE,MAAmB,EACnB,QAAyB,EACzB,KAAyB;;;;;gBAMnB,SAAS,GACb,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW;oBACpE,CAAC,CAAC,MAAA,KAAK,CAAC,OAAO,CAAC,MAAM,0CAAE,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC;oBAC5D,CAAC,CAAC,QAAQ,CAAC;gBAEf,UAAU;gBACV,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;oBAClD,sBAAO,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CACxC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,UAAU,KAAK,MAAM,CAC7B,EAAC;iBACH;qBAAM,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;oBAC9D,sBAAO,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CACxC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,UAAU,KAAK,UAAU,CACjC,EAAC;iBACH;gBAED,OAAO;gBACP,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE;oBACpC,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,EAAE;wBACtB,sBAAO,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,MAAA,MAAM,CAAC,IAAI,0CAAE,KAAK,CAAC,EAAC;qBAC/C;yBAAM;wBACL,sBAAO,MAAA,SAAS,aAAT,SAAS,6BAAT,SAAS,CAAE,KAAK,EAAC,QAAQ,mDAAG,MAAA,MAAM,CAAC,IAAI,0CAAE,KAAK,CAAC,EAAC;qBACxD;iBACF;gBAED,KAAK;gBACL,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE;oBAClC,sBAAO,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,+CAAjB,SAAS,EAAW,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAC;iBACpD;gBAED,SAAS;gBACT,sBAAO,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,+CAAnB,SAAS,EAAa,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAC;;;KACnD;IACH,iBAAC;AAAD,CAAC,AA7CD,IA6CC;AA7CY,gCAAU;AA+CvB,IAAA,uBAAc,EAAC,WAAW,EAAE,IAAI,UAAU,EAAE,CAAC,CAAC",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import {RendererEvent} from '../utils/renderer-event';\nimport {\n RendererAction,\n ListenerAction,\n ListenerContext,\n registerAction\n} from './Action';\n\nexport interface ICmptAction extends ListenerAction {\n actionType:\n | 'setValue'\n | 'show'\n | 'hidden'\n | 'enabled'\n | 'disabled'\n | 'reload';\n args: {\n value?: string | {[key: string]: string};\n };\n}\n\n/**\n * 组件动作\n *\n * @export\n * @class CmptAction\n * @implements {Action}\n */\nexport class CmptAction implements RendererAction {\n async run(\n action: ICmptAction,\n renderer: ListenerContext,\n event: RendererEvent<any>\n ) {\n /**\n * 根据唯一ID查找指定组件\n * 触发组件未指定id或未指定响应组件componentId,则使用触发组件响应\n */\n const component =\n action.componentId && renderer.props.$schema.id !== action.componentId\n ? event.context.scoped?.getComponentById(action.componentId)\n : renderer;\n\n // 显隐&状态控制\n if (['show', 'hidden'].includes(action.actionType)) {\n return renderer.props.rootStore.setVisible(\n action.componentId,\n action.actionType === 'show'\n );\n } else if (['enabled', 'disabled'].includes(action.actionType)) {\n return renderer.props.rootStore.setDisable(\n action.componentId,\n action.actionType === 'disabled'\n );\n }\n\n // 数据更新\n if (action.actionType === 'setValue') {\n if (component
|
11
|
+
"import {RendererEvent} from '../utils/renderer-event';\nimport {\n RendererAction,\n ListenerAction,\n ListenerContext,\n registerAction\n} from './Action';\n\nexport interface ICmptAction extends ListenerAction {\n actionType:\n | 'setValue'\n | 'show'\n | 'hidden'\n | 'enabled'\n | 'disabled'\n | 'reload';\n args: {\n value?: string | {[key: string]: string};\n };\n}\n\n/**\n * 组件动作\n *\n * @export\n * @class CmptAction\n * @implements {Action}\n */\nexport class CmptAction implements RendererAction {\n async run(\n action: ICmptAction,\n renderer: ListenerContext,\n event: RendererEvent<any>\n ) {\n /**\n * 根据唯一ID查找指定组件\n * 触发组件未指定id或未指定响应组件componentId,则使用触发组件响应\n */\n const component =\n action.componentId && renderer.props.$schema.id !== action.componentId\n ? event.context.scoped?.getComponentById(action.componentId)\n : renderer;\n\n // 显隐&状态控制\n if (['show', 'hidden'].includes(action.actionType)) {\n return renderer.props.rootStore.setVisible(\n action.componentId,\n action.actionType === 'show'\n );\n } else if (['enabled', 'disabled'].includes(action.actionType)) {\n return renderer.props.rootStore.setDisable(\n action.componentId,\n action.actionType === 'disabled'\n );\n }\n\n // 数据更新\n if (action.actionType === 'setValue') {\n if (component?.setData) {\n return component?.setData(action.args?.value);\n } else {\n return component?.props.onChange?.(action.args?.value);\n }\n }\n\n // 刷新\n if (action.actionType === 'reload') {\n return component?.reload?.(undefined, action.args);\n }\n\n // 执行组件动作\n return component?.doAction?.(action, action.args);\n }\n}\n\nregisterAction('component', new CmptAction());\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -60,12 +60,12 @@ export interface WithRemoteConfigSettings {
|
|
60
60
|
* 懒加载选项相关,结束懒加载的回调
|
61
61
|
*/
|
62
62
|
afterDeferLoad?: (item: any, indexes: Array<number>, reponse: Payload, config: any, props: any) => any;
|
63
|
-
injectedPropsFilter?: (
|
63
|
+
injectedPropsFilter?: (injectedProps: {
|
64
64
|
config: any;
|
65
65
|
loading?: boolean;
|
66
66
|
deferLoad: (term: string) => any;
|
67
67
|
updateConfig: (config: any) => void;
|
68
|
-
}) => any;
|
68
|
+
}, props: any) => any;
|
69
69
|
}
|
70
70
|
export declare function withRemoteConfig<P = any>(config?: WithRemoteConfigSettings): <T extends React.ComponentType<React.ComponentProps<T> & RemoteOptionsProps<P>>>(ComposedComponent: T) => {
|
71
71
|
new (props: Omit<JSX.LibraryManagedAttributes<T, Omit<React.ComponentProps<T>, keyof RemoteOptionsProps<P>>> & OutterProps & {
|
@@ -100,6 +100,8 @@ function withRemoteConfig(config) {
|
|
100
100
|
props.store.setComponent(_this);
|
101
101
|
_this.deferLoadConfig = _this.deferLoadConfig.bind(_this);
|
102
102
|
(_a = props.remoteConfigRef) === null || _a === void 0 ? void 0 : _a.call(props, _this);
|
103
|
+
props.store.setData(props.data);
|
104
|
+
_this.syncConfig();
|
103
105
|
return _this;
|
104
106
|
}
|
105
107
|
class_1.prototype.componentDidMount = function () {
|
@@ -107,9 +109,7 @@ function withRemoteConfig(config) {
|
|
107
109
|
var env = this.props.env || this.context;
|
108
110
|
var _a = this.props, store = _a.store, data = _a.data;
|
109
111
|
var source = this.props[config.sourceField || 'source'];
|
110
|
-
store.setData(data);
|
111
112
|
if ((0, tpl_builtin_1.isPureVariable)(source)) {
|
112
|
-
this.syncConfig();
|
113
113
|
this.toDispose.push((0, mobx_1.reaction)(function () {
|
114
114
|
return (0, tpl_builtin_1.resolveVariableAndFilter)(source, store.data, '| raw');
|
115
115
|
}, function () { return _this.syncConfig(); }));
|
@@ -187,6 +187,9 @@ function withRemoteConfig(config) {
|
|
187
187
|
if ((0, tpl_builtin_1.isPureVariable)(source)) {
|
188
188
|
store.setConfig((0, tpl_builtin_1.resolveVariableAndFilter)(source, data, '| raw') || [], config, 'syncConfig');
|
189
189
|
}
|
190
|
+
else if ((0, helper_1.isObject)(source) && !(0, api_1.isEffectiveApi)(source, data)) {
|
191
|
+
store.setConfig(source, config, 'syncConfig');
|
192
|
+
}
|
190
193
|
};
|
191
194
|
class_1.prototype.deferLoadConfig = function (item) {
|
192
195
|
var _a, _b;
|
@@ -242,7 +245,7 @@ function withRemoteConfig(config) {
|
|
242
245
|
return (react_1.default.createElement(ComposedComponent, (0, tslib_1.__assign)({}, rest, (env && (0, api_1.isEffectiveApi)(autoComplete) && this.loadOptions
|
243
246
|
? { loadOptions: this.loadOptions }
|
244
247
|
: {}), (config.injectedPropsFilter
|
245
|
-
? config.injectedPropsFilter(injectedProps)
|
248
|
+
? config.injectedPropsFilter(injectedProps, this.props)
|
246
249
|
: injectedProps))));
|
247
250
|
};
|
248
251
|
return class_1;
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/WithRemoteConfig.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA;;;GAGG;AACH,6DAA0B;AAC1B,iGAA0D;AAC1D,0EAAuC;AAGvC,yCAAsC;AAEtC,8BAA+C;AAE/C,mDAA+D;AAC/D,oCAKsB;AACtB,oDAI8B;AAC9B,6BAA8B;AAC9B,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * 一个可以拉取远程配置的 HOC\n *\n */\nimport React from 'react';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport debounce from 'lodash/debounce';\nimport {Api, ApiObject, Payload} from '../types';\nimport {SchemaApi, SchemaTokenizeableString} from '../Schema';\nimport {withStore} from './WithStore';\n\nimport {EnvContext, RendererEnv} from '../env';\n\nimport {flow, Instance, isAlive, types} from 'mobx-state-tree';\nimport {\n buildApi,\n isEffectiveApi,\n normalizeApi,\n normalizeApiResponseData\n} from '../utils/api';\nimport {\n isPureVariable,\n resolveVariableAndFilter,\n tokenize\n} from '../utils/tpl-builtin';\nimport {reaction} from 'mobx';\nimport {createObject, findIndex, findTreeIndex} from '../utils/helper';\n\nexport const Store = types\n .model('RemoteConfigStore')\n .props({\n fetching: false,\n errorMsg: '',\n config: types.frozen(),\n data: types.frozen({})\n })\n .actions(self => {\n let component: any = undefined;\n\n const load: (\n env: RendererEnv,\n api: Api,\n ctx: any,\n config: WithRemoteConfigSettings\n ) => Promise<any> = flow(function* (env, api, ctx, config = {}): any {\n try {\n self.fetching = true;\n const ret: Payload = yield env.fetcher(api, ctx);\n if (!isAlive(self)) {\n return;\n }\n\n if (ret.ok) {\n const data = normalizeApiResponseData(ret.data);\n let options = config.adaptor\n ? config.adaptor(data, component.props)\n : data;\n (self as any).setConfig(options, config, 'remote');\n config.afterLoad?.(data, self.config, component.props);\n return ret;\n } else {\n throw new Error(ret.msg || 'fetch error');\n }\n } catch (e) {\n isAlive(self) && (self.errorMsg = e.message);\n } finally {\n isAlive(self) && (self.fetching = false);\n }\n });\n\n return {\n setComponent(c: any) {\n component = c;\n },\n\n load,\n setData(data: any) {\n self.data = data || {};\n },\n setConfig(\n options: any,\n config: WithRemoteConfigSettings,\n motivation?: any\n ) {\n if (config.normalizeConfig) {\n options =\n config.normalizeConfig(\n options,\n self.config,\n component.props,\n motivation\n ) || options;\n }\n\n self.config = options;\n }\n };\n });\n\nexport type IStore = Instance<typeof Store>;\n\nexport interface OutterProps {\n env?: RendererEnv;\n data: any;\n source?: SchemaApi | SchemaTokenizeableString;\n autoComplete?: SchemaApi | SchemaTokenizeableString;\n deferApi?: SchemaApi;\n remoteConfigRef?: (\n instance:\n | {\n loadConfig: (ctx?: any) => Promise<any> | void;\n setConfig: (value: any) => void;\n }\n | undefined\n ) => void;\n}\n\nexport interface RemoteOptionsProps<T = any> {\n config: T;\n loading?: boolean;\n deferLoad: (item: any) => Promise<any>;\n updateConfig: (value: T, ctx?: any) => void;\n}\n\nexport interface WithRemoteConfigSettings {\n sourceField?: string;\n\n /**\n * 从接口返回数据适配到配置\n */\n adaptor?: (json: any, props: any) => any;\n\n /**\n * 配置格式化\n */\n normalizeConfig?: (\n config: any,\n origin: any,\n props: any,\n motivation?: any\n ) => any;\n\n /**\n * 请求返回后的回调\n */\n afterLoad?: (ret: any, config: any, props: any) => void;\n\n /**\n * 懒加载选项相关,开始懒加载的回调\n */\n beforeDeferLoad?: (\n item: any,\n indexes: Array<number>,\n config: any,\n props: any\n ) => any;\n\n /**\n * 懒加载选项相关,结束懒加载的回调\n */\n afterDeferLoad?: (\n item: any,\n indexes: Array<number>,\n reponse: Payload,\n config: any,\n props: any\n ) => any;\n\n injectedPropsFilter?: (props: {\n config: any;\n loading?: boolean;\n deferLoad: (term: string) => any;\n updateConfig: (config: any) => void;\n }) => any;\n}\n\nexport function withRemoteConfig<P = any>(\n config: WithRemoteConfigSettings = {}\n) {\n return function <\n T extends React.ComponentType<\n React.ComponentProps<T> & RemoteOptionsProps<P>\n >\n >(ComposedComponent: T) {\n type FinalOutterProps = JSX.LibraryManagedAttributes<\n T,\n Omit<React.ComponentProps<T>, keyof RemoteOptionsProps<P>>\n > &\n OutterProps;\n\n const result = hoistNonReactStatic(\n withStore(() => Store.create())(\n class extends React.Component<\n FinalOutterProps & {\n store: IStore;\n }\n > {\n static displayName = `WithRemoteConfig(${\n ComposedComponent.displayName || ComposedComponent.name\n })`;\n static ComposedComponent =\n ComposedComponent as React.ComponentType<T>;\n static contextType = EnvContext;\n toDispose: Array<() => void> = [];\n\n loadOptions = debounce(this.loadAutoComplete.bind(this), 250, {\n trailing: true,\n leading: false\n });\n\n constructor(\n props: FinalOutterProps & {\n store: IStore;\n }\n ) {\n super(props);\n\n this.setConfig = this.setConfig.bind(this);\n props.store.setComponent(this);\n this.deferLoadConfig = this.deferLoadConfig.bind(this);\n props.remoteConfigRef?.(this);\n }\n\n componentDidMount() {\n const env: RendererEnv = this.props.env || this.context;\n const {store, data} = this.props;\n const source = (this.props as any)[config.sourceField || 'source'];\n\n store.setData(data);\n\n if (isPureVariable(source)) {\n this.syncConfig();\n this.toDispose.push(\n reaction(\n () =>\n resolveVariableAndFilter(\n source as string,\n store.data,\n '| raw'\n ),\n () => this.syncConfig()\n )\n );\n } else if (env && isEffectiveApi(source, data)) {\n this.loadConfig();\n (source as ApiObject).autoRefresh !== false &&\n this.toDispose.push(\n reaction(\n () => {\n const api = normalizeApi(source as string);\n return api.trackExpression\n ? tokenize(api.trackExpression, store.data)\n : buildApi(api, store.data, {\n ignoreData: true\n }).url;\n },\n () => this.loadConfig()\n )\n );\n }\n }\n\n componentDidUpdate(prevProps: any) {\n const props = this.props;\n\n if (props.data !== prevProps.data) {\n props.store.setData(props.data);\n }\n }\n\n componentWillUnmount() {\n this.toDispose.forEach(fn => fn());\n this.toDispose = [];\n\n this.props.remoteConfigRef?.(undefined);\n this.loadOptions.cancel();\n }\n\n async loadConfig(ctx = this.props.data) {\n const env: RendererEnv = this.props.env || this.context;\n const {store} = this.props;\n const source = (this.props as any)[config.sourceField || 'source'];\n\n if (env && isEffectiveApi(source, ctx)) {\n await store.load(env, source, ctx, config);\n }\n }\n\n loadAutoComplete(input: string) {\n const env: RendererEnv = this.props.env || this.context;\n const {autoComplete, data, store} = this.props;\n\n if (!env || !env.fetcher) {\n throw new Error('fetcher is required');\n }\n\n const ctx = createObject(data, {\n term: input,\n value: input\n });\n\n if (!isEffectiveApi(autoComplete, ctx)) {\n return Promise.resolve({\n options: []\n });\n }\n\n return store.load(env, autoComplete, ctx, config);\n }\n\n setConfig(value: any, ctx?: any) {\n const {store} = this.props;\n store.setConfig(value, config, ctx);\n }\n\n syncConfig() {\n const {store, data} = this.props;\n const source = (this.props as any)[config.sourceField || 'source'];\n\n if (isPureVariable(source)) {\n store.setConfig(\n resolveVariableAndFilter(source as string, data, '| raw') || [],\n config,\n 'syncConfig'\n );\n }\n }\n\n async deferLoadConfig(item: any) {\n const {store, data, deferApi} = this.props;\n const source = (this.props as any)[config.sourceField || 'source'];\n const env: RendererEnv = this.props.env || this.context;\n const indexes = findTreeIndex(store.config, a => a === item)!;\n\n const ret = config.beforeDeferLoad?.(\n item,\n indexes,\n store.config,\n this.props\n );\n\n ret && store.setConfig(ret, config, 'before-defer-load');\n let response: Payload;\n try {\n if (!isEffectiveApi(item.deferApi || deferApi || source)) {\n throw new Error('deferApi is required');\n }\n\n response = await env.fetcher(\n item.deferApi || deferApi || source,\n createObject(data, item)\n );\n } catch (e) {\n response = {\n ok: false,\n msg: e.message,\n status: 500,\n data: undefined\n };\n }\n const ret2 = config.afterDeferLoad?.(\n item,\n indexes, // 只能假定还是那个 index 了\n response,\n store.config,\n this.props\n );\n ret2 && store.setConfig(ret2, config, 'after-defer-load');\n }\n\n render() {\n const store = this.props.store;\n const env: RendererEnv = this.props.env || this.context;\n const injectedProps: RemoteOptionsProps<P> = {\n config: store.config,\n loading: store.fetching,\n deferLoad: this.deferLoadConfig,\n updateConfig: this.setConfig\n };\n const {remoteConfigRef, autoComplete, ...rest} = this.props;\n\n return (\n <ComposedComponent\n {...(rest as JSX.LibraryManagedAttributes<\n T,\n React.ComponentProps<T>\n >)}\n {...(env && isEffectiveApi(autoComplete) && this.loadOptions\n ? {loadOptions: this.loadOptions}\n : {})}\n {...(config.injectedPropsFilter\n ? config.injectedPropsFilter(injectedProps)\n : injectedProps)}\n />\n );\n }\n }\n ),\n ComposedComponent\n );\n\n return result as typeof result & {\n ComposedComponent: T;\n };\n };\n}\n"
|
11
|
+
"/**\n * 一个可以拉取远程配置的 HOC\n *\n */\nimport React from 'react';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport debounce from 'lodash/debounce';\nimport {Api, ApiObject, Payload} from '../types';\nimport {SchemaApi, SchemaTokenizeableString} from '../Schema';\nimport {withStore} from './WithStore';\n\nimport {EnvContext, RendererEnv} from '../env';\n\nimport {flow, Instance, isAlive, types} from 'mobx-state-tree';\nimport {\n buildApi,\n isEffectiveApi,\n normalizeApi,\n normalizeApiResponseData\n} from '../utils/api';\nimport {\n isPureVariable,\n resolveVariableAndFilter,\n tokenize\n} from '../utils/tpl-builtin';\nimport {reaction} from 'mobx';\nimport {\n createObject,\n findIndex,\n findTreeIndex,\n isObject\n} from '../utils/helper';\n\nexport const Store = types\n .model('RemoteConfigStore')\n .props({\n fetching: false,\n errorMsg: '',\n config: types.frozen(),\n data: types.frozen({})\n })\n .actions(self => {\n let component: any = undefined;\n\n const load: (\n env: RendererEnv,\n api: Api,\n ctx: any,\n config: WithRemoteConfigSettings\n ) => Promise<any> = flow(function* (env, api, ctx, config = {}): any {\n try {\n self.fetching = true;\n const ret: Payload = yield env.fetcher(api, ctx);\n if (!isAlive(self)) {\n return;\n }\n\n if (ret.ok) {\n const data = normalizeApiResponseData(ret.data);\n let options = config.adaptor\n ? config.adaptor(data, component.props)\n : data;\n (self as any).setConfig(options, config, 'remote');\n config.afterLoad?.(data, self.config, component.props);\n return ret;\n } else {\n throw new Error(ret.msg || 'fetch error');\n }\n } catch (e) {\n isAlive(self) && (self.errorMsg = e.message);\n } finally {\n isAlive(self) && (self.fetching = false);\n }\n });\n\n return {\n setComponent(c: any) {\n component = c;\n },\n\n load,\n setData(data: any) {\n self.data = data || {};\n },\n setConfig(\n options: any,\n config: WithRemoteConfigSettings,\n motivation?: any\n ) {\n if (config.normalizeConfig) {\n options =\n config.normalizeConfig(\n options,\n self.config,\n component.props,\n motivation\n ) || options;\n }\n\n self.config = options;\n }\n };\n });\n\nexport type IStore = Instance<typeof Store>;\n\nexport interface OutterProps {\n env?: RendererEnv;\n data: any;\n source?: SchemaApi | SchemaTokenizeableString;\n autoComplete?: SchemaApi | SchemaTokenizeableString;\n deferApi?: SchemaApi;\n remoteConfigRef?: (\n instance:\n | {\n loadConfig: (ctx?: any) => Promise<any> | void;\n setConfig: (value: any) => void;\n }\n | undefined\n ) => void;\n}\n\nexport interface RemoteOptionsProps<T = any> {\n config: T;\n loading?: boolean;\n deferLoad: (item: any) => Promise<any>;\n updateConfig: (value: T, ctx?: any) => void;\n}\n\nexport interface WithRemoteConfigSettings {\n sourceField?: string;\n\n /**\n * 从接口返回数据适配到配置\n */\n adaptor?: (json: any, props: any) => any;\n\n /**\n * 配置格式化\n */\n normalizeConfig?: (\n config: any,\n origin: any,\n props: any,\n motivation?: any\n ) => any;\n\n /**\n * 请求返回后的回调\n */\n afterLoad?: (ret: any, config: any, props: any) => void;\n\n /**\n * 懒加载选项相关,开始懒加载的回调\n */\n beforeDeferLoad?: (\n item: any,\n indexes: Array<number>,\n config: any,\n props: any\n ) => any;\n\n /**\n * 懒加载选项相关,结束懒加载的回调\n */\n afterDeferLoad?: (\n item: any,\n indexes: Array<number>,\n reponse: Payload,\n config: any,\n props: any\n ) => any;\n\n injectedPropsFilter?: (\n injectedProps: {\n config: any;\n loading?: boolean;\n deferLoad: (term: string) => any;\n updateConfig: (config: any) => void;\n },\n props: any\n ) => any;\n}\n\nexport function withRemoteConfig<P = any>(\n config: WithRemoteConfigSettings = {}\n) {\n return function <\n T extends React.ComponentType<\n React.ComponentProps<T> & RemoteOptionsProps<P>\n >\n >(ComposedComponent: T) {\n type FinalOutterProps = JSX.LibraryManagedAttributes<\n T,\n Omit<React.ComponentProps<T>, keyof RemoteOptionsProps<P>>\n > &\n OutterProps;\n\n const result = hoistNonReactStatic(\n withStore(() => Store.create())(\n class extends React.Component<\n FinalOutterProps & {\n store: IStore;\n }\n > {\n static displayName = `WithRemoteConfig(${\n ComposedComponent.displayName || ComposedComponent.name\n })`;\n static ComposedComponent =\n ComposedComponent as React.ComponentType<T>;\n static contextType = EnvContext;\n toDispose: Array<() => void> = [];\n\n loadOptions = debounce(this.loadAutoComplete.bind(this), 250, {\n trailing: true,\n leading: false\n });\n\n constructor(\n props: FinalOutterProps & {\n store: IStore;\n }\n ) {\n super(props);\n\n this.setConfig = this.setConfig.bind(this);\n props.store.setComponent(this);\n this.deferLoadConfig = this.deferLoadConfig.bind(this);\n props.remoteConfigRef?.(this);\n props.store.setData(props.data);\n this.syncConfig();\n }\n\n componentDidMount() {\n const env: RendererEnv = this.props.env || this.context;\n const {store, data} = this.props;\n const source = (this.props as any)[config.sourceField || 'source'];\n\n if (isPureVariable(source)) {\n this.toDispose.push(\n reaction(\n () =>\n resolveVariableAndFilter(\n source as string,\n store.data,\n '| raw'\n ),\n () => this.syncConfig()\n )\n );\n } else if (env && isEffectiveApi(source, data)) {\n this.loadConfig();\n (source as ApiObject).autoRefresh !== false &&\n this.toDispose.push(\n reaction(\n () => {\n const api = normalizeApi(source as string);\n return api.trackExpression\n ? tokenize(api.trackExpression, store.data)\n : buildApi(api, store.data, {\n ignoreData: true\n }).url;\n },\n () => this.loadConfig()\n )\n );\n }\n }\n\n componentDidUpdate(prevProps: any) {\n const props = this.props;\n\n if (props.data !== prevProps.data) {\n props.store.setData(props.data);\n }\n }\n\n componentWillUnmount() {\n this.toDispose.forEach(fn => fn());\n this.toDispose = [];\n\n this.props.remoteConfigRef?.(undefined);\n this.loadOptions.cancel();\n }\n\n async loadConfig(ctx = this.props.data) {\n const env: RendererEnv = this.props.env || this.context;\n const {store} = this.props;\n const source = (this.props as any)[config.sourceField || 'source'];\n\n if (env && isEffectiveApi(source, ctx)) {\n await store.load(env, source, ctx, config);\n }\n }\n\n loadAutoComplete(input: string) {\n const env: RendererEnv = this.props.env || this.context;\n const {autoComplete, data, store} = this.props;\n\n if (!env || !env.fetcher) {\n throw new Error('fetcher is required');\n }\n\n const ctx = createObject(data, {\n term: input,\n value: input\n });\n\n if (!isEffectiveApi(autoComplete, ctx)) {\n return Promise.resolve({\n options: []\n });\n }\n\n return store.load(env, autoComplete, ctx, config);\n }\n\n setConfig(value: any, ctx?: any) {\n const {store} = this.props;\n store.setConfig(value, config, ctx);\n }\n\n syncConfig() {\n const {store, data} = this.props;\n const source = (this.props as any)[config.sourceField || 'source'];\n\n if (isPureVariable(source)) {\n store.setConfig(\n resolveVariableAndFilter(source as string, data, '| raw') || [],\n config,\n 'syncConfig'\n );\n } else if (isObject(source) && !isEffectiveApi(source, data)) {\n store.setConfig(source, config, 'syncConfig');\n }\n }\n\n async deferLoadConfig(item: any) {\n const {store, data, deferApi} = this.props;\n const source = (this.props as any)[config.sourceField || 'source'];\n const env: RendererEnv = this.props.env || this.context;\n const indexes = findTreeIndex(store.config, a => a === item)!;\n\n const ret = config.beforeDeferLoad?.(\n item,\n indexes,\n store.config,\n this.props\n );\n\n ret && store.setConfig(ret, config, 'before-defer-load');\n let response: Payload;\n try {\n if (!isEffectiveApi(item.deferApi || deferApi || source)) {\n throw new Error('deferApi is required');\n }\n\n response = await env.fetcher(\n item.deferApi || deferApi || source,\n createObject(data, item)\n );\n } catch (e) {\n response = {\n ok: false,\n msg: e.message,\n status: 500,\n data: undefined\n };\n }\n const ret2 = config.afterDeferLoad?.(\n item,\n indexes, // 只能假定还是那个 index 了\n response,\n store.config,\n this.props\n );\n ret2 && store.setConfig(ret2, config, 'after-defer-load');\n }\n\n render() {\n const store = this.props.store;\n const env: RendererEnv = this.props.env || this.context;\n const injectedProps: RemoteOptionsProps<P> = {\n config: store.config,\n loading: store.fetching,\n deferLoad: this.deferLoadConfig,\n updateConfig: this.setConfig\n };\n const {remoteConfigRef, autoComplete, ...rest} = this.props;\n\n return (\n <ComposedComponent\n {...(rest as JSX.LibraryManagedAttributes<\n T,\n React.ComponentProps<T>\n >)}\n {...(env && isEffectiveApi(autoComplete) && this.loadOptions\n ? {loadOptions: this.loadOptions}\n : {})}\n {...(config.injectedPropsFilter\n ? config.injectedPropsFilter(injectedProps, this.props)\n : injectedProps)}\n />\n );\n }\n }\n ),\n ComposedComponent\n );\n\n return result as typeof result & {\n ComposedComponent: T;\n };\n };\n}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ClassNamesFn } from '../../theme';
|
3
|
+
export interface ItemActionsProps {
|
4
|
+
classnames: ClassNamesFn;
|
5
|
+
children?: JSX.Element;
|
6
|
+
dom: HTMLTableRowElement;
|
7
|
+
}
|
8
|
+
export default class ItemActionsWrapper extends React.Component<ItemActionsProps, {}> {
|
9
|
+
render(): JSX.Element | undefined;
|
10
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
var tslib_1 = require("tslib");
|
4
|
+
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
5
|
+
var ItemActionsWrapper = /** @class */ (function (_super) {
|
6
|
+
(0, tslib_1.__extends)(ItemActionsWrapper, _super);
|
7
|
+
function ItemActionsWrapper() {
|
8
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
9
|
+
}
|
10
|
+
ItemActionsWrapper.prototype.render = function () {
|
11
|
+
var _a, _b;
|
12
|
+
var _c = this.props, cx = _c.classnames, children = _c.children, dom = _c.dom;
|
13
|
+
if (!dom) {
|
14
|
+
return;
|
15
|
+
}
|
16
|
+
var frame = (_b = (_a = dom.closest('table')) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement;
|
17
|
+
var rect = dom.getBoundingClientRect();
|
18
|
+
var height = rect.height;
|
19
|
+
var top = rect.top - frame.getBoundingClientRect().top;
|
20
|
+
return (react_1.default.createElement("div", { className: cx('Table-itemActions-wrap'), style: { top: top + 'px', height: height + 'px' } }, children));
|
21
|
+
};
|
22
|
+
return ItemActionsWrapper;
|
23
|
+
}(react_1.default.Component));
|
24
|
+
exports.default = ItemActionsWrapper;
|
25
|
+
//# sourceMappingURL=./components/table/ItemActionsWrapper.js.map
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"file": "ItemActionsWrapper.js",
|
4
|
+
"sourceRoot": "",
|
5
|
+
"sources": [
|
6
|
+
"/src/components/table/ItemActionsWrapper.tsx"
|
7
|
+
],
|
8
|
+
"names": [],
|
9
|
+
"mappings": ";;;AAAA,6DAA0B;AAU1B;IAAgD,mDAAqC;IAArF;;IAqBA,CAAC;IApBC,mCAAM,GAAN;;QACQ,IAAA,KAAkC,IAAI,CAAC,KAAK,EAA/B,EAAE,gBAAA,EAAE,QAAQ,cAAA,EAAE,GAAG,SAAc,CAAC;QACnD,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;SACR;QAED,IAAM,KAAK,GAAG,MAAA,MAAA,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,0CAAE,aAAa,0CAAE,aAA4B,CAAC;QAEhF,IAAM,IAAI,GAAG,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACzC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;QAEzD,OAAO,CACL,uCACE,SAAS,EAAE,EAAE,CAAC,wBAAwB,CAAC,EACvC,KAAK,EAAE,EAAC,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAC,IAC9C,QAAQ,CACL,CACP,CAAC;IACJ,CAAC;IACH,yBAAC;AAAD,CAAC,AArBD,CAAgD,eAAK,CAAC,SAAS,GAqB9D",
|
10
|
+
"sourcesContent": [
|
11
|
+
"import React from 'react';\n\nimport {ClassNamesFn} from '../../theme';\n\nexport interface ItemActionsProps {\n classnames: ClassNamesFn;\n children?: JSX.Element;\n dom: HTMLTableRowElement;\n}\n\nexport default class ItemActionsWrapper extends React.Component<ItemActionsProps, {}> {\n render() {\n const {classnames: cx, children, dom} = this.props;\n if (!dom) {\n return;\n }\n\n const frame = dom.closest('table')?.parentElement?.parentElement as HTMLElement;\n\n const rect = dom.getBoundingClientRect();\n const height = rect.height;\n const top = rect.top - frame.getBoundingClientRect().top;\n\n return (\n <div\n className={cx('Table-itemActions-wrap')}\n style={{top: top + 'px', height: height + 'px'}}>\n {children}\n </div>\n );\n }\n}\n"
|
12
|
+
]
|
13
|
+
}
|