amis 1.6.5-beta.4 → 1.8.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Schema.d.ts +3 -2
- package/lib/Schema.js +0 -1
- package/lib/Schema.js.map +2 -2
- package/lib/components/Alert2.js +4 -2
- package/lib/components/Alert2.js.map +2 -2
- package/lib/components/Avatar.d.ts +20 -20
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/CityArea.js +3 -0
- package/lib/components/CityArea.js.map +2 -2
- package/lib/components/DatePicker.d.ts +3 -0
- package/lib/components/DatePicker.js +41 -7
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/PopUp.js +2 -1
- package/lib/components/PopUp.js.map +2 -2
- package/lib/components/Progress.js +12 -9
- package/lib/components/Progress.js.map +2 -2
- package/lib/components/Range.js.map +2 -2
- package/lib/components/Tabs.d.ts +27 -23
- package/lib/components/Tabs.js +37 -22
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/TooltipWrapper.d.ts +21 -20
- package/lib/components/TooltipWrapper.js +2 -2
- package/lib/components/TooltipWrapper.js.map +2 -2
- package/lib/components/calendar/Calendar.js +16 -12
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +3 -1
- package/lib/components/formula/Editor.js +20 -2
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/Picker.d.ts +5 -0
- package/lib/components/formula/Picker.js +19 -4
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/factory.js +2 -2
- package/lib/factory.js.map +2 -2
- package/lib/icons/trash.js +10 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/renderers/Action.d.ts +1 -1
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/ButtonGroup.d.ts +2 -2
- package/lib/renderers/ButtonGroup.js.map +1 -1
- package/lib/renderers/Dialog.d.ts +4 -0
- package/lib/renderers/Dialog.js +4 -3
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +2 -0
- package/lib/renderers/DropDownButton.js +13 -4
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Form/Combo.d.ts +4 -3
- package/lib/renderers/Form/Combo.js +81 -32
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/InputCity.js +4 -1
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.js +3 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +3 -1
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +3 -1
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputExcel.d.ts +4 -0
- package/lib/renderers/Form/InputExcel.js +33 -6
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputFile.d.ts +4 -1
- package/lib/renderers/Form/InputFile.js +9 -0
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +4 -0
- package/lib/renderers/Form/InputFormula.js +2 -2
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +4 -1
- package/lib/renderers/Form/InputImage.js +12 -2
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputRange.d.ts +27 -9
- package/lib/renderers/Form/InputRange.js +88 -23
- package/lib/renderers/Form/InputRange.js.map +2 -2
- package/lib/renderers/Form/InputTable.js +4 -2
- package/lib/renderers/Form/InputTable.js.map +2 -2
- package/lib/renderers/Form/Select.js +3 -1
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/Switch.d.ts +7 -6
- package/lib/renderers/Form/Switch.js +4 -1
- package/lib/renderers/Form/Switch.js.map +2 -2
- package/lib/renderers/Log.js +2 -1
- package/lib/renderers/Log.js.map +2 -2
- package/lib/renderers/Page.js +2 -3
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/PopOver.js +1 -1
- package/lib/renderers/PopOver.js.map +2 -2
- package/lib/renderers/Progress.d.ts +1 -1
- package/lib/renderers/Progress.js +1 -1
- package/lib/renderers/Progress.js.map +2 -2
- package/lib/renderers/Table/TableRow.js +1 -1
- package/lib/renderers/Table/TableRow.js.map +2 -2
- package/lib/renderers/Tabs.d.ts +10 -2
- package/lib/renderers/Tabs.js +3 -3
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/TooltipWrapper.d.ts +104 -0
- package/lib/renderers/TooltipWrapper.js +59 -0
- package/lib/renderers/TooltipWrapper.js.map +13 -0
- package/lib/renderers/Video.d.ts +6 -0
- package/lib/renderers/Video.js +13 -6
- package/lib/renderers/Video.js.map +2 -2
- package/lib/store/table.js +1 -1
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +242 -46
- package/lib/themes/ang.css +250 -41
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +242 -46
- package/lib/themes/antd.css +250 -41
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +231 -35
- package/lib/themes/cxd.css +252 -42
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +242 -46
- package/lib/themes/dark.css +250 -41
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +231 -35
- package/lib/themes/default.css +252 -42
- package/lib/themes/default.css.map +1 -1
- package/package.json +1 -1
- package/schema.json +15871 -608
- package/scss/_properties.scss +23 -12
- package/scss/components/_alert.scss +1 -1
- package/scss/components/_button-group.scss +15 -0
- package/scss/components/_city-area.scss +2 -0
- package/scss/components/_formula.scss +18 -0
- package/scss/components/_popup.scss +13 -3
- package/scss/components/_progress.scss +3 -8
- package/scss/components/_tabs.scss +145 -13
- package/scss/components/_tooltip.scss +72 -0
- package/scss/components/form/_date.scss +13 -0
- package/scss/components/form/_number.scss +2 -0
- package/scss/components/form/_switch.scss +1 -3
- package/scss/themes/_cxd-variables.scss +2 -1
- package/sdk/ang-ie11.css +287 -48
- package/sdk/ang.css +295 -43
- package/sdk/antd-ie11.css +287 -48
- package/sdk/antd.css +295 -43
- 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/cxd-ie11.css +276 -37
- package/sdk/cxd.css +297 -44
- package/sdk/dark-ie11.css +287 -48
- package/sdk/dark.css +295 -43
- 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 +17 -17
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +276 -37
- package/sdk/sdk.css +297 -44
- package/sdk/sdk.js +1251 -1247
- 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/Schema.ts +5 -2
- package/src/components/Alert2.tsx +9 -3
- package/src/components/CityArea.tsx +3 -0
- package/src/components/DatePicker.tsx +56 -18
- package/src/components/PopUp.tsx +6 -5
- package/src/components/Progress.tsx +8 -12
- package/src/components/Range.tsx +7 -1
- package/src/components/Tabs.tsx +51 -21
- package/src/components/TooltipWrapper.tsx +4 -1
- package/src/components/calendar/Calendar.tsx +17 -12
- package/src/components/formula/Editor.tsx +34 -3
- package/src/components/formula/Picker.tsx +28 -1
- package/src/components/icons.tsx +2 -0
- package/src/factory.tsx +2 -2
- package/src/icons/trash.svg +8 -0
- package/src/index.tsx +1 -0
- package/src/renderers/Action.tsx +2 -1
- package/src/renderers/ButtonGroup.tsx +2 -2
- package/src/renderers/Dialog.tsx +17 -3
- package/src/renderers/DropDownButton.tsx +14 -3
- package/src/renderers/Form/Combo.tsx +84 -26
- package/src/renderers/Form/InputCity.tsx +13 -1
- package/src/renderers/Form/InputColor.tsx +2 -0
- package/src/renderers/Form/InputDate.tsx +2 -0
- package/src/renderers/Form/InputDateRange.tsx +2 -0
- package/src/renderers/Form/InputExcel.tsx +27 -5
- package/src/renderers/Form/InputFile.tsx +13 -1
- package/src/renderers/Form/InputFormula.tsx +7 -0
- package/src/renderers/Form/InputImage.tsx +32 -12
- package/src/renderers/Form/InputRange.tsx +95 -40
- package/src/renderers/Form/InputTable.tsx +6 -2
- package/src/renderers/Form/Select.tsx +2 -0
- package/src/renderers/Form/Switch.tsx +16 -9
- package/src/renderers/Log.tsx +2 -1
- package/src/renderers/Page.tsx +1 -2
- package/src/renderers/PopOver.tsx +1 -1
- package/src/renderers/Progress.tsx +2 -2
- package/src/renderers/Table/TableRow.tsx +1 -1
- package/src/renderers/Tabs.tsx +16 -4
- package/src/renderers/TooltipWrapper.tsx +219 -0
- package/src/renderers/Video.tsx +21 -6
- package/src/store/table.ts +1 -1
package/lib/factory.js.map
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/factory.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {RendererStore, IRendererStore, IIRendererStore} from './store/index';\nimport {getEnv, destroy} from 'mobx-state-tree';\nimport {wrapFetcher} from './utils/api';\nimport {normalizeLink} from './utils/normalizeLink';\nimport {\n createObject,\n findIndex,\n isObject,\n JSONTraverse,\n promisify,\n qsparse,\n string2regExp\n} from './utils/helper';\nimport {\n Api,\n fetcherResult,\n Payload,\n SchemaNode,\n Schema,\n Action,\n EventTrack,\n PlainObject\n} from './types';\nimport {observer} from 'mobx-react';\nimport Scoped, {IScopedContext} from './Scoped';\nimport {getTheme, ThemeInstance, ThemeProps} from './theme';\nimport find from 'lodash/find';\nimport Alert from './components/Alert2';\nimport {toast} from './components/Toast';\nimport {alert, confirm, setRenderSchemaFn} from './components/Alert';\nimport {getDefaultLocale, makeTranslator, LocaleProps} from './locale';\nimport ScopedRootRenderer, {RootRenderProps} from './Root';\nimport {HocStoreFactory} from './WithStore';\nimport {EnvContext, RendererEnv} from './env';\nimport {envOverwrite} from './envOverwrite';\nimport {\n EventListeners,\n createRendererEvent,\n RendererEventListener,\n OnEventProps,\n RendererEvent\n} from './utils/renderer-event';\nimport {runActions} from './actions/Action';\n\nexport interface TestFunc {\n (\n path: string,\n schema?: Schema,\n resolveRenderer?: (\n path: string,\n schema?: Schema,\n props?: any\n ) => null | RendererConfig\n ): boolean;\n}\n\nexport interface RendererBasicConfig {\n test?: RegExp | TestFunc;\n type?: string;\n name?: string;\n storeType?: string;\n shouldSyncSuperStore?: (\n store: any,\n props: any,\n prevProps: any\n ) => boolean | undefined;\n storeExtendsData?: boolean | ((props: any) => boolean); // 是否需要继承上层数据。\n weight?: number; // 权重,值越低越优先命中。\n isolateScope?: boolean;\n isFormItem?: boolean;\n // [propName:string]:any;\n}\n\nexport interface RendererProps extends ThemeProps, LocaleProps, OnEventProps {\n render: (region: string, node: SchemaNode, props?: any) => JSX.Element;\n env: RendererEnv;\n $path: string; // 当前组件所在的层级信息\n $schema: any; // 原始 schema 配置\n store?: IIRendererStore;\n syncSuperStore?: boolean;\n data: {\n [propName: string]: any;\n };\n defaultData?: object;\n className?: any;\n [propName: string]: any;\n}\n\nexport type RendererComponent = React.ComponentType<RendererProps> & {\n propsList?: Array<any>;\n};\n\nexport interface RendererConfig extends RendererBasicConfig {\n component: RendererComponent;\n Renderer?: RendererComponent; // 原始组件\n}\n\nexport interface RenderSchemaFilter {\n (schema: Schema, renderer: RendererConfig, props?: any): Schema;\n}\n\nexport interface wsObject {\n url: string;\n body?: any;\n}\n\nexport interface RenderOptions {\n session?: string;\n fetcher?: (config: fetcherConfig) => Promise<fetcherResult>;\n wsFetcher?: (\n ws: wsObject,\n onMessage: (data: any) => void,\n onError: (error: any) => void\n ) => void;\n isCancel?: (value: any) => boolean;\n notify?: (\n type: 'error' | 'success',\n msg: string,\n conf?: {\n closeButton?: boolean;\n timeout?: number;\n }\n ) => void;\n jumpTo?: (to: string, action?: Action, ctx?: object) => void;\n alert?: (msg: string) => void;\n confirm?: (msg: string, title?: string) => boolean | Promise<boolean>;\n rendererResolver?: (\n path: string,\n schema: Schema,\n props: any\n ) => null | RendererConfig;\n copy?: (contents: string, options?: any) => void;\n getModalContainer?: () => HTMLElement;\n loadRenderer?: (\n schema: Schema,\n path: string,\n reRender: Function\n ) => Promise<React.ReactType> | React.ReactType | JSX.Element | void;\n affixOffsetTop?: number;\n affixOffsetBottom?: number;\n richTextToken?: string;\n /**\n * 替换文本,用于实现 URL 替换、语言替换等\n */\n replaceText?: {[propName: string]: any};\n /**\n * 文本替换的黑名单,因为属性太多了所以改成黑名单的 fangs\n */\n replaceTextIgnoreKeys?: String[];\n /**\n * 过滤 html 标签,可用来添加 xss 保护逻辑\n */\n filterHtml?: (input: string) => string;\n [propName: string]: any;\n}\n\nexport interface fetcherConfig {\n url: string;\n method?: 'get' | 'post' | 'put' | 'patch' | 'delete' | 'jsonp';\n data?: any;\n config?: any;\n}\n\nconst renderers: Array<RendererConfig> = [];\nconst rendererNames: Array<string> = [];\nconst schemaFilters: Array<RenderSchemaFilter> = [];\nlet anonymousIndex = 1;\n\nexport function addSchemaFilter(fn: RenderSchemaFilter) {\n schemaFilters.push(fn);\n}\n\nexport function filterSchema(\n schema: Schema,\n render: RendererConfig,\n props?: any\n) {\n return schemaFilters.reduce(\n (schema, filter) => filter(schema, render, props),\n schema\n ) as Schema;\n}\n\nexport function Renderer(config: RendererBasicConfig) {\n return function <T extends RendererComponent>(component: T): T {\n const renderer = registerRenderer({\n ...config,\n component: component\n });\n return renderer.component as T;\n };\n}\n\nexport function registerRenderer(config: RendererConfig): RendererConfig {\n if (!config.test && !config.type) {\n throw new TypeError('please set config.test or config.type');\n } else if (!config.component) {\n throw new TypeError('config.component is required');\n }\n\n if (typeof config.type === 'string' && config.type) {\n config.type = config.type.toLowerCase();\n config.test =\n config.test || new RegExp(`(^|\\/)${string2regExp(config.type)}$`, 'i');\n }\n\n config.weight = config.weight || 0;\n config.Renderer = config.component;\n config.name = config.name || config.type || `anonymous-${anonymousIndex++}`;\n\n if (~rendererNames.indexOf(config.name)) {\n throw new Error(\n `The renderer with name \"${config.name}\" has already exists, please try another name!`\n );\n }\n\n if (config.storeType && config.component) {\n config.component = HocStoreFactory({\n storeType: config.storeType,\n extendsData: config.storeExtendsData,\n shouldSyncSuperStore: config.shouldSyncSuperStore\n })(observer(config.component));\n }\n\n if (config.isolateScope) {\n config.component = Scoped(config.component);\n }\n\n const idx = findIndex(\n renderers,\n item => (config.weight as number) < item.weight\n );\n ~idx ? renderers.splice(idx, 0, config) : renderers.push(config);\n rendererNames.push(config.name);\n return config;\n}\n\nexport function unRegisterRenderer(config: RendererConfig | string) {\n let idx =\n typeof config === 'string'\n ? findIndex(renderers, item => item.name === config)\n : renderers.indexOf(config);\n ~idx && renderers.splice(idx, 1);\n\n let idx2 =\n typeof config === 'string'\n ? findIndex(rendererNames, item => item === config)\n : rendererNames.indexOf(config.name || '');\n ~idx2 && rendererNames.splice(idx2, 1);\n\n // 清空渲染器定位缓存\n cache = {};\n}\n\nexport function loadRenderer(schema: Schema, path: string) {\n return (\n <Alert level=\"danger\">\n <p>Error: 找不到对应的渲染器</p>\n <p>Path: {path}</p>\n <pre>\n <code>{JSON.stringify(schema, null, 2)}</code>\n </pre>\n </Alert>\n );\n}\n\nconst defaultOptions: RenderOptions = {\n session: 'global',\n affixOffsetTop: 0,\n affixOffsetBottom: 0,\n richTextToken: '',\n useMobileUI: true, // 是否启用移动端原生 UI\n loadRenderer,\n rendererEventListeners: [],\n fetcher() {\n return Promise.reject('fetcher is required');\n },\n // 使用 WebSocket 来实时获取数据\n wsFetcher(ws, onMessage, onError) {\n if (ws) {\n const socket = new WebSocket(ws.url);\n socket.onopen = event => {\n if (ws.body) {\n socket.send(JSON.stringify(ws.body));\n }\n };\n socket.onmessage = event => {\n if (event.data) {\n onMessage(JSON.parse(event.data));\n }\n };\n socket.onerror = onError;\n return {\n close: socket.close\n };\n } else {\n return {\n close: () => {}\n };\n }\n },\n isCancel() {\n console.error(\n 'Please implement isCancel. see https://baidu.gitee.io/amis/docs/start/getting-started#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97'\n );\n return false;\n },\n updateLocation() {\n console.error(\n 'Please implement updateLocation. see https://baidu.gitee.io/amis/docs/start/getting-started#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97'\n );\n },\n alert,\n confirm,\n notify: (type, msg, conf) =>\n toast[type] ? toast[type](msg, conf) : console.warn('[Notify]', type, msg),\n\n jumpTo: (to: string, action?: any) => {\n if (to === 'goBack') {\n return window.history.back();\n }\n to = normalizeLink(to);\n if (action && action.actionType === 'url') {\n action.blank === false ? (window.location.href = to) : window.open(to);\n return;\n }\n if (/^https?:\\/\\//.test(to)) {\n window.location.replace(to);\n } else {\n location.href = to;\n }\n },\n isCurrentUrl: (to: string) => {\n if (!to) {\n return false;\n }\n\n const link = normalizeLink(to);\n const location = window.location;\n let pathname = link;\n let search = '';\n const idx = link.indexOf('?');\n if (~idx) {\n pathname = link.substring(0, idx);\n search = link.substring(idx);\n }\n if (search) {\n if (pathname !== location.pathname || !location.search) {\n return false;\n }\n const query = qsparse(search.substring(1));\n const currentQuery = qsparse(location.search.substring(1));\n return Object.keys(query).every(key => query[key] === currentQuery[key]);\n } else if (pathname === location.pathname) {\n return true;\n }\n return false;\n },\n copy(contents: string) {\n console.error('copy contents', contents);\n },\n // 用于跟踪用户在界面中的各种操作\n tracker(eventTrack: EventTrack, props: PlainObject) {},\n // 返回解绑函数\n bindEvent(renderer: any) {\n if (!renderer) {\n return undefined;\n }\n const listeners: EventListeners = renderer.props.$schema.onEvent;\n if (listeners) {\n // 暂存\n for (let key of Object.keys(listeners)) {\n this.rendererEventListeners.push({\n renderer,\n type: key,\n weight: listeners[key].weight || 0,\n actions: listeners[key].actions\n });\n }\n\n return () => {\n this.rendererEventListeners = this.rendererEventListeners.filter(\n (item: RendererEventListener) => item.renderer !== renderer\n );\n };\n }\n\n return undefined;\n },\n async dispatchEvent(\n e: string | React.MouseEvent<any>,\n renderer: React.Component<RendererProps>,\n scoped: IScopedContext,\n data: any,\n broadcast?: RendererEvent<any>\n ) {\n const eventName = typeof e === 'string' ? e : e.type;\n if (!broadcast) {\n const eventConfig = renderer?.props?.onEvent?.[eventName];\n\n if (!eventConfig) {\n // 没命中也没关系\n return Promise.resolve(undefined);\n }\n }\n\n // 没有可处理的监听\n if (!this.rendererEventListeners.length) {\n return Promise.resolve();\n }\n\n // 如果是广播动作,就直接复用\n const rendererEvent =\n broadcast ||\n createRendererEvent(eventName, {\n env: this,\n nativeEvent: e,\n data,\n scoped\n });\n\n // 过滤&排序\n const listeners = this.rendererEventListeners\n .filter(\n (item: RendererEventListener) =>\n item.type === eventName &&\n (broadcast ? true : item.renderer === renderer)\n )\n .sort(\n (prev: RendererEventListener, next: RendererEventListener) =>\n next.weight - prev.weight\n );\n\n for (let listener of listeners) {\n await runActions(listener.actions, listener.renderer, rendererEvent);\n\n // 停止后续监听器执行\n if (rendererEvent.stoped) {\n break;\n }\n }\n\n return rendererEvent;\n },\n rendererResolver: resolveRenderer,\n replaceTextIgnoreKeys: [\n 'type',\n 'name',\n 'mode',\n 'target',\n 'reload',\n 'persistData'\n ],\n /**\n * 过滤 html 标签,可用来添加 xss 保护逻辑\n */\n filterHtml: (input: string) => input\n};\nlet stores: {\n [propName: string]: IRendererStore;\n} = {};\nexport function render(\n schema: Schema,\n props: RootRenderProps = {},\n options: RenderOptions = {},\n pathPrefix: string = ''\n): JSX.Element {\n let locale = props.locale || getDefaultLocale();\n // 兼容 locale 的不同写法\n locale = locale.replace('_', '-');\n locale = locale === 'en' ? 'en-US' : locale;\n locale = locale === 'zh' ? 'zh-CN' : locale;\n locale = locale === 'cn' ? 'zh-CN' : locale;\n const translate = props.translate || makeTranslator(locale);\n let store = stores[options.session || 'global'];\n\n // 根据环境覆盖 schema,这个要在最前面做,不然就无法覆盖 validations\n envOverwrite(schema, locale);\n\n if (!store) {\n options = {\n ...defaultOptions,\n ...options,\n fetcher: options.fetcher\n ? wrapFetcher(options.fetcher, options.tracker)\n : defaultOptions.fetcher,\n confirm: promisify(\n options.confirm || defaultOptions.confirm || window.confirm\n ),\n locale,\n translate\n } as any;\n\n store = RendererStore.create({}, options);\n stores[options.session || 'global'] = store;\n }\n\n (window as any).amisStore = store; // 为了方便 debug.\n const env = getEnv(store);\n\n let theme = props.theme || options.theme || 'cxd';\n if (theme === 'default') {\n theme = 'cxd';\n }\n env.theme = getTheme(theme);\n\n if (props.locale !== undefined) {\n env.translate = translate;\n env.locale = locale;\n }\n\n // 默认将开启移动端原生 UI\n if (typeof options.useMobileUI) {\n props.useMobileUI = true;\n }\n\n // 进行文本替换\n if (env.replaceText && isObject(env.replaceText)) {\n const replaceKeys = Object.keys(env.replaceText);\n replaceKeys.sort().reverse(); // 避免用户将短的放前面\n const replaceTextIgnoreKeys = new Set(env.replaceTextIgnoreKeys || []);\n JSONTraverse(schema, (value: any, key: string, object: any) => {\n if (typeof value === 'string' && !replaceTextIgnoreKeys.has(key)) {\n for (const replaceKey of replaceKeys) {\n if (~value.indexOf(replaceKey)) {\n object[key] = value.replaceAll(\n replaceKey,\n env.replaceText[replaceKey]\n );\n }\n }\n }\n });\n }\n\n return (\n <EnvContext.Provider value={env}>\n <ScopedRootRenderer\n {...props}\n schema={schema}\n pathPrefix={pathPrefix}\n rootStore={store}\n env={env}\n theme={theme}\n locale={locale}\n translate={translate}\n />\n </EnvContext.Provider>\n );\n}\n\n// 默认 env 会被缓存,所以新传入的 env 不会替换旧的。\n// 除非先删了旧的,新的才会生效。\nexport function clearStoresCache(\n sessions: Array<string> | string = Object.keys(stores)\n) {\n if (!Array.isArray(sessions)) {\n sessions = [sessions];\n }\n\n sessions.forEach(key => {\n const store = stores[key];\n\n // @ts-ignore\n delete stores[key];\n\n store && destroy(store);\n });\n}\n\n// 当然也可以直接这样更新。\n// 主要是有时候第一次创建的时候并没有准备多少接口,\n// 可以后续补充点,比如 amis 自己实现的,prompt 里面的表单。\nexport function updateEnv(options: Partial<RenderOptions>, session = 'global') {\n options = {\n ...options\n };\n\n if (options.fetcher) {\n options.fetcher = wrapFetcher(options.fetcher, options.tracker) as any;\n }\n\n if (options.confirm) {\n options.confirm = promisify(options.confirm);\n }\n\n let store = stores[options.session || session];\n if (!store) {\n store = RendererStore.create({}, options);\n stores[options.session || session] = store;\n } else {\n const env = getEnv(store);\n Object.assign(env, options);\n }\n}\n\nlet cache: {[propName: string]: RendererConfig} = {};\nexport function resolveRenderer(\n path: string,\n schema?: Schema\n): null | RendererConfig {\n const type = typeof schema?.type == 'string' ? schema.type.toLowerCase() : '';\n\n if (type && cache[type]) {\n return cache[type];\n } else if (cache[path]) {\n return cache[path];\n } else if (path && path.length > 1024) {\n throw new Error('Path太长是不是死循环了?');\n }\n\n let renderer: null | RendererConfig = null;\n\n renderers.some(item => {\n let matched = false;\n\n // 直接匹配类型,后续注册渲染都应该用这个方式而不是之前的判断路径。\n if (item.type && type) {\n matched = item.type === type;\n\n // 如果是type来命中的,那么cache的key直接用 type 即可。\n if (matched) {\n cache[type] = item;\n }\n } else if (typeof item.test === 'function') {\n // 不应该搞得这么复杂的,让每个渲染器唯一 id,自己不晕别人用起来也不晕。\n matched = item.test(path, schema, resolveRenderer);\n } else if (item.test instanceof RegExp) {\n matched = item.test.test(path);\n }\n\n if (matched) {\n renderer = item;\n }\n\n return matched;\n });\n\n // 只能缓存纯正则表达式的后者方法中没有用到第二个参数的,\n // 因为自定义 test 函数的有可能依赖 schema 的结果\n if (\n renderer !== null &&\n ((renderer as RendererConfig).type ||\n (renderer as RendererConfig).test instanceof RegExp ||\n (typeof (renderer as RendererConfig).test === 'function' &&\n ((renderer as RendererConfig).test as Function).length < 2))\n ) {\n cache[path] = renderer;\n }\n\n return renderer;\n}\n\nexport function getRenderers() {\n return renderers.concat();\n}\n\nexport function getRendererByName(name: string) {\n return find(renderers, item => item.name === name);\n}\n\nsetRenderSchemaFn((controls, value, callback, scopeRef, theme) => {\n return render(\n {\n name: 'form',\n type: 'form',\n wrapWithPanel: false,\n mode: 'horizontal',\n controls,\n messages: {\n validateFailed: ''\n }\n },\n {\n data: value,\n onFinished: callback,\n scopeRef,\n theme\n },\n {\n session: 'prompt'\n }\n );\n});\n\nexport {RendererEnv};\n"
|
11
|
+
"import React from 'react';\nimport {RendererStore, IRendererStore, IIRendererStore} from './store/index';\nimport {getEnv, destroy} from 'mobx-state-tree';\nimport {wrapFetcher} from './utils/api';\nimport {normalizeLink} from './utils/normalizeLink';\nimport {\n createObject,\n findIndex,\n isObject,\n JSONTraverse,\n promisify,\n qsparse,\n string2regExp\n} from './utils/helper';\nimport {\n Api,\n fetcherResult,\n Payload,\n SchemaNode,\n Schema,\n Action,\n EventTrack,\n PlainObject\n} from './types';\nimport {observer} from 'mobx-react';\nimport Scoped, {IScopedContext} from './Scoped';\nimport {getTheme, ThemeInstance, ThemeProps} from './theme';\nimport find from 'lodash/find';\nimport Alert from './components/Alert2';\nimport {toast} from './components/Toast';\nimport {alert, confirm, setRenderSchemaFn} from './components/Alert';\nimport {getDefaultLocale, makeTranslator, LocaleProps} from './locale';\nimport ScopedRootRenderer, {RootRenderProps} from './Root';\nimport {HocStoreFactory} from './WithStore';\nimport {EnvContext, RendererEnv} from './env';\nimport {envOverwrite} from './envOverwrite';\nimport {\n EventListeners,\n createRendererEvent,\n RendererEventListener,\n OnEventProps,\n RendererEvent\n} from './utils/renderer-event';\nimport {runActions} from './actions/Action';\n\nexport interface TestFunc {\n (\n path: string,\n schema?: Schema,\n resolveRenderer?: (\n path: string,\n schema?: Schema,\n props?: any\n ) => null | RendererConfig\n ): boolean;\n}\n\nexport interface RendererBasicConfig {\n test?: RegExp | TestFunc;\n type?: string;\n name?: string;\n storeType?: string;\n shouldSyncSuperStore?: (\n store: any,\n props: any,\n prevProps: any\n ) => boolean | undefined;\n storeExtendsData?: boolean | ((props: any) => boolean); // 是否需要继承上层数据。\n weight?: number; // 权重,值越低越优先命中。\n isolateScope?: boolean;\n isFormItem?: boolean;\n // [propName:string]:any;\n}\n\nexport interface RendererProps extends ThemeProps, LocaleProps, OnEventProps {\n render: (region: string, node: SchemaNode, props?: any) => JSX.Element;\n env: RendererEnv;\n $path: string; // 当前组件所在的层级信息\n $schema: any; // 原始 schema 配置\n store?: IIRendererStore;\n syncSuperStore?: boolean;\n data: {\n [propName: string]: any;\n };\n defaultData?: object;\n className?: any;\n [propName: string]: any;\n}\n\nexport type RendererComponent = React.ComponentType<RendererProps> & {\n propsList?: Array<any>;\n};\n\nexport interface RendererConfig extends RendererBasicConfig {\n component: RendererComponent;\n Renderer?: RendererComponent; // 原始组件\n}\n\nexport interface RenderSchemaFilter {\n (schema: Schema, renderer: RendererConfig, props?: any): Schema;\n}\n\nexport interface wsObject {\n url: string;\n body?: any;\n}\n\nexport interface RenderOptions {\n session?: string;\n fetcher?: (config: fetcherConfig) => Promise<fetcherResult>;\n wsFetcher?: (\n ws: wsObject,\n onMessage: (data: any) => void,\n onError: (error: any) => void\n ) => void;\n isCancel?: (value: any) => boolean;\n notify?: (\n type: 'error' | 'success',\n msg: string,\n conf?: {\n closeButton?: boolean;\n timeout?: number;\n }\n ) => void;\n jumpTo?: (to: string, action?: Action, ctx?: object) => void;\n alert?: (msg: string) => void;\n confirm?: (msg: string, title?: string) => boolean | Promise<boolean>;\n rendererResolver?: (\n path: string,\n schema: Schema,\n props: any\n ) => null | RendererConfig;\n copy?: (contents: string, options?: any) => void;\n getModalContainer?: () => HTMLElement;\n loadRenderer?: (\n schema: Schema,\n path: string,\n reRender: Function\n ) => Promise<React.ReactType> | React.ReactType | JSX.Element | void;\n affixOffsetTop?: number;\n affixOffsetBottom?: number;\n richTextToken?: string;\n /**\n * 替换文本,用于实现 URL 替换、语言替换等\n */\n replaceText?: {[propName: string]: any};\n /**\n * 文本替换的黑名单,因为属性太多了所以改成黑名单的 fangs\n */\n replaceTextIgnoreKeys?: String[];\n /**\n * 过滤 html 标签,可用来添加 xss 保护逻辑\n */\n filterHtml?: (input: string) => string;\n [propName: string]: any;\n}\n\nexport interface fetcherConfig {\n url: string;\n method?: 'get' | 'post' | 'put' | 'patch' | 'delete' | 'jsonp';\n data?: any;\n config?: any;\n}\n\nconst renderers: Array<RendererConfig> = [];\nconst rendererNames: Array<string> = [];\nconst schemaFilters: Array<RenderSchemaFilter> = [];\nlet anonymousIndex = 1;\n\nexport function addSchemaFilter(fn: RenderSchemaFilter) {\n schemaFilters.push(fn);\n}\n\nexport function filterSchema(\n schema: Schema,\n render: RendererConfig,\n props?: any\n) {\n return schemaFilters.reduce(\n (schema, filter) => filter(schema, render, props),\n schema\n ) as Schema;\n}\n\nexport function Renderer(config: RendererBasicConfig) {\n return function <T extends RendererComponent>(component: T): T {\n const renderer = registerRenderer({\n ...config,\n component: component\n });\n return renderer.component as T;\n };\n}\n\nexport function registerRenderer(config: RendererConfig): RendererConfig {\n if (!config.test && !config.type) {\n throw new TypeError('please set config.test or config.type');\n } else if (!config.component) {\n throw new TypeError('config.component is required');\n }\n\n if (typeof config.type === 'string' && config.type) {\n config.type = config.type.toLowerCase();\n config.test =\n config.test || new RegExp(`(^|\\/)${string2regExp(config.type)}$`, 'i');\n }\n\n config.weight = config.weight || 0;\n config.Renderer = config.component;\n config.name = config.name || config.type || `anonymous-${anonymousIndex++}`;\n\n if (~rendererNames.indexOf(config.name)) {\n throw new Error(\n `The renderer with name \"${config.name}\" has already exists, please try another name!`\n );\n }\n\n if (config.storeType && config.component) {\n config.component = HocStoreFactory({\n storeType: config.storeType,\n extendsData: config.storeExtendsData,\n shouldSyncSuperStore: config.shouldSyncSuperStore\n })(observer(config.component));\n }\n\n if (config.isolateScope) {\n config.component = Scoped(config.component);\n }\n\n const idx = findIndex(\n renderers,\n item => (config.weight as number) < item.weight\n );\n ~idx ? renderers.splice(idx, 0, config) : renderers.push(config);\n rendererNames.push(config.name);\n return config;\n}\n\nexport function unRegisterRenderer(config: RendererConfig | string) {\n let idx =\n typeof config === 'string'\n ? findIndex(renderers, item => item.name === config)\n : renderers.indexOf(config);\n ~idx && renderers.splice(idx, 1);\n\n let idx2 =\n typeof config === 'string'\n ? findIndex(rendererNames, item => item === config)\n : rendererNames.indexOf(config.name || '');\n ~idx2 && rendererNames.splice(idx2, 1);\n\n // 清空渲染器定位缓存\n cache = {};\n}\n\nexport function loadRenderer(schema: Schema, path: string) {\n return (\n <Alert level=\"danger\">\n <p>Error: 找不到对应的渲染器</p>\n <p>Path: {path}</p>\n <pre>\n <code>{JSON.stringify(schema, null, 2)}</code>\n </pre>\n </Alert>\n );\n}\n\nconst defaultOptions: RenderOptions = {\n session: 'global',\n affixOffsetTop: 0,\n affixOffsetBottom: 0,\n richTextToken: '',\n useMobileUI: true, // 是否启用移动端原生 UI\n loadRenderer,\n rendererEventListeners: [],\n fetcher() {\n return Promise.reject('fetcher is required');\n },\n // 使用 WebSocket 来实时获取数据\n wsFetcher(ws, onMessage, onError) {\n if (ws) {\n const socket = new WebSocket(ws.url);\n socket.onopen = event => {\n if (ws.body) {\n socket.send(JSON.stringify(ws.body));\n }\n };\n socket.onmessage = event => {\n if (event.data) {\n onMessage(JSON.parse(event.data));\n }\n };\n socket.onerror = onError;\n return {\n close: socket.close\n };\n } else {\n return {\n close: () => {}\n };\n }\n },\n isCancel() {\n console.error(\n 'Please implement isCancel. see https://baidu.gitee.io/amis/docs/start/getting-started#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97'\n );\n return false;\n },\n updateLocation() {\n console.error(\n 'Please implement updateLocation. see https://baidu.gitee.io/amis/docs/start/getting-started#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97'\n );\n },\n alert,\n confirm,\n notify: (type, msg, conf) =>\n toast[type] ? toast[type](msg, conf) : console.warn('[Notify]', type, msg),\n\n jumpTo: (to: string, action?: any) => {\n if (to === 'goBack') {\n return window.history.back();\n }\n to = normalizeLink(to);\n if (action && action.actionType === 'url') {\n action.blank === false ? (window.location.href = to) : window.open(to);\n return;\n }\n if (/^https?:\\/\\//.test(to)) {\n window.location.replace(to);\n } else {\n location.href = to;\n }\n },\n isCurrentUrl: (to: string) => {\n if (!to) {\n return false;\n }\n\n const link = normalizeLink(to);\n const location = window.location;\n let pathname = link;\n let search = '';\n const idx = link.indexOf('?');\n if (~idx) {\n pathname = link.substring(0, idx);\n search = link.substring(idx);\n }\n if (search) {\n if (pathname !== location.pathname || !location.search) {\n return false;\n }\n const query = qsparse(search.substring(1));\n const currentQuery = qsparse(location.search.substring(1));\n return Object.keys(query).every(key => query[key] === currentQuery[key]);\n } else if (pathname === location.pathname) {\n return true;\n }\n return false;\n },\n copy(contents: string) {\n console.error('copy contents', contents);\n },\n // 用于跟踪用户在界面中的各种操作\n tracker(eventTrack: EventTrack, props: PlainObject) {},\n // 返回解绑函数\n bindEvent(renderer: any) {\n if (!renderer) {\n return undefined;\n }\n const listeners: EventListeners = renderer.props.$schema.onEvent;\n if (listeners) {\n // 暂存\n for (let key of Object.keys(listeners)) {\n this.rendererEventListeners.push({\n renderer,\n type: key,\n weight: listeners[key].weight || 0,\n actions: listeners[key].actions\n });\n }\n\n return () => {\n this.rendererEventListeners = this.rendererEventListeners.filter(\n (item: RendererEventListener) => item.renderer !== renderer\n );\n };\n }\n\n return undefined;\n },\n async dispatchEvent(\n e: string | React.MouseEvent<any>,\n renderer: React.Component<RendererProps>,\n scoped: IScopedContext,\n data: any,\n broadcast?: RendererEvent<any>\n ) {\n const eventName = typeof e === 'string' ? e : e.type;\n if (!broadcast) {\n const eventConfig = renderer?.props?.onEvent?.[eventName];\n\n if (!eventConfig) {\n // 没命中也没关系\n return Promise.resolve(undefined);\n }\n }\n\n // 没有可处理的监听\n if (!this.rendererEventListeners.length) {\n return Promise.resolve();\n }\n\n // 如果是广播动作,就直接复用\n const rendererEvent =\n broadcast ||\n createRendererEvent(eventName, {\n env: this,\n nativeEvent: e,\n data,\n scoped\n });\n\n // 过滤&排序\n const listeners = this.rendererEventListeners\n .filter(\n (item: RendererEventListener) =>\n item.type === eventName &&\n (broadcast ? true : item.renderer === renderer)\n )\n .sort(\n (prev: RendererEventListener, next: RendererEventListener) =>\n next.weight - prev.weight\n );\n\n for (let listener of listeners) {\n await runActions(listener.actions, listener.renderer, rendererEvent);\n\n // 停止后续监听器执行\n if (rendererEvent.stoped) {\n break;\n }\n }\n\n return rendererEvent;\n },\n rendererResolver: resolveRenderer,\n replaceTextIgnoreKeys: [\n 'type',\n 'name',\n 'mode',\n 'target',\n 'reload',\n 'persistData'\n ],\n /**\n * 过滤 html 标签,可用来添加 xss 保护逻辑\n */\n filterHtml: (input: string) => input\n};\nlet stores: {\n [propName: string]: IRendererStore;\n} = {};\nexport function render(\n schema: Schema,\n props: RootRenderProps = {},\n options: RenderOptions = {},\n pathPrefix: string = ''\n): JSX.Element {\n let locale = props.locale || getDefaultLocale();\n // 兼容 locale 的不同写法\n locale = locale.replace('_', '-');\n locale = locale === 'en' ? 'en-US' : locale;\n locale = locale === 'zh' ? 'zh-CN' : locale;\n locale = locale === 'cn' ? 'zh-CN' : locale;\n const translate = props.translate || makeTranslator(locale);\n let store = stores[options.session || 'global'];\n\n // 根据环境覆盖 schema,这个要在最前面做,不然就无法覆盖 validations\n envOverwrite(schema, locale);\n\n if (!store) {\n options = {\n ...defaultOptions,\n ...options,\n fetcher: options.fetcher\n ? wrapFetcher(options.fetcher, options.tracker)\n : defaultOptions.fetcher,\n confirm: promisify(\n options.confirm || defaultOptions.confirm || window.confirm\n ),\n locale,\n translate\n } as any;\n\n store = RendererStore.create({}, options);\n stores[options.session || 'global'] = store;\n }\n\n (window as any).amisStore = store; // 为了方便 debug.\n const env = getEnv(store);\n\n let theme = props.theme || options.theme || 'cxd';\n if (theme === 'default') {\n theme = 'cxd';\n }\n env.theme = getTheme(theme);\n\n if (props.locale !== undefined) {\n env.translate = translate;\n env.locale = locale;\n }\n\n // 默认将开启移动端原生 UI\n if (typeof options.useMobileUI) {\n props.useMobileUI = true;\n }\n\n // 进行文本替换\n if (env.replaceText && isObject(env.replaceText)) {\n const replaceKeys = Object.keys(env.replaceText);\n replaceKeys.sort((a, b) => b.length - a.length); // 避免用户将短的放前面\n const replaceTextIgnoreKeys = new Set(env.replaceTextIgnoreKeys || []);\n JSONTraverse(schema, (value: any, key: string, object: any) => {\n if (typeof value === 'string' && !replaceTextIgnoreKeys.has(key)) {\n for (const replaceKey of replaceKeys) {\n if (~value.indexOf(replaceKey)) {\n value = object[key] = value.replaceAll(\n replaceKey,\n env.replaceText[replaceKey]\n );\n }\n }\n }\n });\n }\n\n return (\n <EnvContext.Provider value={env}>\n <ScopedRootRenderer\n {...props}\n schema={schema}\n pathPrefix={pathPrefix}\n rootStore={store}\n env={env}\n theme={theme}\n locale={locale}\n translate={translate}\n />\n </EnvContext.Provider>\n );\n}\n\n// 默认 env 会被缓存,所以新传入的 env 不会替换旧的。\n// 除非先删了旧的,新的才会生效。\nexport function clearStoresCache(\n sessions: Array<string> | string = Object.keys(stores)\n) {\n if (!Array.isArray(sessions)) {\n sessions = [sessions];\n }\n\n sessions.forEach(key => {\n const store = stores[key];\n\n // @ts-ignore\n delete stores[key];\n\n store && destroy(store);\n });\n}\n\n// 当然也可以直接这样更新。\n// 主要是有时候第一次创建的时候并没有准备多少接口,\n// 可以后续补充点,比如 amis 自己实现的,prompt 里面的表单。\nexport function updateEnv(options: Partial<RenderOptions>, session = 'global') {\n options = {\n ...options\n };\n\n if (options.fetcher) {\n options.fetcher = wrapFetcher(options.fetcher, options.tracker) as any;\n }\n\n if (options.confirm) {\n options.confirm = promisify(options.confirm);\n }\n\n let store = stores[options.session || session];\n if (!store) {\n store = RendererStore.create({}, options);\n stores[options.session || session] = store;\n } else {\n const env = getEnv(store);\n Object.assign(env, options);\n }\n}\n\nlet cache: {[propName: string]: RendererConfig} = {};\nexport function resolveRenderer(\n path: string,\n schema?: Schema\n): null | RendererConfig {\n const type = typeof schema?.type == 'string' ? schema.type.toLowerCase() : '';\n\n if (type && cache[type]) {\n return cache[type];\n } else if (cache[path]) {\n return cache[path];\n } else if (path && path.length > 1024) {\n throw new Error('Path太长是不是死循环了?');\n }\n\n let renderer: null | RendererConfig = null;\n\n renderers.some(item => {\n let matched = false;\n\n // 直接匹配类型,后续注册渲染都应该用这个方式而不是之前的判断路径。\n if (item.type && type) {\n matched = item.type === type;\n\n // 如果是type来命中的,那么cache的key直接用 type 即可。\n if (matched) {\n cache[type] = item;\n }\n } else if (typeof item.test === 'function') {\n // 不应该搞得这么复杂的,让每个渲染器唯一 id,自己不晕别人用起来也不晕。\n matched = item.test(path, schema, resolveRenderer);\n } else if (item.test instanceof RegExp) {\n matched = item.test.test(path);\n }\n\n if (matched) {\n renderer = item;\n }\n\n return matched;\n });\n\n // 只能缓存纯正则表达式的后者方法中没有用到第二个参数的,\n // 因为自定义 test 函数的有可能依赖 schema 的结果\n if (\n renderer !== null &&\n ((renderer as RendererConfig).type ||\n (renderer as RendererConfig).test instanceof RegExp ||\n (typeof (renderer as RendererConfig).test === 'function' &&\n ((renderer as RendererConfig).test as Function).length < 2))\n ) {\n cache[path] = renderer;\n }\n\n return renderer;\n}\n\nexport function getRenderers() {\n return renderers.concat();\n}\n\nexport function getRendererByName(name: string) {\n return find(renderers, item => item.name === name);\n}\n\nsetRenderSchemaFn((controls, value, callback, scopeRef, theme) => {\n return render(\n {\n name: 'form',\n type: 'form',\n wrapWithPanel: false,\n mode: 'horizontal',\n controls,\n messages: {\n validateFailed: ''\n }\n },\n {\n data: value,\n onFinished: callback,\n scopeRef,\n theme\n },\n {\n session: 'prompt'\n }\n );\n});\n\nexport {RendererEnv};\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -0,0 +1,10 @@
|
|
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 Trash = function (props) { return react_1.default.createElement("svg", (0, tslib_1.__assign)({ viewBox: "0 0 16 16", className: "icon" }, props),
|
6
|
+
react_1.default.createElement("title", null, "4.\u56FE\u6807\u5143\u4EF6/3.\u64CD\u4F5C/\u5220\u9664"),
|
7
|
+
react_1.default.createElement("g", { id: "4.\\u56FE\\u6807\\u5143\\u4EF6/3.\\u64CD\\u4F5C/\\u5220\\u9664", stroke: "none", strokeWidth: 1, fill: "none", fillRule: "evenodd" },
|
8
|
+
react_1.default.createElement("rect", { id: "\\u77E9\\u5F62", stroke: "#979797", fill: "#D8D8D8", opacity: 0, x: 0.5, y: 0.5, width: 15, height: 15 }),
|
9
|
+
react_1.default.createElement("path", { d: "M14,3.499 L14,4.5 L12.497,4.5 L12.498,14.5 L3.498,14.5 L3.497,4.5 L2,4.5 L2,3.499 L14,3.499 Z M11.498,4.5 L4.497,4.5 L4.497,13.5 L11.498,13.5 L11.498,4.5 Z M6.998,7.499 L6.998,11.499 L5.998,11.499 L5.998,7.499 L6.998,7.499 Z M9.998,7.499 L9.998,11.499 L8.998,11.499 L8.998,7.499 L9.998,7.499 Z M9.999,1.5 L9.999,2.499 L5.998,2.499 L5.998,1.5 L9.999,1.5 Z", id: "\\u5F62\\u72B6\\u7ED3\\u5408", fill: "#151B26" }))); };
|
10
|
+
exports.default = Trash;
|
package/lib/index.d.ts
CHANGED
@@ -145,6 +145,7 @@ import './renderers/TableView';
|
|
145
145
|
import './renderers/Code';
|
146
146
|
import './renderers/WebComponent';
|
147
147
|
import './renderers/GridNav';
|
148
|
+
import './renderers/TooltipWrapper';
|
148
149
|
import Scoped, { ScopedContext } from './Scoped';
|
149
150
|
import { FormItem, FormItemWrap, registerFormItem } from './renderers/Form/Item';
|
150
151
|
import './compat';
|
package/lib/index.js
CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerLocale = exports.setDefaultLocale = exports.getDefaultLocale = exports.classnames = exports.getClassPrefix = exports.classPrefix = exports.getTheme = exports.theme = exports.setDefaultTheme = exports.validateObject = exports.validate = exports.ScopedContext = exports.Scoped = exports.registerIcon = exports.Icon = exports.setIconVendor = exports.resolveVariableAndFilter = exports.resolveVariable = exports.relativeValueRe = exports.filterDate = exports.filterSchema = exports.resolveRenderer = exports.registerOptionsControl = exports.registerFormItem = exports.getRenderers = exports.unRegisterRenderer = exports.registerRenderer = exports.getRendererByName = exports.normalizeOptions = exports.str2rules = exports.addRule = exports.setCustomEvalExpression = exports.setCustomEvalJs = exports.evalJS = exports.evalExpression = exports.registerTplEnginer = exports.registerFilter = exports.resizeSensor = exports.utils = exports.filter = exports.buildApi = exports.wrapFetcher = exports.OptionsControl = exports.FormItemWrap = exports.FormItem = exports.RegisterStore = exports.Renderer = exports.updateEnv = exports.clearStoresCache = exports.render = void 0;
|
4
4
|
exports.animation = exports.makeTranslator = void 0;
|
5
5
|
var tslib_1 = require("tslib");
|
6
|
-
/** @license amis v1.
|
6
|
+
/** @license amis v1.8.0-beta.1
|
7
7
|
*
|
8
8
|
* Copyright Baidu
|
9
9
|
*
|
@@ -180,6 +180,7 @@ require("./renderers/TableView");
|
|
180
180
|
require("./renderers/Code");
|
181
181
|
require("./renderers/WebComponent");
|
182
182
|
require("./renderers/GridNav");
|
183
|
+
require("./renderers/TooltipWrapper");
|
183
184
|
var Scoped_1 = tslib_1.__importStar(require("./Scoped"));
|
184
185
|
exports.Scoped = Scoped_1.default;
|
185
186
|
Object.defineProperty(exports, "ScopedContext", { enumerable: true, get: function () { return Scoped_1.ScopedContext; } });
|
package/lib/index.js.map
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/index.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;;AAAA;;;;;;GAMG;AACH,qCAYmB;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/** @license amis v@version\n *\n * Copyright Baidu\n *\n * This source code is licensed under the Apache license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport {\n render,\n Renderer,\n getRendererByName,\n getRenderers,\n registerRenderer,\n unRegisterRenderer,\n resolveRenderer,\n filterSchema,\n addSchemaFilter,\n clearStoresCache,\n updateEnv\n} from './factory';\nimport {wrapFetcher, buildApi} from './utils/api';\nimport {\n filter,\n registerTplEnginer,\n evalExpression,\n evalJS,\n setCustomEvalJs,\n setCustomEvalExpression\n} from './utils/tpl';\nimport * as utils from './utils/helper';\nimport {resizeSensor} from './utils/resize-sensor';\nimport {setIconVendor} from './renderers/Form/IconPickerIcons';\nimport {Icon, registerIcon} from './components/icons';\nimport {RegisterStore} from './store';\nimport {\n setDefaultLocale,\n getDefaultLocale,\n makeTranslator,\n register as registerLocale\n} from './locale';\n\nimport './locale/zh-CN';\n\nimport './utils/debug';\n\nimport animation from './utils/Animation';\n\nexport * from './Schema';\n\n// 注册渲染器\nimport './renderers/Action';\nimport './renderers/Alert';\nimport './renderers/App';\nimport './renderers/Avatar';\nimport './renderers/Remark';\nimport './renderers/ButtonGroup';\nimport './renderers/Form/ButtonToolbar';\nimport './renderers/Breadcrumb';\nimport './renderers/DropDownButton';\nimport './renderers/Calendar';\nimport './renderers/Collapse';\nimport './renderers/CollapseGroup';\nimport './renderers/Color';\nimport './renderers/CRUD';\nimport './renderers/Pagination';\nimport './renderers/Cards';\nimport './renderers/Card';\nimport './renderers/Custom';\nimport './renderers/Date';\nimport './renderers/Dialog';\nimport './renderers/Divider';\nimport './renderers/Each';\nimport './renderers/Flex';\nimport './renderers/Form/index';\nimport './renderers/Form/wrapControl';\nimport './renderers/Form/Control';\nimport './renderers/Form/Hidden';\nimport './renderers/Form/InputText';\nimport './renderers/Form/InputTag';\nimport './renderers/Form/InputNumber';\nimport './renderers/Form/Textarea';\nimport './renderers/Form/Checkboxes';\nimport './renderers/Form/Checkbox';\nimport './renderers/Form/InputCity';\nimport './renderers/Form/ChartRadios';\nimport './renderers/Form/InputRating';\nimport './renderers/Form/Switch';\nimport './renderers/Form/Radios';\nimport './renderers/Form/ListSelect';\nimport './renderers/Form/LocationPicker';\nimport './renderers/Form/Select';\nimport './renderers/Form/Static';\nimport './renderers/Form/InputDate';\nimport './renderers/Form/InputDateRange';\nimport './renderers/Form/InputFormula';\nimport './renderers/Form/InputRepeat';\nimport './renderers/Form/InputTree';\nimport './renderers/Form/TreeSelect';\nimport './renderers/Form/InputImage';\nimport './renderers/Form/InputFile';\nimport './renderers/Form/UUID';\nimport './renderers/Form/MatrixCheckboxes';\nimport './renderers/Form/InputMonthRange';\nimport './renderers/Form/InputQuarterRange';\nimport './renderers/Form/InputYearRange';\nimport './renderers/Form/InputRange';\nimport './renderers/Form/InputArray';\nimport './renderers/Form/Combo';\nimport './renderers/Form/ConditionBuilder';\nimport './renderers/Form/InputSubForm';\nimport './renderers/Form/InputExcel';\nimport './renderers/Form/InputRichText';\nimport './renderers/Form/Editor';\nimport './renderers/Form/DiffEditor';\nimport './renderers/Form/InputColor';\nimport './renderers/Form/ChainedSelect';\nimport './renderers/Form/NestedSelect';\nimport './renderers/Form/Transfer';\nimport './renderers/Form/TransferPicker';\nimport './renderers/Form/InputTable';\nimport './renderers/Form/Picker';\nimport './renderers/Form/IconPicker';\nimport './renderers/Form/Formula';\nimport './renderers/Form/FieldSet';\nimport './renderers/Form/TabsTransfer';\nimport './renderers/Form/TabsTransferPicker';\nimport './renderers/Form/Group';\nimport './renderers/Form/InputGroup';\nimport './renderers/Grid';\nimport './renderers/Grid2D';\nimport './renderers/HBox';\nimport './renderers/VBox';\nimport './renderers/Image';\nimport './renderers/Images';\nimport './renderers/List';\nimport './renderers/Log';\nimport './renderers/Operation';\nimport './renderers/Page';\nimport './renderers/PaginationWrapper';\nimport './renderers/Panel';\nimport './renderers/Plain';\nimport './renderers/Property';\nimport './renderers/Portlet';\nimport './renderers/Spinner';\nimport './renderers/Table/index';\nimport './renderers/Tabs';\nimport './renderers/Tpl';\nimport './renderers/Mapping';\nimport './renderers/Progress';\nimport './renderers/Status';\nimport './renderers/Json';\nimport './renderers/Link';\nimport './renderers/Wizard';\nimport './renderers/Chart';\nimport './renderers/Container';\nimport './renderers/SearchBox';\nimport './renderers/Service';\nimport './renderers/SparkLine';\nimport './renderers/Video';\nimport './renderers/Audio';\nimport './renderers/Nav';\nimport './renderers/Tasks';\nimport './renderers/Drawer';\nimport './renderers/Wrapper';\nimport './renderers/IFrame';\nimport './renderers/BarCode';\nimport './renderers/QRCode';\nimport './renderers/Icon';\nimport './renderers/Carousel';\nimport './renderers/AnchorNav';\nimport './renderers/Steps';\nimport './renderers/Timeline';\nimport './renderers/Markdown';\nimport './renderers/TableView';\nimport './renderers/Code';\nimport './renderers/WebComponent';\nimport './renderers/GridNav';\n\nimport Scoped, {ScopedContext} from './Scoped';\n\nimport {FormItem, FormItemWrap, registerFormItem} from './renderers/Form/Item';\n\n// 兼容旧版本用法\nimport './compat';\n\nimport './envOverwrite';\n\nimport './schemaExtend';\n\nimport './themes/ang';\nimport './themes/cxd';\nimport './themes/dark';\nimport './themes/antd';\nimport {\n registerFilter,\n filterDate,\n relativeValueRe,\n resolveVariable,\n resolveVariableAndFilter\n} from './utils/tpl-builtin';\nimport {\n addRule,\n str2rules,\n validate,\n validateObject\n} from './utils/validations';\nimport {normalizeOptions} from './components/Select';\nimport {OptionsControl, registerOptionsControl} from './renderers/Form/Options';\n\nimport {\n classnames,\n getClassPrefix,\n setDefaultTheme,\n theme,\n getTheme\n} from './theme';\nconst classPrefix = getClassPrefix();\n\nimport './actions';\n\nexport * from './components/index';\n\nexport {\n render,\n clearStoresCache,\n updateEnv,\n Renderer as Renderer,\n RegisterStore,\n FormItem,\n FormItemWrap,\n OptionsControl,\n wrapFetcher,\n buildApi,\n filter,\n // 其他功能类方法\n utils,\n resizeSensor,\n registerFilter,\n registerTplEnginer,\n evalExpression,\n evalJS,\n setCustomEvalJs,\n setCustomEvalExpression,\n addRule,\n str2rules,\n normalizeOptions,\n getRendererByName,\n registerRenderer,\n unRegisterRenderer,\n getRenderers,\n registerFormItem,\n registerOptionsControl,\n resolveRenderer,\n filterSchema,\n filterDate,\n relativeValueRe,\n resolveVariable,\n resolveVariableAndFilter,\n setIconVendor,\n Icon,\n registerIcon,\n Scoped,\n ScopedContext,\n validate,\n validateObject,\n setDefaultTheme,\n theme,\n getTheme,\n classPrefix,\n getClassPrefix,\n classnames,\n // 多语言相关\n getDefaultLocale,\n setDefaultLocale,\n registerLocale,\n makeTranslator,\n animation\n};\n"
|
11
|
+
"/** @license amis v@version\n *\n * Copyright Baidu\n *\n * This source code is licensed under the Apache license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport {\n render,\n Renderer,\n getRendererByName,\n getRenderers,\n registerRenderer,\n unRegisterRenderer,\n resolveRenderer,\n filterSchema,\n addSchemaFilter,\n clearStoresCache,\n updateEnv\n} from './factory';\nimport {wrapFetcher, buildApi} from './utils/api';\nimport {\n filter,\n registerTplEnginer,\n evalExpression,\n evalJS,\n setCustomEvalJs,\n setCustomEvalExpression\n} from './utils/tpl';\nimport * as utils from './utils/helper';\nimport {resizeSensor} from './utils/resize-sensor';\nimport {setIconVendor} from './renderers/Form/IconPickerIcons';\nimport {Icon, registerIcon} from './components/icons';\nimport {RegisterStore} from './store';\nimport {\n setDefaultLocale,\n getDefaultLocale,\n makeTranslator,\n register as registerLocale\n} from './locale';\n\nimport './locale/zh-CN';\n\nimport './utils/debug';\n\nimport animation from './utils/Animation';\n\nexport * from './Schema';\n\n// 注册渲染器\nimport './renderers/Action';\nimport './renderers/Alert';\nimport './renderers/App';\nimport './renderers/Avatar';\nimport './renderers/Remark';\nimport './renderers/ButtonGroup';\nimport './renderers/Form/ButtonToolbar';\nimport './renderers/Breadcrumb';\nimport './renderers/DropDownButton';\nimport './renderers/Calendar';\nimport './renderers/Collapse';\nimport './renderers/CollapseGroup';\nimport './renderers/Color';\nimport './renderers/CRUD';\nimport './renderers/Pagination';\nimport './renderers/Cards';\nimport './renderers/Card';\nimport './renderers/Custom';\nimport './renderers/Date';\nimport './renderers/Dialog';\nimport './renderers/Divider';\nimport './renderers/Each';\nimport './renderers/Flex';\nimport './renderers/Form/index';\nimport './renderers/Form/wrapControl';\nimport './renderers/Form/Control';\nimport './renderers/Form/Hidden';\nimport './renderers/Form/InputText';\nimport './renderers/Form/InputTag';\nimport './renderers/Form/InputNumber';\nimport './renderers/Form/Textarea';\nimport './renderers/Form/Checkboxes';\nimport './renderers/Form/Checkbox';\nimport './renderers/Form/InputCity';\nimport './renderers/Form/ChartRadios';\nimport './renderers/Form/InputRating';\nimport './renderers/Form/Switch';\nimport './renderers/Form/Radios';\nimport './renderers/Form/ListSelect';\nimport './renderers/Form/LocationPicker';\nimport './renderers/Form/Select';\nimport './renderers/Form/Static';\nimport './renderers/Form/InputDate';\nimport './renderers/Form/InputDateRange';\nimport './renderers/Form/InputFormula';\nimport './renderers/Form/InputRepeat';\nimport './renderers/Form/InputTree';\nimport './renderers/Form/TreeSelect';\nimport './renderers/Form/InputImage';\nimport './renderers/Form/InputFile';\nimport './renderers/Form/UUID';\nimport './renderers/Form/MatrixCheckboxes';\nimport './renderers/Form/InputMonthRange';\nimport './renderers/Form/InputQuarterRange';\nimport './renderers/Form/InputYearRange';\nimport './renderers/Form/InputRange';\nimport './renderers/Form/InputArray';\nimport './renderers/Form/Combo';\nimport './renderers/Form/ConditionBuilder';\nimport './renderers/Form/InputSubForm';\nimport './renderers/Form/InputExcel';\nimport './renderers/Form/InputRichText';\nimport './renderers/Form/Editor';\nimport './renderers/Form/DiffEditor';\nimport './renderers/Form/InputColor';\nimport './renderers/Form/ChainedSelect';\nimport './renderers/Form/NestedSelect';\nimport './renderers/Form/Transfer';\nimport './renderers/Form/TransferPicker';\nimport './renderers/Form/InputTable';\nimport './renderers/Form/Picker';\nimport './renderers/Form/IconPicker';\nimport './renderers/Form/Formula';\nimport './renderers/Form/FieldSet';\nimport './renderers/Form/TabsTransfer';\nimport './renderers/Form/TabsTransferPicker';\nimport './renderers/Form/Group';\nimport './renderers/Form/InputGroup';\nimport './renderers/Grid';\nimport './renderers/Grid2D';\nimport './renderers/HBox';\nimport './renderers/VBox';\nimport './renderers/Image';\nimport './renderers/Images';\nimport './renderers/List';\nimport './renderers/Log';\nimport './renderers/Operation';\nimport './renderers/Page';\nimport './renderers/PaginationWrapper';\nimport './renderers/Panel';\nimport './renderers/Plain';\nimport './renderers/Property';\nimport './renderers/Portlet';\nimport './renderers/Spinner';\nimport './renderers/Table/index';\nimport './renderers/Tabs';\nimport './renderers/Tpl';\nimport './renderers/Mapping';\nimport './renderers/Progress';\nimport './renderers/Status';\nimport './renderers/Json';\nimport './renderers/Link';\nimport './renderers/Wizard';\nimport './renderers/Chart';\nimport './renderers/Container';\nimport './renderers/SearchBox';\nimport './renderers/Service';\nimport './renderers/SparkLine';\nimport './renderers/Video';\nimport './renderers/Audio';\nimport './renderers/Nav';\nimport './renderers/Tasks';\nimport './renderers/Drawer';\nimport './renderers/Wrapper';\nimport './renderers/IFrame';\nimport './renderers/BarCode';\nimport './renderers/QRCode';\nimport './renderers/Icon';\nimport './renderers/Carousel';\nimport './renderers/AnchorNav';\nimport './renderers/Steps';\nimport './renderers/Timeline';\nimport './renderers/Markdown';\nimport './renderers/TableView';\nimport './renderers/Code';\nimport './renderers/WebComponent';\nimport './renderers/GridNav';\nimport './renderers/TooltipWrapper';\n\nimport Scoped, {ScopedContext} from './Scoped';\n\nimport {FormItem, FormItemWrap, registerFormItem} from './renderers/Form/Item';\n\n// 兼容旧版本用法\nimport './compat';\n\nimport './envOverwrite';\n\nimport './schemaExtend';\n\nimport './themes/ang';\nimport './themes/cxd';\nimport './themes/dark';\nimport './themes/antd';\nimport {\n registerFilter,\n filterDate,\n relativeValueRe,\n resolveVariable,\n resolveVariableAndFilter\n} from './utils/tpl-builtin';\nimport {\n addRule,\n str2rules,\n validate,\n validateObject\n} from './utils/validations';\nimport {normalizeOptions} from './components/Select';\nimport {OptionsControl, registerOptionsControl} from './renderers/Form/Options';\n\nimport {\n classnames,\n getClassPrefix,\n setDefaultTheme,\n theme,\n getTheme\n} from './theme';\nconst classPrefix = getClassPrefix();\n\nimport './actions';\n\nexport * from './components/index';\n\nexport {\n render,\n clearStoresCache,\n updateEnv,\n Renderer as Renderer,\n RegisterStore,\n FormItem,\n FormItemWrap,\n OptionsControl,\n wrapFetcher,\n buildApi,\n filter,\n // 其他功能类方法\n utils,\n resizeSensor,\n registerFilter,\n registerTplEnginer,\n evalExpression,\n evalJS,\n setCustomEvalJs,\n setCustomEvalExpression,\n addRule,\n str2rules,\n normalizeOptions,\n getRendererByName,\n registerRenderer,\n unRegisterRenderer,\n getRenderers,\n registerFormItem,\n registerOptionsControl,\n resolveRenderer,\n filterSchema,\n filterDate,\n relativeValueRe,\n resolveVariable,\n resolveVariableAndFilter,\n setIconVendor,\n Icon,\n registerIcon,\n Scoped,\n ScopedContext,\n validate,\n validateObject,\n setDefaultTheme,\n theme,\n getTheme,\n classPrefix,\n getClassPrefix,\n classnames,\n // 多语言相关\n getDefaultLocale,\n setDefaultLocale,\n registerLocale,\n makeTranslator,\n animation\n};\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -41,7 +41,7 @@ export interface ButtonSchema extends BaseSchema {
|
|
41
41
|
/**
|
42
42
|
* 按钮样式
|
43
43
|
*/
|
44
|
-
level?: 'info' | 'success' | 'warning' | 'danger' | 'link' | 'primary' | 'dark' | 'light';
|
44
|
+
level?: 'info' | 'success' | 'warning' | 'danger' | 'link' | 'primary' | 'dark' | 'light' | 'secondary';
|
45
45
|
/**
|
46
46
|
* @deprecated 通过 level 来配置
|
47
47
|
*/
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Action.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,uEAAiC;AACjC,sCAAmD;AACnD,oCAAoC;AACpC,6EAA0C;AAC1C,kEAA+B;AAC/B,kEAA+B;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport hotkeys from 'hotkeys-js';\nimport {Renderer, RendererProps} from '../factory';\nimport {filter} from '../utils/tpl';\nimport Button from '../components/Button';\nimport pick from 'lodash/pick';\nimport omit from 'lodash/omit';\n\nexport interface ButtonSchema extends BaseSchema {\n /**\n * 主要用于用户行为跟踪里区分是哪个按钮\n */\n id?: string;\n\n /**\n * 是否为块状展示,默认为内联。\n */\n block?: boolean;\n\n /**\n * 禁用时的文案提示。\n */\n disabledTip?: string;\n\n /**\n * 按钮图标, iconfont 的类名\n */\n icon?: SchemaIcon;\n\n /**\n * icon 上的css 类名\n */\n iconClassName?: SchemaClassName;\n\n /**\n * 右侧按钮图标, iconfont 的类名\n */\n rightIcon?: SchemaIcon;\n\n /**\n * 右侧 icon 上的 css 类名\n */\n rightIconClassName?: SchemaClassName;\n /**\n * loading 上的css 类名\n */\n loadingClassName?: SchemaClassName;\n\n /**\n * 按钮文字\n */\n label?: string;\n\n /**\n * 按钮样式\n */\n level?:\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'link'\n | 'primary'\n | 'dark'\n | 'light';\n\n /**\n * @deprecated 通过 level 来配置\n */\n primary?: boolean;\n\n /**\n * 按钮大小\n */\n size?: 'xs' | 'sm' | 'md' | 'lg';\n\n tooltip?: SchemaTooltip;\n tooltipPlacement?: 'top' | 'right' | 'bottom' | 'left';\n\n /**\n * 指定按钮类型,支持 button、submit或者reset三种类型。\n */\n type: 'button' | 'submit' | 'reset';\n\n /**\n * 提示文字,配置了操作前会要求用户确认。\n */\n confirmText?: string;\n\n /**\n * 如果按钮在form中,配置此属性会要求用户把指定的字段通过验证后才会触发行为。\n */\n required?: Array<string>;\n\n /**\n * 激活状态时的样式\n */\n activeLevel?: string;\n\n /**\n * 激活状态时的类名\n */\n activeClassName?: string;\n\n /**\n * 如果按钮在弹框中,可以配置这个动作完成后是否关闭弹窗,或者指定关闭目标弹框。\n */\n close?: boolean | string;\n\n /**\n * 当按钮时批量操作按钮时,默认必须有勾选元素才能可点击,如果此属性配置成 false,则没有点选成员也能点击。\n */\n requireSelected?: boolean;\n\n /**\n * 是否将弹框中数据 merge 到父级作用域。\n */\n mergeData?: boolean;\n\n /**\n * 可以指定让谁来触发这个动作。\n */\n target?: string;\n\n /**\n * 点击后的禁止倒计时(秒)\n */\n countDown?: number;\n\n /**\n * 倒计时文字自定义\n */\n countDownTpl?: string;\n\n /**\n * 角标\n */\n badge?: BadgeSchema;\n\n /**\n * 键盘快捷键\n */\n hotKey?: string;\n /**\n * 是否显示loading效果\n */\n loadingOn?: string;\n\n /**\n * 自定义事件处理函数\n */\n onClick?: string | any;\n\n /**\n * 子内容\n */\n body?: SchemaCollection;\n}\n\nexport interface AjaxActionSchema extends ButtonSchema {\n /**\n * 指定为发送 ajax 的行为。\n */\n actionType: 'ajax';\n\n /**\n * 配置 ajax 发送地址\n */\n api: SchemaApi;\n\n feedback?: FeedbackDialog;\n\n reload?: SchemaReload;\n redirect?: string;\n ignoreConfirm?: boolean;\n}\n\nexport interface DownloadActionSchema\n extends Omit<AjaxActionSchema, 'actionType'> {\n /**\n * 指定为下载行为\n */\n actionType: 'download';\n}\n\nexport interface UrlActionSchema extends ButtonSchema {\n /**\n * 指定为打开链接\n */\n actionType: 'url';\n\n /**\n * 是否新窗口打开\n */\n blank?: boolean;\n\n /**\n * 打开的目标地址\n */\n url: string;\n}\n\nexport interface DialogActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗\n */\n actionType: 'dialog';\n\n /**\n * 弹框详情\n * 文档:https://baidu.gitee.io/amis/docs/components/dialog\n */\n dialog: DialogSchemaBase;\n\n /**\n * 是否有下一个的表达式,正常可以不用配置,如果想要刷掉某些数据可以配置这个。\n */\n nextCondition?: SchemaExpression;\n reload?: SchemaReload;\n redirect?: string;\n}\n\nexport interface DrawerActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗,抽出式弹窗\n */\n actionType: 'drawer';\n\n /**\n * 抽出式弹框详情\n * 文档:https://baidu.gitee.io/amis/docs/components/drawer\n */\n drawer: DrawerSchemaBase;\n\n /**\n * 是否有下一个的表达式,正常可以不用配置,如果想要刷掉某些数据可以配置这个。\n */\n nextCondition?: SchemaExpression;\n reload?: SchemaReload;\n redirect?: string;\n}\n\nexport interface ToastActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗,抽出式弹窗\n */\n actionType: 'toast';\n\n /**\n * 轻提示详情\n * 文档:https://baidu.gitee.io/amis/docs/components/toast\n */\n toast: ToastSchemaBase;\n}\n\nexport interface CopyActionSchema extends ButtonSchema {\n /**\n * 指定为复制内容行为\n */\n actionType: 'copy';\n\n /**\n * 复制啥内容由此配置,支持模板语法。\n */\n copy: SchemaTpl;\n}\n\nexport interface LinkActionSchema extends ButtonSchema {\n /**\n * 指定为打开链接行为,跟 url 不同的时这个行为为单页模式。\n */\n actionType: 'link';\n\n /**\n * 跳转到哪?支持配置相对路径。\n */\n link: string;\n}\n\nexport interface ReloadActionSchema extends ButtonSchema {\n /**\n * 指定为刷新目标组件。\n */\n actionType: 'reload';\n\n /**\n * 指定目标组件。\n */\n target?: SchemaReload;\n}\n\nexport interface EmailActionSchema extends ButtonSchema {\n /**\n * 指定为打开邮箱行为\n */\n actionType: 'email';\n\n /**\n * 收件人邮箱\n */\n to: string;\n\n /**\n * 抄送邮箱\n */\n cc?: string;\n\n /**\n * 匿名抄送邮箱\n */\n bcc?: string;\n\n /**\n * 邮件主题\n */\n subject?: string;\n\n /**\n * 邮件正文\n */\n body?: string;\n}\n\nexport interface OtherActionSchema extends ButtonSchema {\n actionType:\n | 'prev'\n | 'next'\n | 'cancel'\n | 'close'\n | 'submit'\n | 'confirm'\n | 'add'\n | 'reset'\n | 'reset-and-submit';\n [propName: string]: any;\n}\n\nexport interface VanillaAction extends ButtonSchema {\n actionType?: string;\n}\n\n/**\n * 按钮动作渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/action\n */\nexport type ActionSchema =\n | AjaxActionSchema\n | UrlActionSchema\n | LinkActionSchema\n | DialogActionSchema\n | DrawerActionSchema\n | ToastActionSchema\n | CopyActionSchema\n | ReloadActionSchema\n | EmailActionSchema\n | OtherActionSchema\n | VanillaAction;\n\nconst ActionProps = [\n 'id',\n 'dialog',\n 'drawer',\n 'toast',\n 'url',\n 'link',\n 'confirmText',\n 'tooltip',\n 'disabledTip',\n 'className',\n 'asyncApi',\n 'redirect',\n 'size',\n 'level',\n 'primary',\n 'feedback',\n 'api',\n 'blank',\n 'tooltipPlacement',\n 'to',\n 'cc',\n 'bcc',\n 'subject',\n 'body',\n 'content',\n 'required',\n 'type',\n 'actionType',\n 'label',\n 'icon',\n 'rightIcon',\n 'reload',\n 'target',\n 'close',\n 'messages',\n 'mergeData',\n 'index',\n 'copy',\n 'copyFormat',\n 'payload',\n 'requireSelected'\n];\nimport {filterContents} from './Remark';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {autobind, createObject} from '../utils/helper';\nimport {\n BaseSchema,\n FeedbackDialog,\n SchemaApi,\n SchemaClassName,\n SchemaCollection,\n SchemaExpression,\n SchemaIcon,\n SchemaReload,\n SchemaTooltip,\n SchemaTpl\n} from '../Schema';\nimport {DialogSchema, DialogSchemaBase} from './Dialog';\nimport {DrawerSchema, DrawerSchemaBase} from './Drawer';\nimport {ToastSchemaBase} from '../Schema';\nimport {generateIcon} from '../utils/icon';\nimport {BadgeSchema, withBadge} from '../components/Badge';\nimport {normalizeApi, str2AsyncFunction} from '../utils/api';\nimport {TooltipWrapper} from '../components/TooltipWrapper';\nimport handleAction from '../utils/handleAction';\n\n// 构造一个假的 React 事件避免可能的报错,主要用于快捷键功能\n// 来自 https://stackoverflow.com/questions/27062455/reactjs-can-i-create-my-own-syntheticevent\nexport const createSyntheticEvent = <T extends Element, E extends Event>(\n event: E\n): React.SyntheticEvent<T, E> => {\n let isDefaultPrevented = false;\n let isPropagationStopped = false;\n const preventDefault = () => {\n isDefaultPrevented = true;\n event.preventDefault();\n };\n const stopPropagation = () => {\n isPropagationStopped = true;\n event.stopPropagation();\n };\n return {\n nativeEvent: event,\n currentTarget: event.currentTarget as EventTarget & T,\n target: event.target as EventTarget & T,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n defaultPrevented: event.defaultPrevented,\n eventPhase: event.eventPhase,\n isTrusted: event.isTrusted,\n preventDefault,\n isDefaultPrevented: () => isDefaultPrevented,\n stopPropagation,\n isPropagationStopped: () => isPropagationStopped,\n persist: () => {},\n timeStamp: event.timeStamp,\n type: event.type\n };\n};\n\nexport interface ActionProps\n extends Omit<\n ButtonSchema,\n 'className' | 'iconClassName' | 'rightIconClassName' | 'loadingClassName'\n >,\n ThemeProps,\n Omit<\n AjaxActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n UrlActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n LinkActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n DialogActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n DrawerActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n ToastSchemaBase,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n CopyActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n ReloadActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n EmailActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n | 'body'\n >,\n Omit<\n OtherActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n > {\n actionType: any;\n onAction?: (\n e: React.MouseEvent<any> | void | null,\n action: ActionSchema\n ) => void;\n isCurrentUrl?: (link: string) => boolean;\n onClick?:\n | ((e: React.MouseEvent<any>, props: any) => void)\n | string\n | Function\n | null;\n componentClass: React.ReactType;\n tooltipContainer?: any;\n data?: any;\n isMenuItem?: boolean;\n active?: boolean;\n}\n\nconst allowedType = ['button', 'submit', 'reset'];\n\ninterface ActionState {\n inCountDown: boolean; // 是否在倒计时\n countDownEnd: number; // 倒计时结束的精确时间\n timeLeft: number; // 倒计时剩余时间\n}\n\nexport class Action extends React.Component<ActionProps, ActionState> {\n static defaultProps = {\n type: 'button' as 'button',\n componentClass: 'button' as React.ReactType,\n tooltipPlacement: 'bottom' as 'bottom',\n activeClassName: 'is-active',\n countDownTpl: 'Action.countDown',\n countDown: 0\n };\n\n state: ActionState = {\n inCountDown: false,\n countDownEnd: 0,\n timeLeft: 0\n };\n\n localStorageKey: string;\n\n dom: any;\n\n constructor(props: ActionProps) {\n super(props);\n this.localStorageKey = 'amis-countdownend-' + (this.props.name || '');\n const countDownEnd = parseInt(\n localStorage.getItem(this.localStorageKey) || '0'\n );\n if (countDownEnd && this.props.countDown) {\n if (Date.now() < countDownEnd) {\n this.state = {\n inCountDown: true,\n countDownEnd,\n timeLeft: Math.floor((countDownEnd - Date.now()) / 1000)\n };\n this.handleCountDown();\n }\n }\n }\n\n @autobind\n async handleAction(e: React.MouseEvent<any>) {\n const {onAction, disabled, countDown, env} = this.props;\n\n // https://reactjs.org/docs/legacy-event-pooling.html\n e.persist();\n let onClick = this.props.onClick;\n\n if (typeof onClick === 'string') {\n onClick = str2AsyncFunction(onClick, 'event', 'props');\n }\n const result: any = onClick && (await onClick(e, this.props));\n\n if (\n disabled ||\n e.isDefaultPrevented() ||\n result === false ||\n !onAction ||\n this.state.inCountDown\n ) {\n return;\n }\n\n e.preventDefault();\n const action = pick(this.props, ActionProps) as ActionSchema;\n const actionType = action.actionType;\n\n // ajax 会在 wrapFetcher 里记录,这里再处理就重复了,因此去掉\n // add 一般是 input-table 之类的,会触发 formItemChange,为了避免重复也去掉\n if (\n actionType !== 'ajax' &&\n actionType !== 'download' &&\n actionType !== 'add'\n ) {\n env?.tracker(\n {\n eventType: actionType || this.props.type || 'click',\n eventData: omit(action, ['type', 'actionType', 'tooltipPlacement'])\n },\n this.props\n );\n }\n\n // download 是一种 ajax 的简写\n if (actionType === 'download') {\n action.actionType = 'ajax';\n const api = normalizeApi((action as AjaxActionSchema).api);\n api.responseType = 'blob';\n (action as AjaxActionSchema).api = api;\n }\n\n onAction(e, action);\n\n if (countDown) {\n const countDownEnd = Date.now() + countDown * 1000;\n this.setState({\n countDownEnd: countDownEnd,\n inCountDown: true,\n timeLeft: countDown\n });\n\n localStorage.setItem(this.localStorageKey, String(countDownEnd));\n\n setTimeout(() => {\n this.handleCountDown();\n }, 1000);\n }\n }\n\n @autobind\n handleCountDown() {\n // setTimeout 一般会晚于 1s,经过几十次后就不准了,所以使用真实时间进行 diff\n const timeLeft = Math.floor((this.state.countDownEnd - Date.now()) / 1000);\n if (timeLeft <= 0) {\n this.setState({\n inCountDown: false,\n timeLeft: timeLeft\n });\n } else {\n this.setState({\n timeLeft: timeLeft\n });\n setTimeout(() => {\n this.handleCountDown();\n }, 1000);\n }\n }\n\n @autobind\n componentDidMount() {\n const {hotKey} = this.props;\n if (hotKey) {\n hotkeys(hotKey, event => {\n event.preventDefault();\n const click = new MouseEvent('click', {\n bubbles: true,\n cancelable: true\n });\n this.handleAction(createSyntheticEvent(click) as any);\n });\n }\n }\n\n @autobind\n componentWillUnmount() {\n const {hotKey} = this.props;\n if (hotKey) {\n hotkeys.unbind(hotKey);\n }\n }\n\n render() {\n const {\n type,\n icon,\n iconClassName,\n rightIcon,\n rightIconClassName,\n loadingClassName,\n primary,\n size,\n level,\n countDownTpl,\n block,\n className,\n componentClass,\n tooltip,\n disabledTip,\n tooltipPlacement,\n actionType,\n link,\n data,\n translate: __,\n activeClassName,\n isCurrentUrl,\n isMenuItem,\n active,\n activeLevel,\n tooltipTrigger,\n tooltipContainer,\n tooltipRootClose,\n loading,\n body,\n render,\n classnames: cx,\n classPrefix: ns\n } = this.props;\n\n if (actionType !== 'email' && body) {\n return (\n <TooltipWrapper\n classPrefix={ns}\n classnames={cx}\n placement={tooltipPlacement}\n tooltip={tooltip}\n container={tooltipContainer}\n trigger={tooltipTrigger}\n rootClose={tooltipRootClose}\n >\n <div className={cx('Action', className)} onClick={this.handleAction}>\n {render('body', body) as JSX.Element}\n </div>\n </TooltipWrapper>\n );\n }\n\n let label = this.props.label;\n let disabled = this.props.disabled;\n let isActive = !!active;\n\n if (actionType === 'link' && !isActive && link && isCurrentUrl) {\n isActive = isCurrentUrl(link);\n }\n\n // 倒计时\n if (this.state.inCountDown) {\n label = filterContents(__(countDownTpl), {\n ...data,\n timeLeft: this.state.timeLeft\n }) as string;\n disabled = true;\n }\n\n const iconElement = generateIcon(cx, icon, 'Button-icon', iconClassName);\n const rightIconElement = generateIcon(\n cx,\n rightIcon,\n 'Button-icon',\n rightIconClassName\n );\n\n return (\n <Button\n className={cx(className, {\n [activeClassName || 'is-active']: isActive\n })}\n size={size}\n level={\n activeLevel && isActive\n ? activeLevel\n : level || (primary ? 'primary' : undefined)\n }\n loadingClassName={loadingClassName}\n loading={loading}\n onClick={this.handleAction}\n type={type && ~allowedType.indexOf(type) ? type : 'button'}\n disabled={disabled}\n componentClass={isMenuItem ? 'a' : componentClass}\n overrideClassName={isMenuItem}\n tooltip={filterContents(tooltip, data)}\n disabledTip={filterContents(disabledTip, data)}\n tooltipPlacement={tooltipPlacement}\n tooltipContainer={tooltipContainer}\n tooltipTrigger={tooltipTrigger}\n tooltipRootClose={tooltipRootClose}\n block={block}\n iconOnly={!!(icon && !label && level !== 'link')}\n >\n {!loading ? iconElement : ''}\n {label ? <span>{filter(String(label), data)}</span> : null}\n {rightIconElement}\n </Button>\n );\n }\n}\n\nexport default themeable(Action);\n\n@Renderer({\n type: 'action'\n})\n// @ts-ignore 类型没搞定\n@withBadge\nexport class ActionRenderer extends React.Component<\n RendererProps &\n Omit<ActionProps, 'onAction' | 'isCurrentUrl' | 'tooltipContainer'> & {\n onAction: (\n e: React.MouseEvent<any> | void | null,\n action: object,\n data: any\n ) => void;\n btnDisabled?: boolean;\n }\n> {\n @autobind\n async handleAction(e: React.MouseEvent<any> | void | null, action: any) {\n const {env, onAction, data, ignoreConfirm, dispatchEvent} = this.props;\n\n // 触发渲染器事件\n const rendererEvent = await dispatchEvent(\n e as React.MouseEvent<any>,\n createObject(data, action)\n );\n\n // 阻止原有动作执行\n if (rendererEvent?.prevented) {\n return;\n }\n\n if (!ignoreConfirm && action.confirmText && env.confirm) {\n env\n .confirm(filter(action.confirmText, data))\n .then((confirmed: boolean) => confirmed && onAction(e, action, data));\n } else {\n onAction(e, action, data);\n }\n }\n\n @autobind\n isCurrentAction(link: string) {\n const {env, data} = this.props;\n return env.isCurrentUrl(filter(link, data));\n }\n\n render() {\n const {env, disabled, btnDisabled, loading, ...rest} = this.props;\n\n return (\n <Action\n {...(rest as any)}\n env={env}\n disabled={disabled || btnDisabled}\n onAction={this.handleAction}\n loading={loading}\n isCurrentUrl={this.isCurrentAction}\n tooltipContainer={\n env.getModalContainer ? env.getModalContainer : undefined\n }\n />\n );\n }\n}\n\n@Renderer({\n type: 'button'\n})\nexport class ButtonRenderer extends ActionRenderer {}\n\n@Renderer({\n type: 'submit'\n})\nexport class SubmitRenderer extends ActionRenderer {}\n\n@Renderer({\n type: 'reset'\n})\nexport class ResetRenderer extends ActionRenderer {}\n"
|
11
|
+
"import React from 'react';\nimport hotkeys from 'hotkeys-js';\nimport {Renderer, RendererProps} from '../factory';\nimport {filter} from '../utils/tpl';\nimport Button from '../components/Button';\nimport pick from 'lodash/pick';\nimport omit from 'lodash/omit';\n\nexport interface ButtonSchema extends BaseSchema {\n /**\n * 主要用于用户行为跟踪里区分是哪个按钮\n */\n id?: string;\n\n /**\n * 是否为块状展示,默认为内联。\n */\n block?: boolean;\n\n /**\n * 禁用时的文案提示。\n */\n disabledTip?: string;\n\n /**\n * 按钮图标, iconfont 的类名\n */\n icon?: SchemaIcon;\n\n /**\n * icon 上的css 类名\n */\n iconClassName?: SchemaClassName;\n\n /**\n * 右侧按钮图标, iconfont 的类名\n */\n rightIcon?: SchemaIcon;\n\n /**\n * 右侧 icon 上的 css 类名\n */\n rightIconClassName?: SchemaClassName;\n /**\n * loading 上的css 类名\n */\n loadingClassName?: SchemaClassName;\n\n /**\n * 按钮文字\n */\n label?: string;\n\n /**\n * 按钮样式\n */\n level?:\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'link'\n | 'primary'\n | 'dark'\n | 'light'\n | 'secondary';\n\n /**\n * @deprecated 通过 level 来配置\n */\n primary?: boolean;\n\n /**\n * 按钮大小\n */\n size?: 'xs' | 'sm' | 'md' | 'lg';\n\n tooltip?: SchemaTooltip;\n tooltipPlacement?: 'top' | 'right' | 'bottom' | 'left';\n\n /**\n * 指定按钮类型,支持 button、submit或者reset三种类型。\n */\n type: 'button' | 'submit' | 'reset';\n\n /**\n * 提示文字,配置了操作前会要求用户确认。\n */\n confirmText?: string;\n\n /**\n * 如果按钮在form中,配置此属性会要求用户把指定的字段通过验证后才会触发行为。\n */\n required?: Array<string>;\n\n /**\n * 激活状态时的样式\n */\n activeLevel?: string;\n\n /**\n * 激活状态时的类名\n */\n activeClassName?: string;\n\n /**\n * 如果按钮在弹框中,可以配置这个动作完成后是否关闭弹窗,或者指定关闭目标弹框。\n */\n close?: boolean | string;\n\n /**\n * 当按钮时批量操作按钮时,默认必须有勾选元素才能可点击,如果此属性配置成 false,则没有点选成员也能点击。\n */\n requireSelected?: boolean;\n\n /**\n * 是否将弹框中数据 merge 到父级作用域。\n */\n mergeData?: boolean;\n\n /**\n * 可以指定让谁来触发这个动作。\n */\n target?: string;\n\n /**\n * 点击后的禁止倒计时(秒)\n */\n countDown?: number;\n\n /**\n * 倒计时文字自定义\n */\n countDownTpl?: string;\n\n /**\n * 角标\n */\n badge?: BadgeSchema;\n\n /**\n * 键盘快捷键\n */\n hotKey?: string;\n /**\n * 是否显示loading效果\n */\n loadingOn?: string;\n\n /**\n * 自定义事件处理函数\n */\n onClick?: string | any;\n\n /**\n * 子内容\n */\n body?: SchemaCollection;\n}\n\nexport interface AjaxActionSchema extends ButtonSchema {\n /**\n * 指定为发送 ajax 的行为。\n */\n actionType: 'ajax';\n\n /**\n * 配置 ajax 发送地址\n */\n api: SchemaApi;\n\n feedback?: FeedbackDialog;\n\n reload?: SchemaReload;\n redirect?: string;\n ignoreConfirm?: boolean;\n}\n\nexport interface DownloadActionSchema\n extends Omit<AjaxActionSchema, 'actionType'> {\n /**\n * 指定为下载行为\n */\n actionType: 'download';\n}\n\nexport interface UrlActionSchema extends ButtonSchema {\n /**\n * 指定为打开链接\n */\n actionType: 'url';\n\n /**\n * 是否新窗口打开\n */\n blank?: boolean;\n\n /**\n * 打开的目标地址\n */\n url: string;\n}\n\nexport interface DialogActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗\n */\n actionType: 'dialog';\n\n /**\n * 弹框详情\n * 文档:https://baidu.gitee.io/amis/docs/components/dialog\n */\n dialog: DialogSchemaBase;\n\n /**\n * 是否有下一个的表达式,正常可以不用配置,如果想要刷掉某些数据可以配置这个。\n */\n nextCondition?: SchemaExpression;\n reload?: SchemaReload;\n redirect?: string;\n}\n\nexport interface DrawerActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗,抽出式弹窗\n */\n actionType: 'drawer';\n\n /**\n * 抽出式弹框详情\n * 文档:https://baidu.gitee.io/amis/docs/components/drawer\n */\n drawer: DrawerSchemaBase;\n\n /**\n * 是否有下一个的表达式,正常可以不用配置,如果想要刷掉某些数据可以配置这个。\n */\n nextCondition?: SchemaExpression;\n reload?: SchemaReload;\n redirect?: string;\n}\n\nexport interface ToastActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗,抽出式弹窗\n */\n actionType: 'toast';\n\n /**\n * 轻提示详情\n * 文档:https://baidu.gitee.io/amis/docs/components/toast\n */\n toast: ToastSchemaBase;\n}\n\nexport interface CopyActionSchema extends ButtonSchema {\n /**\n * 指定为复制内容行为\n */\n actionType: 'copy';\n\n /**\n * 复制啥内容由此配置,支持模板语法。\n */\n copy: SchemaTpl;\n}\n\nexport interface LinkActionSchema extends ButtonSchema {\n /**\n * 指定为打开链接行为,跟 url 不同的时这个行为为单页模式。\n */\n actionType: 'link';\n\n /**\n * 跳转到哪?支持配置相对路径。\n */\n link: string;\n}\n\nexport interface ReloadActionSchema extends ButtonSchema {\n /**\n * 指定为刷新目标组件。\n */\n actionType: 'reload';\n\n /**\n * 指定目标组件。\n */\n target?: SchemaReload;\n}\n\nexport interface EmailActionSchema extends ButtonSchema {\n /**\n * 指定为打开邮箱行为\n */\n actionType: 'email';\n\n /**\n * 收件人邮箱\n */\n to: string;\n\n /**\n * 抄送邮箱\n */\n cc?: string;\n\n /**\n * 匿名抄送邮箱\n */\n bcc?: string;\n\n /**\n * 邮件主题\n */\n subject?: string;\n\n /**\n * 邮件正文\n */\n body?: string;\n}\n\nexport interface OtherActionSchema extends ButtonSchema {\n actionType:\n | 'prev'\n | 'next'\n | 'cancel'\n | 'close'\n | 'submit'\n | 'confirm'\n | 'add'\n | 'reset'\n | 'reset-and-submit';\n [propName: string]: any;\n}\n\nexport interface VanillaAction extends ButtonSchema {\n actionType?: string;\n}\n\n/**\n * 按钮动作渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/action\n */\nexport type ActionSchema =\n | AjaxActionSchema\n | UrlActionSchema\n | LinkActionSchema\n | DialogActionSchema\n | DrawerActionSchema\n | ToastActionSchema\n | CopyActionSchema\n | ReloadActionSchema\n | EmailActionSchema\n | OtherActionSchema\n | VanillaAction;\n\nconst ActionProps = [\n 'id',\n 'dialog',\n 'drawer',\n 'toast',\n 'url',\n 'link',\n 'confirmText',\n 'tooltip',\n 'disabledTip',\n 'className',\n 'asyncApi',\n 'redirect',\n 'size',\n 'level',\n 'primary',\n 'feedback',\n 'api',\n 'blank',\n 'tooltipPlacement',\n 'to',\n 'cc',\n 'bcc',\n 'subject',\n 'body',\n 'content',\n 'required',\n 'type',\n 'actionType',\n 'label',\n 'icon',\n 'rightIcon',\n 'reload',\n 'target',\n 'close',\n 'messages',\n 'mergeData',\n 'index',\n 'copy',\n 'copyFormat',\n 'payload',\n 'requireSelected'\n];\nimport {filterContents} from './Remark';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {autobind, createObject} from '../utils/helper';\nimport {\n BaseSchema,\n FeedbackDialog,\n SchemaApi,\n SchemaClassName,\n SchemaCollection,\n SchemaExpression,\n SchemaIcon,\n SchemaReload,\n SchemaTooltip,\n SchemaTpl\n} from '../Schema';\nimport {DialogSchema, DialogSchemaBase} from './Dialog';\nimport {DrawerSchema, DrawerSchemaBase} from './Drawer';\nimport {ToastSchemaBase} from '../Schema';\nimport {generateIcon} from '../utils/icon';\nimport {BadgeSchema, withBadge} from '../components/Badge';\nimport {normalizeApi, str2AsyncFunction} from '../utils/api';\nimport {TooltipWrapper} from '../components/TooltipWrapper';\nimport handleAction from '../utils/handleAction';\n\n// 构造一个假的 React 事件避免可能的报错,主要用于快捷键功能\n// 来自 https://stackoverflow.com/questions/27062455/reactjs-can-i-create-my-own-syntheticevent\nexport const createSyntheticEvent = <T extends Element, E extends Event>(\n event: E\n): React.SyntheticEvent<T, E> => {\n let isDefaultPrevented = false;\n let isPropagationStopped = false;\n const preventDefault = () => {\n isDefaultPrevented = true;\n event.preventDefault();\n };\n const stopPropagation = () => {\n isPropagationStopped = true;\n event.stopPropagation();\n };\n return {\n nativeEvent: event,\n currentTarget: event.currentTarget as EventTarget & T,\n target: event.target as EventTarget & T,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n defaultPrevented: event.defaultPrevented,\n eventPhase: event.eventPhase,\n isTrusted: event.isTrusted,\n preventDefault,\n isDefaultPrevented: () => isDefaultPrevented,\n stopPropagation,\n isPropagationStopped: () => isPropagationStopped,\n persist: () => {},\n timeStamp: event.timeStamp,\n type: event.type\n };\n};\n\nexport interface ActionProps\n extends Omit<\n ButtonSchema,\n 'className' | 'iconClassName' | 'rightIconClassName' | 'loadingClassName'\n >,\n ThemeProps,\n Omit<\n AjaxActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n UrlActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n LinkActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n DialogActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n DrawerActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n ToastSchemaBase,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n CopyActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n ReloadActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n EmailActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n | 'body'\n >,\n Omit<\n OtherActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n > {\n actionType: any;\n onAction?: (\n e: React.MouseEvent<any> | void | null,\n action: ActionSchema\n ) => void;\n isCurrentUrl?: (link: string) => boolean;\n onClick?:\n | ((e: React.MouseEvent<any>, props: any) => void)\n | string\n | Function\n | null;\n componentClass: React.ReactType;\n tooltipContainer?: any;\n data?: any;\n isMenuItem?: boolean;\n active?: boolean;\n}\n\nconst allowedType = ['button', 'submit', 'reset'];\n\ninterface ActionState {\n inCountDown: boolean; // 是否在倒计时\n countDownEnd: number; // 倒计时结束的精确时间\n timeLeft: number; // 倒计时剩余时间\n}\n\nexport class Action extends React.Component<ActionProps, ActionState> {\n static defaultProps = {\n type: 'button' as 'button',\n componentClass: 'button' as React.ReactType,\n tooltipPlacement: 'bottom' as 'bottom',\n activeClassName: 'is-active',\n countDownTpl: 'Action.countDown',\n countDown: 0\n };\n\n state: ActionState = {\n inCountDown: false,\n countDownEnd: 0,\n timeLeft: 0\n };\n\n localStorageKey: string;\n\n dom: any;\n\n constructor(props: ActionProps) {\n super(props);\n this.localStorageKey = 'amis-countdownend-' + (this.props.name || '');\n const countDownEnd = parseInt(\n localStorage.getItem(this.localStorageKey) || '0'\n );\n if (countDownEnd && this.props.countDown) {\n if (Date.now() < countDownEnd) {\n this.state = {\n inCountDown: true,\n countDownEnd,\n timeLeft: Math.floor((countDownEnd - Date.now()) / 1000)\n };\n this.handleCountDown();\n }\n }\n }\n\n @autobind\n async handleAction(e: React.MouseEvent<any>) {\n const {onAction, disabled, countDown, env} = this.props;\n\n // https://reactjs.org/docs/legacy-event-pooling.html\n e.persist();\n let onClick = this.props.onClick;\n\n if (typeof onClick === 'string') {\n onClick = str2AsyncFunction(onClick, 'event', 'props');\n }\n const result: any = onClick && (await onClick(e, this.props));\n\n if (\n disabled ||\n e.isDefaultPrevented() ||\n result === false ||\n !onAction ||\n this.state.inCountDown\n ) {\n return;\n }\n\n e.preventDefault();\n const action = pick(this.props, ActionProps) as ActionSchema;\n const actionType = action.actionType;\n\n // ajax 会在 wrapFetcher 里记录,这里再处理就重复了,因此去掉\n // add 一般是 input-table 之类的,会触发 formItemChange,为了避免重复也去掉\n if (\n actionType !== 'ajax' &&\n actionType !== 'download' &&\n actionType !== 'add'\n ) {\n env?.tracker(\n {\n eventType: actionType || this.props.type || 'click',\n eventData: omit(action, ['type', 'actionType', 'tooltipPlacement'])\n },\n this.props\n );\n }\n\n // download 是一种 ajax 的简写\n if (actionType === 'download') {\n action.actionType = 'ajax';\n const api = normalizeApi((action as AjaxActionSchema).api);\n api.responseType = 'blob';\n (action as AjaxActionSchema).api = api;\n }\n\n onAction(e, action);\n\n if (countDown) {\n const countDownEnd = Date.now() + countDown * 1000;\n this.setState({\n countDownEnd: countDownEnd,\n inCountDown: true,\n timeLeft: countDown\n });\n\n localStorage.setItem(this.localStorageKey, String(countDownEnd));\n\n setTimeout(() => {\n this.handleCountDown();\n }, 1000);\n }\n }\n\n @autobind\n handleCountDown() {\n // setTimeout 一般会晚于 1s,经过几十次后就不准了,所以使用真实时间进行 diff\n const timeLeft = Math.floor((this.state.countDownEnd - Date.now()) / 1000);\n if (timeLeft <= 0) {\n this.setState({\n inCountDown: false,\n timeLeft: timeLeft\n });\n } else {\n this.setState({\n timeLeft: timeLeft\n });\n setTimeout(() => {\n this.handleCountDown();\n }, 1000);\n }\n }\n\n @autobind\n componentDidMount() {\n const {hotKey} = this.props;\n if (hotKey) {\n hotkeys(hotKey, event => {\n event.preventDefault();\n const click = new MouseEvent('click', {\n bubbles: true,\n cancelable: true\n });\n this.handleAction(createSyntheticEvent(click) as any);\n });\n }\n }\n\n @autobind\n componentWillUnmount() {\n const {hotKey} = this.props;\n if (hotKey) {\n hotkeys.unbind(hotKey);\n }\n }\n\n render() {\n const {\n type,\n icon,\n iconClassName,\n rightIcon,\n rightIconClassName,\n loadingClassName,\n primary,\n size,\n level,\n countDownTpl,\n block,\n className,\n componentClass,\n tooltip,\n disabledTip,\n tooltipPlacement,\n actionType,\n link,\n data,\n translate: __,\n activeClassName,\n isCurrentUrl,\n isMenuItem,\n active,\n activeLevel,\n tooltipTrigger,\n tooltipContainer,\n tooltipRootClose,\n loading,\n body,\n render,\n classnames: cx,\n classPrefix: ns\n } = this.props;\n\n if (actionType !== 'email' && body) {\n return (\n <TooltipWrapper\n classPrefix={ns}\n classnames={cx}\n placement={tooltipPlacement}\n tooltip={tooltip}\n container={tooltipContainer}\n trigger={tooltipTrigger}\n rootClose={tooltipRootClose}\n >\n <div className={cx('Action', className)} onClick={this.handleAction}>\n {render('body', body) as JSX.Element}\n </div>\n </TooltipWrapper>\n );\n }\n\n let label = this.props.label;\n let disabled = this.props.disabled;\n let isActive = !!active;\n\n if (actionType === 'link' && !isActive && link && isCurrentUrl) {\n isActive = isCurrentUrl(link);\n }\n\n // 倒计时\n if (this.state.inCountDown) {\n label = filterContents(__(countDownTpl), {\n ...data,\n timeLeft: this.state.timeLeft\n }) as string;\n disabled = true;\n }\n\n const iconElement = generateIcon(cx, icon, 'Button-icon', iconClassName);\n const rightIconElement = generateIcon(\n cx,\n rightIcon,\n 'Button-icon',\n rightIconClassName\n );\n\n return (\n <Button\n className={cx(className, {\n [activeClassName || 'is-active']: isActive\n })}\n size={size}\n level={\n activeLevel && isActive\n ? activeLevel\n : level || (primary ? 'primary' : undefined)\n }\n loadingClassName={loadingClassName}\n loading={loading}\n onClick={this.handleAction}\n type={type && ~allowedType.indexOf(type) ? type : 'button'}\n disabled={disabled}\n componentClass={isMenuItem ? 'a' : componentClass}\n overrideClassName={isMenuItem}\n tooltip={filterContents(tooltip, data)}\n disabledTip={filterContents(disabledTip, data)}\n tooltipPlacement={tooltipPlacement}\n tooltipContainer={tooltipContainer}\n tooltipTrigger={tooltipTrigger}\n tooltipRootClose={tooltipRootClose}\n block={block}\n iconOnly={!!(icon && !label && level !== 'link')}\n >\n {!loading ? iconElement : ''}\n {label ? <span>{filter(String(label), data)}</span> : null}\n {rightIconElement}\n </Button>\n );\n }\n}\n\nexport default themeable(Action);\n\n@Renderer({\n type: 'action'\n})\n// @ts-ignore 类型没搞定\n@withBadge\nexport class ActionRenderer extends React.Component<\n RendererProps &\n Omit<ActionProps, 'onAction' | 'isCurrentUrl' | 'tooltipContainer'> & {\n onAction: (\n e: React.MouseEvent<any> | void | null,\n action: object,\n data: any\n ) => void;\n btnDisabled?: boolean;\n }\n> {\n @autobind\n async handleAction(e: React.MouseEvent<any> | void | null, action: any) {\n const {env, onAction, data, ignoreConfirm, dispatchEvent} = this.props;\n\n // 触发渲染器事件\n const rendererEvent = await dispatchEvent(\n e as React.MouseEvent<any>,\n createObject(data, action)\n );\n\n // 阻止原有动作执行\n if (rendererEvent?.prevented) {\n return;\n }\n\n if (!ignoreConfirm && action.confirmText && env.confirm) {\n env\n .confirm(filter(action.confirmText, data))\n .then((confirmed: boolean) => confirmed && onAction(e, action, data));\n } else {\n onAction(e, action, data);\n }\n }\n\n @autobind\n isCurrentAction(link: string) {\n const {env, data} = this.props;\n return env.isCurrentUrl(filter(link, data));\n }\n\n render() {\n const {env, disabled, btnDisabled, loading, ...rest} = this.props;\n\n return (\n <Action\n {...(rest as any)}\n env={env}\n disabled={disabled || btnDisabled}\n onAction={this.handleAction}\n loading={loading}\n isCurrentUrl={this.isCurrentAction}\n tooltipContainer={\n env.getModalContainer ? env.getModalContainer : undefined\n }\n />\n );\n }\n}\n\n@Renderer({\n type: 'button'\n})\nexport class ButtonRenderer extends ActionRenderer {}\n\n@Renderer({\n type: 'submit'\n})\nexport class SubmitRenderer extends ActionRenderer {}\n\n@Renderer({\n type: 'reset'\n})\nexport class ResetRenderer extends ActionRenderer {}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -11,11 +11,11 @@ export interface ButtonGroupSchema extends BaseSchema {
|
|
11
11
|
*/
|
12
12
|
type: 'button-group';
|
13
13
|
/**
|
14
|
-
* 给 Button 配置 className
|
14
|
+
* @deprecated 给 Button 配置 className。建议用btnLevel
|
15
15
|
*/
|
16
16
|
btnClassName?: SchemaClassName;
|
17
17
|
/**
|
18
|
-
* 给选中态 Button 配置 className
|
18
|
+
* @deprecated 给选中态 Button 配置 className。建议用btnActiveLevel
|
19
19
|
*/
|
20
20
|
btnActiveClassName: string;
|
21
21
|
/**
|
@@ -8,6 +8,6 @@
|
|
8
8
|
"names": [],
|
9
9
|
"mappings": ";;;;AACA,4FAAmD;AACnD,sCAAoC;AA2EpC,kBAAe,2BAAW,CAAC;AAK3B;IAAyC,oDAAW;IAApD;;IAAsD,CAAC;IAA1C,mBAAmB;QAH/B,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,cAAc;SACrB,CAAC;OACW,mBAAmB,CAAuB;IAAD,0BAAC;CAAA,AAAvD,CAAyC,2BAAW,GAAG;AAA1C,kDAAmB",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport ButtonGroup from './Form/ButtonGroupSelect';\nimport {Renderer} from '../factory';\nimport {BaseSchema, SchemaClassName, SchemaExpression} from '../Schema';\nimport {ActionSchema} from './Action';\n\n/**\n * Button Group 渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/button-group\n */\nexport interface ButtonGroupSchema extends BaseSchema {\n /**\n * 指定为提交按钮类型\n */\n type: 'button-group';\n\n /**\n * 给 Button 配置 className
|
11
|
+
"import React from 'react';\nimport ButtonGroup from './Form/ButtonGroupSelect';\nimport {Renderer} from '../factory';\nimport {BaseSchema, SchemaClassName, SchemaExpression} from '../Schema';\nimport {ActionSchema} from './Action';\n\n/**\n * Button Group 渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/button-group\n */\nexport interface ButtonGroupSchema extends BaseSchema {\n /**\n * 指定为提交按钮类型\n */\n type: 'button-group';\n\n /**\n * @deprecated 给 Button 配置 className。建议用btnLevel\n */\n btnClassName?: SchemaClassName;\n\n /**\n * @deprecated 给选中态 Button 配置 className。建议用btnActiveLevel\n */\n btnActiveClassName: string;\n\n /**\n * 按钮集合\n */\n buttons?: Array<ActionSchema>;\n\n /**\n * 按钮样式级别\n */\n btnLevel: string;\n\n /**\n * 按钮选中的样式级别\n */\n btnActiveLevel: string;\n\n /**\n * 垂直展示?\n */\n vertical?: boolean;\n\n /**\n * 平铺展示?\n */\n tiled?: boolean;\n\n /**\n * 是否为禁用状态。\n */\n disabled?: boolean;\n\n /**\n * 通过 JS 表达式来配置当前表单项的禁用状态。\n */\n disabledOn?: SchemaExpression;\n\n /**\n * 是否显示\n */\n visible?: boolean;\n\n /**\n * 通过 JS 表达式来配置当前表单项是否显示\n */\n visibleOn?: SchemaExpression;\n\n /**\n * 按钮大小\n */\n size?: 'xs' | 'sm' | 'md' | 'lg';\n}\n\nexport default ButtonGroup;\n\n@Renderer({\n type: 'button-group'\n})\nexport class ButtonGroupRenderer extends ButtonGroup {}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -56,6 +56,10 @@ export interface DialogSchema extends BaseSchema {
|
|
56
56
|
* 是否显示错误信息
|
57
57
|
*/
|
58
58
|
showErrorMsg?: boolean;
|
59
|
+
/**
|
60
|
+
* 是否显示 spinner
|
61
|
+
*/
|
62
|
+
showLoading?: boolean;
|
59
63
|
}
|
60
64
|
export declare type DialogSchemaBase = Omit<DialogSchema, 'type'>;
|
61
65
|
export interface DialogProps extends RendererProps, Omit<DialogSchema, 'className'> {
|
package/lib/renderers/Dialog.js
CHANGED
@@ -243,10 +243,11 @@ var Dialog = /** @class */ (function (_super) {
|
|
243
243
|
if (!actions || !actions.length) {
|
244
244
|
return null;
|
245
245
|
}
|
246
|
-
var _a = this.props, store = _a.store, render = _a.render, cx = _a.classnames, showErrorMsg = _a.showErrorMsg;
|
246
|
+
var _a = this.props, store = _a.store, render = _a.render, cx = _a.classnames, showErrorMsg = _a.showErrorMsg, showLoading = _a.showLoading;
|
247
247
|
return (react_1.default.createElement("div", { className: cx('Modal-footer') },
|
248
|
-
|
249
|
-
react_1.default.createElement(
|
248
|
+
(showLoading !== false && store.loading) ||
|
249
|
+
(showErrorMsg !== false && store.error) ? (react_1.default.createElement("div", { className: cx('Dialog-info'), key: "info" },
|
250
|
+
showLoading !== false ? (react_1.default.createElement(components_1.Spinner, { size: "sm", key: "info", show: store.loading })) : null,
|
250
251
|
store.error && showErrorMsg !== false ? (react_1.default.createElement("span", { className: cx('Dialog-error') }, store.msg)) : null)) : null,
|
251
252
|
actions.map(function (action, key) {
|
252
253
|
return render("action/".concat(key), action, {
|