amis 1.9.1-beta.0 → 1.9.1-beta.4
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/RootRenderer.js +10 -2
- package/lib/RootRenderer.js.map +2 -2
- package/lib/Schema.d.ts +3 -2
- package/lib/Schema.js.map +1 -1
- package/lib/SchemaRenderer.js +6 -9
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/actions/CmptAction.js +4 -4
- package/lib/actions/CmptAction.js.map +2 -2
- package/lib/components/Button.d.ts +11 -10
- package/lib/components/Button.js +2 -2
- package/lib/components/Button.js.map +2 -2
- package/lib/components/CalendarMobile.d.ts +40 -40
- package/lib/components/Checkbox.js +1 -1
- package/lib/components/Checkbox.js.map +2 -2
- package/lib/components/ContextMenu.d.ts +4 -0
- package/lib/components/ContextMenu.js +23 -7
- package/lib/components/ContextMenu.js.map +2 -2
- package/lib/components/DatePicker.d.ts +40 -40
- package/lib/components/DateRangePicker.d.ts +40 -40
- package/lib/components/Form.d.ts +22 -0
- package/lib/components/Form.js +44 -0
- package/lib/components/Form.js.map +13 -0
- package/lib/components/FormField.d.ts +65 -0
- package/lib/components/FormField.js +48 -0
- package/lib/components/FormField.js.map +13 -0
- package/lib/components/InputBox.d.ts +10 -10
- package/lib/components/InputBox.js +4 -3
- package/lib/components/InputBox.js.map +2 -2
- package/lib/components/InputBoxWithSuggestion.d.ts +280 -0
- package/lib/components/InputBoxWithSuggestion.js +65 -0
- package/lib/components/InputBoxWithSuggestion.js.map +13 -0
- package/lib/components/ListGroup.d.ts +10 -10
- package/lib/components/PickerContainer.d.ts +4 -2
- package/lib/components/PickerContainer.js +28 -5
- package/lib/components/PickerContainer.js.map +2 -2
- package/lib/components/Radios.d.ts +10 -10
- package/lib/components/ResultBox.d.ts +40 -40
- package/lib/components/Select.d.ts +195 -202
- package/lib/components/Select.js +7 -3
- package/lib/components/Select.js.map +2 -2
- package/lib/components/Textarea.d.ts +568 -2
- package/lib/components/Textarea.js +129 -1
- package/lib/components/Textarea.js.map +2 -2
- package/lib/components/Toast.js +11 -9
- package/lib/components/Toast.js.map +2 -2
- package/lib/components/UserSelect.d.ts +500 -0
- package/lib/components/UserSelect.js +559 -0
- package/lib/components/UserSelect.js.map +13 -0
- package/lib/components/UserTabSelect.d.ts +320 -0
- package/lib/components/UserTabSelect.js +163 -0
- package/lib/components/UserTabSelect.js.map +13 -0
- package/lib/components/WithRemoteConfig.d.ts +7 -0
- package/lib/components/WithRemoteConfig.js +22 -13
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/calendar/DaysView.d.ts +26 -1
- package/lib/components/calendar/DaysView.js +60 -19
- package/lib/components/calendar/DaysView.js.map +2 -2
- package/lib/components/calendar/TimeView.d.ts +1 -1
- package/lib/components/calendar/TimeView.js +10 -3
- package/lib/components/calendar/TimeView.js.map +2 -2
- package/lib/components/formula/Picker.js +4 -4
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/icons.d.ts +7 -1
- package/lib/components/icons.js +17 -1
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +3 -1
- package/lib/components/index.js.map +2 -2
- package/lib/components/json-schema/Array.d.ts +3 -0
- package/lib/components/json-schema/Array.js +125 -0
- package/lib/components/json-schema/Array.js.map +13 -0
- package/lib/components/json-schema/Item.d.ts +3 -0
- package/lib/components/json-schema/Item.js +34 -0
- package/lib/components/json-schema/Item.js.map +13 -0
- package/lib/components/json-schema/Object.d.ts +3 -0
- package/lib/components/json-schema/Object.js +178 -0
- package/lib/components/json-schema/Object.js.map +13 -0
- package/lib/components/json-schema/index.d.ts +279 -0
- package/lib/components/json-schema/index.js +16 -0
- package/lib/components/json-schema/index.js.map +13 -0
- package/lib/components/schema-editor/Array.js +2 -2
- package/lib/components/schema-editor/Array.js.map +2 -2
- package/lib/components/schema-editor/Common.d.ts +2 -0
- package/lib/components/schema-editor/Common.js +39 -3
- package/lib/components/schema-editor/Common.js.map +2 -2
- package/lib/components/schema-editor/Object.js +2 -2
- package/lib/components/schema-editor/Object.js.map +2 -2
- package/lib/components/schema-editor/index.d.ts +45 -41
- package/lib/components/schema-editor/index.js +5 -5
- package/lib/components/schema-editor/index.js.map +2 -2
- package/lib/components/table/ItemActionsWrapper.d.ts +10 -0
- package/lib/components/table/ItemActionsWrapper.js +25 -0
- package/lib/components/table/ItemActionsWrapper.js.map +13 -0
- package/lib/components/table/index.d.ts +48 -41
- package/lib/components/table/index.js +46 -18
- package/lib/components/table/index.js.map +2 -2
- package/lib/helper.css +125 -124
- package/lib/helper.css.map +1 -1
- package/lib/hooks/use-validation-resolver.d.ts +1 -0
- package/lib/hooks/use-validation-resolver.js +49 -0
- package/lib/hooks/use-validation-resolver.js.map +13 -0
- package/lib/icons/department.js +17 -0
- package/lib/icons/menu.js +9 -0
- package/lib/icons/post.js +15 -0
- package/lib/icons/role.js +14 -0
- package/lib/icons/user-remove.js +12 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +11 -1
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +12 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +14 -3
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.js +25 -11
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/CRUD.js +5 -1
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Dialog.js +9 -3
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/Drawer.js +5 -1
- package/lib/renderers/Drawer.js.map +2 -2
- package/lib/renderers/Form/InputDate.d.ts +2 -2
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/JSONSchema.d.ts +23 -0
- package/lib/renderers/Form/JSONSchema.js +44 -0
- package/lib/renderers/Form/JSONSchema.js.map +13 -0
- package/lib/renderers/Form/JSONSchemaEditor.d.ts +2 -3
- package/lib/renderers/Form/JSONSchemaEditor.js +9 -24
- package/lib/renderers/Form/JSONSchemaEditor.js.map +2 -2
- package/lib/renderers/Form/Options.js +11 -5
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Textarea.d.ts +1 -8
- package/lib/renderers/Form/Textarea.js +11 -75
- package/lib/renderers/Form/Textarea.js.map +2 -2
- package/lib/renderers/Form/UserSelect.d.ts +54 -0
- package/lib/renderers/Form/UserSelect.js +197 -0
- package/lib/renderers/Form/UserSelect.js.map +13 -0
- package/lib/renderers/Form/index.d.ts +1 -1
- package/lib/renderers/Form/index.js +88 -42
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Log.d.ts +28 -0
- package/lib/renderers/Log.js +110 -20
- package/lib/renderers/Log.js.map +2 -2
- package/lib/renderers/Page.js +5 -1
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Service.js +5 -1
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/Table-v2/index.d.ts +14 -2
- package/lib/renderers/Table-v2/index.js +33 -3
- package/lib/renderers/Table-v2/index.js.map +2 -2
- package/lib/renderers/Wizard.js +37 -14
- package/lib/renderers/Wizard.js.map +2 -2
- package/lib/store/form.js +65 -45
- package/lib/store/form.js.map +2 -2
- package/lib/themes/ang-ie11.css +576 -24
- package/lib/themes/ang.css +553 -12
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +576 -24
- package/lib/themes/antd.css +553 -12
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +576 -24
- package/lib/themes/cxd.css +553 -12
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +576 -24
- package/lib/themes/dark.css +553 -12
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +576 -24
- package/lib/themes/default.css +553 -12
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/api.js +1 -1
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/renderer-event.js.map +2 -2
- package/package.json +2 -1
- package/schema.json +552 -5
- package/scss/_properties.scss +20 -8
- package/scss/components/_input-box.scss +22 -1
- package/scss/components/_json-schema.scss +124 -0
- package/scss/components/_log.scss +37 -5
- package/scss/components/form/_date-range.scss +1 -0
- package/scss/components/form/_select.scss +9 -0
- package/scss/components/form/_transfer.scss +19 -3
- package/scss/components/form/_user-select.scss +422 -0
- package/scss/helper/background/_background-color.scss +125 -124
- package/scss/themes/_common.scss +2 -0
- package/sdk/ang-ie11.css +670 -24
- package/sdk/ang.css +647 -12
- package/sdk/antd-ie11.css +670 -24
- package/sdk/antd.css +647 -12
- 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 +670 -24
- package/sdk/cxd.css +647 -12
- package/sdk/dark-ie11.css +670 -24
- package/sdk/dark.css +647 -12
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css +125 -124
- package/sdk/helper.css.map +1 -1
- package/sdk/locale/de-DE.js +11 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +670 -24
- package/sdk/sdk.css +647 -12
- package/sdk/sdk.js +1653 -1637
- 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/RootRenderer.tsx +27 -15
- package/src/Schema.ts +5 -1
- package/src/SchemaRenderer.tsx +1 -4
- package/src/actions/CmptAction.ts +4 -4
- package/src/components/Button.tsx +3 -0
- package/src/components/Checkbox.tsx +2 -1
- package/src/components/ContextMenu.tsx +25 -7
- package/src/components/Form.tsx +70 -0
- package/src/components/FormField.tsx +127 -0
- package/src/components/InputBox.tsx +4 -1
- package/src/components/InputBoxWithSuggestion.tsx +113 -0
- package/src/components/PickerContainer.tsx +20 -5
- package/src/components/Select.tsx +18 -10
- package/src/components/Textarea.tsx +234 -2
- package/src/components/Toast.tsx +19 -18
- package/src/components/UserSelect.tsx +850 -0
- package/src/components/UserTabSelect.tsx +261 -0
- package/src/components/WithRemoteConfig.tsx +35 -11
- package/src/components/calendar/DaysView.tsx +117 -49
- package/src/components/calendar/TimeView.tsx +11 -6
- package/src/components/formula/Picker.tsx +2 -1
- package/src/components/icons.tsx +17 -1
- package/src/components/index.tsx +3 -1
- package/src/components/json-schema/Array.tsx +216 -0
- package/src/components/json-schema/Item.tsx +47 -0
- package/src/components/json-schema/Object.tsx +339 -0
- package/src/components/json-schema/index.tsx +44 -0
- package/src/components/schema-editor/Array.tsx +3 -1
- package/src/components/schema-editor/Common.tsx +61 -4
- package/src/components/schema-editor/Object.tsx +3 -1
- package/src/components/schema-editor/index.tsx +12 -5
- package/src/components/table/ItemActionsWrapper.tsx +32 -0
- package/src/components/table/index.tsx +115 -58
- package/src/hooks/use-validation-resolver.ts +45 -0
- package/src/icons/department.svg +17 -0
- package/src/icons/menu.svg +2 -0
- package/src/icons/post.svg +15 -0
- package/src/icons/role.svg +14 -0
- package/src/icons/user-remove.svg +12 -0
- package/src/index.tsx +2 -0
- package/src/locale/de-DE.ts +11 -1
- package/src/locale/en-US.ts +12 -1
- package/src/locale/zh-CN.ts +14 -3
- package/src/renderers/Action.tsx +10 -9
- package/src/renderers/CRUD.tsx +5 -1
- package/src/renderers/Dialog.tsx +9 -3
- package/src/renderers/Drawer.tsx +5 -1
- package/src/renderers/Form/InputDate.tsx +9 -4
- package/src/renderers/Form/JSONSchema.tsx +56 -0
- package/src/renderers/Form/JSONSchemaEditor.tsx +8 -27
- package/src/renderers/Form/Options.tsx +17 -7
- package/src/renderers/Form/Textarea.tsx +7 -117
- package/src/renderers/Form/UserSelect.tsx +263 -0
- package/src/renderers/Form/index.tsx +28 -18
- package/src/renderers/Form/wrapControl.tsx +0 -1
- package/src/renderers/Log.tsx +213 -19
- package/src/renderers/Page.tsx +6 -1
- package/src/renderers/Service.tsx +5 -1
- package/src/renderers/Table-v2/index.tsx +65 -2
- package/src/renderers/Wizard.tsx +24 -10
- package/src/store/form.ts +24 -17
- package/src/utils/api.ts +1 -1
- package/src/utils/renderer-event.ts +0 -2
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/wrapControl.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 {IFormStore, IFormItemStore} from '../../store/form';\nimport debouce from 'lodash/debounce';\n\nimport {RendererProps, Renderer} from '../../factory';\nimport {ComboStore, IComboStore, IUniqueGroup} from '../../store/combo';\nimport {\n anyChanged,\n promisify,\n isObject,\n guid,\n isEmpty,\n autobind,\n getVariable,\n createObject\n} from '../../utils/helper';\nimport {IIRendererStore, IRendererStore} from '../../store';\nimport {ScopedContext, IScopedContext} from '../../Scoped';\nimport {reaction} from 'mobx';\nimport {FormItemStore} from '../../store/formItem';\nimport {isAlive} from 'mobx-state-tree';\nimport {observer} from 'mobx-react';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport {withRootStore} from '../../WithRootStore';\nimport {FormBaseControl, FormItemWrap} from './Item';\nimport {Api} from '../../types';\nimport {TableStore} from '../../store/table';\n\nexport interface ControlOutterProps extends RendererProps {\n formStore?: IFormStore;\n name?: string;\n value?: any;\n id?: string;\n type?: string;\n required?: boolean;\n validations: string | {[propsName: string]: any};\n validationErrors: {[propsName: string]: any};\n validateOnChange: boolean;\n multiple?: boolean;\n delimiter?: string;\n joinValues?: boolean;\n extractValue?: boolean;\n valueField?: string;\n labelField?: string;\n unique?: boolean;\n selectFirst?: boolean;\n autoFill?: any;\n clearValueOnHidden?: boolean;\n validateApi?: Api;\n submitOnChange?: boolean;\n validate?: (value: any, values: any, name: string) => any;\n formItem?: IFormItemStore;\n addHook?: (fn: () => any, type?: 'validate' | 'init' | 'flush') => void;\n removeHook?: (fn: () => any, type?: 'validate' | 'init' | 'flush') => void;\n $schema: {\n pipeIn?: (value: any, data: any) => any;\n pipeOut?: (value: any, originValue: any, data: any) => any;\n [propName: string]: any;\n };\n store?: IIRendererStore;\n onChange?: (\n value: any,\n name: string,\n submit?: boolean,\n changePristine?: boolean\n ) => void;\n formItemDispatchEvent: (type: string, data: any) => void;\n}\n\nexport interface ControlProps {\n onBulkChange?: (values: Object) => void;\n onChange?: (value: any, name: string, submit: boolean) => void;\n store: IIRendererStore;\n}\n\nexport function wrapControl<\n T extends React.ComponentType<React.ComponentProps<T> & ControlProps>\n>(ComposedComponent: T) {\n type OuterProps = JSX.LibraryManagedAttributes<\n T,\n Omit<React.ComponentProps<T>, keyof ControlProps>\n > &\n ControlOutterProps;\n\n const result = hoistNonReactStatic(\n withRootStore(\n observer(\n class extends React.Component<OuterProps> {\n public model: IFormItemStore | undefined;\n control?: any;\n value?: any = undefined;\n hook?: () => any;\n hook2?: () => any;\n hook3?: () => any;\n reaction?: () => void;\n\n static contextType = ScopedContext;\n static defaultProps = {};\n\n lazyEmitChange = debouce(this.emitChange.bind(this), 250, {\n trailing: true,\n leading: false\n });\n\n constructor(props: OuterProps) {\n super(props);\n\n const {\n formStore: form,\n formItem,\n rootStore,\n store,\n onChange,\n data,\n $schema: {\n name,\n id,\n type,\n required,\n validations,\n validationErrors,\n unique,\n value,\n multiple,\n delimiter,\n valueField,\n labelField,\n joinValues,\n extractValue,\n selectFirst,\n autoFill,\n clearValueOnHidden,\n validateApi,\n minLength,\n maxLength,\n validateOnChange,\n label\n }\n } = this.props;\n\n this.getValue = this.getValue.bind(this);\n this.setValue = this.setValue.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.setPrinstineValue = this.setPrinstineValue.bind(this);\n this.controlRef = this.controlRef.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n\n if (!name) {\n return;\n }\n\n let propValue = this.props.value;\n const model = rootStore.addStore({\n id: guid(),\n path: this.props.$path,\n storeType: FormItemStore.name,\n parentId: store?.id,\n name\n }) as IFormItemStore;\n this.model = model;\n // @issue 打算干掉这个\n formItem?.addSubFormItem(model);\n model.config({\n id,\n type,\n required,\n unique,\n value,\n rules: validations,\n messages: validationErrors,\n multiple,\n delimiter,\n valueField,\n labelField,\n joinValues,\n extractValue,\n selectFirst,\n autoFill,\n clearValueOnHidden,\n validateApi,\n minLength,\n maxLength,\n validateOnChange,\n label\n });\n\n // issue 这个逻辑应该在 combo 里面自己实现。\n if (\n this.model.unique &&\n form?.parentStore?.storeType === ComboStore.name\n ) {\n const combo = form.parentStore as IComboStore;\n combo.bindUniuqueItem(model);\n }\n\n // 同步 value\n model.changeTmpValue(\n propValue ?? store?.getValueByName(model.name) ?? value\n );\n\n // 如果没有初始值,通过 onChange 设置过去\n if (\n onChange &&\n typeof propValue === 'undefined' &&\n typeof store?.getValueByName(model.name, false) === 'undefined' &&\n // todo 后续再优化这个判断,\n // 目前 input-table 中默认值会给冲掉,所以加上这个判断\n // 对应 issue 为 https://github.com/baidu/amis/issues/2674\n store?.storeType !== TableStore.name\n ) {\n onChange(model.tmpValue, model.name, false, true);\n }\n }\n\n componentDidMount() {\n const {\n store,\n formStore: form,\n $schema: {name, validate},\n addHook\n } = this.props;\n\n // 提交前先把之前的 lazyEmit 执行一下。\n this.hook3 = () => {\n this.lazyEmitChange.flush();\n };\n addHook?.(this.hook3, 'flush');\n\n const formItem = this.model as IFormItemStore;\n if (formItem && validate) {\n let finalValidate = promisify(validate.bind(formItem));\n this.hook2 = () => {\n formItem.clearError('control:valdiate');\n return finalValidate(\n this.props.data,\n this.getValue(),\n name\n ).then((ret: any) => {\n if ((typeof ret === 'string' || Array.isArray(ret)) && ret) {\n formItem.addError(ret, 'control:valdiate');\n }\n });\n };\n addHook?.(this.hook2);\n }\n }\n\n componentDidUpdate(prevProps: OuterProps) {\n const props = this.props;\n const form = props.formStore;\n const model = this.model;\n\n if (\n model &&\n anyChanged(\n [\n 'id',\n 'validations',\n 'validationErrors',\n 'value',\n 'required',\n 'unique',\n 'multiple',\n 'delimiter',\n 'valueField',\n 'labelField',\n 'joinValues',\n 'extractValue',\n 'selectFirst',\n 'autoFill',\n 'clearValueOnHidden',\n 'validateApi',\n 'minLength',\n 'maxLength',\n 'label'\n ],\n prevProps.$schema,\n props.$schema\n )\n ) {\n model.config({\n required: props.$schema.required,\n id: props.$schema.id,\n unique: props.$schema.unique,\n value: props.$schema.value,\n rules: props.$schema.validations,\n multiple: props.$schema.multiple,\n delimiter: props.$schema.delimiter,\n valueField: props.$schema.valueField,\n labelField: props.$schema.labelField,\n joinValues: props.$schema.joinValues,\n extractValue: props.$schema.extractValue,\n messages: props.$schema.validationErrors,\n selectFirst: props.$schema.selectFirst,\n autoFill: props.$schema.autoFill,\n clearValueOnHidden: props.$schema.clearValueOnHidden,\n validateApi: props.$schema.validateApi,\n minLength: props.$schema.minLength,\n maxLength: props.$schema.maxLength,\n label: props.$schema.label\n });\n }\n\n if (model && typeof props.value !== 'undefined') {\n // 自己控制的 value 优先\n if (\n props.value !== prevProps.value &&\n props.value !== model.tmpValue\n ) {\n model.changeTmpValue(props.value);\n }\n } else if (\n // 然后才是查看关联的 name 属性值是否变化\n model &&\n props.data !== prevProps.data &&\n (!model.emitedValue || model.emitedValue === model.tmpValue)\n ) {\n model.changeEmitedValue(undefined);\n const value = getVariable(props.data, model.name);\n const prevValue = getVariable(prevProps.data, model.name);\n if (\n (value !== prevValue ||\n getVariable(props.data, model.name, false) !==\n getVariable(prevProps.data, model.name, false)) &&\n value !== model.tmpValue\n ) {\n model.changeTmpValue(value);\n }\n }\n }\n\n componentWillUnmount() {\n this.hook && this.props.removeHook?.(this.hook);\n this.hook2 && this.props.removeHook?.(this.hook2);\n this.hook3 && this.props.removeHook?.(this.hook3, 'flush');\n // this.lazyEmitChange.flush();\n\n this.lazyEmitChange.cancel();\n this.reaction?.();\n this.disposeModel();\n }\n\n disposeModel() {\n const {formStore: form, formItem, rootStore} = this.props;\n\n if (\n this.model &&\n this.model.unique &&\n form?.parentStore &&\n form?.parentStore.storeType === ComboStore.name\n ) {\n const combo = form.parentStore as IComboStore;\n combo.unBindUniuqueItem(this.model);\n }\n\n if (this.model) {\n formItem &&\n isAlive(formItem) &&\n formItem.removeSubFormItem(this.model);\n\n this.model.clearValueOnHidden &&\n this.model.form?.deleteValueByName(this.model.name);\n\n isAlive(rootStore) && rootStore.removeStore(this.model);\n }\n delete this.model;\n }\n\n controlRef(control: any) {\n const {\n addHook,\n removeHook,\n formStore: form,\n $schema: {name}\n } = this.props;\n\n // 因为 control 有可能被 n 层 hoc 包裹。\n while (control && control.getWrappedInstance) {\n control = control.getWrappedInstance();\n }\n\n if (control && control.validate && this.model) {\n const formItem = this.model as IFormItemStore;\n let validate = promisify(control.validate.bind(control));\n this.hook = () => {\n formItem.clearError('component:valdiate');\n\n return validate(this.props.data, this.getValue(), name).then(\n ret => {\n if (\n (typeof ret === 'string' || Array.isArray(ret)) &&\n ret\n ) {\n formItem.setError(ret, 'component:valdiate');\n }\n }\n );\n };\n addHook?.(this.hook);\n } else if (!control && this.hook) {\n removeHook?.(this.hook);\n this.hook = undefined;\n }\n\n // 注册到 Scoped 上\n const originRef = this.control;\n this.control = control;\n const scoped = this.context as IScopedContext;\n\n if (control) {\n scoped.registerComponent(this.control);\n } else if (originRef) {\n scoped.unRegisterComponent(originRef);\n }\n }\n\n async validate() {\n const {formStore: form, data, formItemDispatchEvent} = this.props;\n let result;\n if (this.model) {\n if (\n this.model.unique &&\n form?.parentStore &&\n form.parentStore.storeType === ComboStore.name\n ) {\n const combo = form.parentStore as IComboStore;\n const group = combo.uniques.get(\n this.model.name\n ) as IUniqueGroup;\n const validPromises = group.items.map(item =>\n item.validate(data)\n );\n result = await Promise.all(validPromises);\n } else {\n const validPromises = form\n ?.getItemsByName(this.model.name)\n .map(item => item.validate(data));\n if (validPromises && validPromises.length) {\n result = await Promise.all(validPromises);\n }\n }\n }\n if (result && result.length) {\n if (result.indexOf(false) > -1) {\n formItemDispatchEvent('formItemValidateError', data);\n } else {\n formItemDispatchEvent('formItemValidateSucc', data);\n }\n }\n }\n\n handleChange(\n value: any,\n submitOnChange: boolean = this.props.$schema.submitOnChange,\n changeImmediately: boolean = false\n ) {\n const {\n formStore: form,\n onChange,\n $schema: {\n type,\n pipeOut,\n changeImmediately: conrolChangeImmediately\n },\n formInited,\n data\n } = this.props;\n\n if (\n !this.model ||\n // todo 以后想办法不要強耦合类型。\n ~[\n 'service',\n 'group',\n 'hbox',\n 'panel',\n 'grid',\n 'input-group'\n ].indexOf(type)\n ) {\n onChange && onChange.apply(null, arguments as any);\n return;\n }\n\n if (pipeOut) {\n const oldValue = this.model.value;\n value = pipeOut(value, oldValue, data);\n }\n\n this.model.changeTmpValue(value);\n\n if (changeImmediately || conrolChangeImmediately || !formInited) {\n this.emitChange(submitOnChange);\n } else {\n // this.props.onTmpValueChange?.(value, this.model.name);\n this.lazyEmitChange(submitOnChange);\n }\n }\n\n emitChange(\n submitOnChange: boolean = this.props.$schema.submitOnChange\n ) {\n const {\n formStore: form,\n onChange,\n $schema: {\n name,\n id,\n label,\n type,\n onChange: onFormItemChange,\n maxLength,\n minLength\n },\n data,\n env,\n validateOnChange,\n formSubmited\n } = this.props;\n\n if (!this.model) {\n return;\n }\n const value = this.model.tmpValue;\n const oldValue = getVariable(data, this.model.name, false);\n\n if (oldValue === value) {\n return;\n }\n\n if (type !== 'input-password') {\n env?.tracker(\n {\n eventType: 'formItemChange',\n eventData: {\n id,\n name,\n label,\n type,\n value\n }\n },\n this.props\n );\n }\n\n this.model.changeEmitedValue(value);\n if (\n onFormItemChange?.(value, oldValue, this.model, form) === false\n ) {\n return;\n }\n const validated = this.model.validated;\n onChange?.(value, name!, submitOnChange === true);\n\n if (\n // 如果配置了 minLength 或者 maxLength 就切成及时验证\n // this.model.rules.minLength ||\n // this.model.rules.maxLength ||\n validateOnChange === true ||\n (validateOnChange !== false && (formSubmited || validated))\n ) {\n this.validate();\n } else if (validateOnChange === false) {\n this.model?.reset();\n }\n }\n\n handleBlur(e: any) {\n const {\n onBlur,\n $schema: {validateOnBlur}\n } = this.props;\n\n if (validateOnBlur && this.model) {\n this.validate();\n }\n\n onBlur && onBlur(e);\n }\n\n setPrinstineValue(value: any) {\n if (!this.model) {\n return;\n }\n\n const {\n formStore: form,\n name,\n $schema: {pipeOut},\n onChange,\n value: oldValue,\n data\n } = this.props;\n\n if (pipeOut) {\n value = pipeOut(value, oldValue, data);\n }\n\n onChange?.(value, name!, false, true);\n }\n\n getValue() {\n const {formStore: data, $schema: control} = this.props;\n let value: any = this.model ? this.model.tmpValue : control.value;\n\n if (control.pipeIn) {\n value = control.pipeIn(value, data);\n }\n\n return value;\n }\n\n // 兼容老版本用法,新版本直接用 onChange 就可以。\n setValue(value: any, key?: string) {\n const {\n $schema: {name},\n onBulkChange\n } = this.props;\n\n if (!key || key === name) {\n this.handleChange(value);\n } else {\n onBulkChange &&\n onBulkChange({\n [key]: value\n });\n }\n }\n\n render() {\n const {\n controlWidth,\n disabled,\n formMode,\n $schema: control,\n store,\n data,\n invisible\n } = this.props;\n\n if (invisible) {\n return null;\n }\n\n const value = this.getValue();\n const model = this.model;\n\n const injectedProps: any = {\n defaultSize: controlWidth,\n disabled: disabled || control.disabled,\n formItem: this.model,\n formMode: control.mode || formMode,\n ref: this.controlRef,\n data: data || store?.data,\n value,\n defaultValue: control.value,\n formItemValue: value, // 为了兼容老版本的自定义组件\n onChange: this.handleChange,\n\n onBlur: this.handleBlur,\n setValue: this.setValue,\n getValue: this.getValue,\n prinstine: model ? model.prinstine : undefined,\n setPrinstineValue: this.setPrinstineValue\n };\n\n return (\n <ComposedComponent\n {...(this.props as JSX.LibraryManagedAttributes<\n T,\n React.ComponentProps<T>\n >)}\n {...injectedProps}\n />\n );\n }\n }\n ) as any\n ),\n ComposedComponent\n );\n\n return result as typeof result & {\n ComposedComponent: T;\n };\n}\n"
|
11
|
+
"import React from 'react';\nimport {IFormStore, IFormItemStore} from '../../store/form';\nimport debouce from 'lodash/debounce';\n\nimport {RendererProps, Renderer} from '../../factory';\nimport {ComboStore, IComboStore, IUniqueGroup} from '../../store/combo';\nimport {\n anyChanged,\n promisify,\n isObject,\n guid,\n isEmpty,\n autobind,\n getVariable,\n createObject\n} from '../../utils/helper';\nimport {IIRendererStore, IRendererStore} from '../../store';\nimport {ScopedContext, IScopedContext} from '../../Scoped';\nimport {reaction} from 'mobx';\nimport {FormItemStore} from '../../store/formItem';\nimport {isAlive} from 'mobx-state-tree';\nimport {observer} from 'mobx-react';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport {withRootStore} from '../../WithRootStore';\nimport {FormBaseControl, FormItemWrap} from './Item';\nimport {Api} from '../../types';\nimport {TableStore} from '../../store/table';\n\nexport interface ControlOutterProps extends RendererProps {\n formStore?: IFormStore;\n name?: string;\n value?: any;\n id?: string;\n type?: string;\n required?: boolean;\n validations: string | {[propsName: string]: any};\n validationErrors: {[propsName: string]: any};\n validateOnChange: boolean;\n multiple?: boolean;\n delimiter?: string;\n joinValues?: boolean;\n extractValue?: boolean;\n valueField?: string;\n labelField?: string;\n unique?: boolean;\n selectFirst?: boolean;\n autoFill?: any;\n clearValueOnHidden?: boolean;\n validateApi?: Api;\n submitOnChange?: boolean;\n validate?: (value: any, values: any, name: string) => any;\n formItem?: IFormItemStore;\n addHook?: (fn: () => any, type?: 'validate' | 'init' | 'flush') => void;\n removeHook?: (fn: () => any, type?: 'validate' | 'init' | 'flush') => void;\n $schema: {\n pipeIn?: (value: any, data: any) => any;\n pipeOut?: (value: any, originValue: any, data: any) => any;\n [propName: string]: any;\n };\n store?: IIRendererStore;\n onChange?: (\n value: any,\n name: string,\n submit?: boolean,\n changePristine?: boolean\n ) => void;\n formItemDispatchEvent: (type: string, data: any) => void;\n}\n\nexport interface ControlProps {\n onBulkChange?: (values: Object) => void;\n onChange?: (value: any, name: string, submit: boolean) => void;\n store: IIRendererStore;\n}\n\nexport function wrapControl<\n T extends React.ComponentType<React.ComponentProps<T> & ControlProps>\n>(ComposedComponent: T) {\n type OuterProps = JSX.LibraryManagedAttributes<\n T,\n Omit<React.ComponentProps<T>, keyof ControlProps>\n > &\n ControlOutterProps;\n\n const result = hoistNonReactStatic(\n withRootStore(\n observer(\n class extends React.Component<OuterProps> {\n public model: IFormItemStore | undefined;\n control?: any;\n value?: any = undefined;\n hook?: () => any;\n hook2?: () => any;\n hook3?: () => any;\n reaction?: () => void;\n\n static contextType = ScopedContext;\n static defaultProps = {};\n\n lazyEmitChange = debouce(this.emitChange.bind(this), 250, {\n trailing: true,\n leading: false\n });\n\n constructor(props: OuterProps) {\n super(props);\n\n const {\n formStore: form,\n formItem,\n rootStore,\n store,\n onChange,\n data,\n $schema: {\n name,\n id,\n type,\n required,\n validations,\n validationErrors,\n unique,\n value,\n multiple,\n delimiter,\n valueField,\n labelField,\n joinValues,\n extractValue,\n selectFirst,\n autoFill,\n clearValueOnHidden,\n validateApi,\n minLength,\n maxLength,\n validateOnChange,\n label\n }\n } = this.props;\n\n this.getValue = this.getValue.bind(this);\n this.setValue = this.setValue.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.setPrinstineValue = this.setPrinstineValue.bind(this);\n this.controlRef = this.controlRef.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n\n if (!name) {\n return;\n }\n\n let propValue = this.props.value;\n const model = rootStore.addStore({\n id: guid(),\n path: this.props.$path,\n storeType: FormItemStore.name,\n parentId: store?.id,\n name\n }) as IFormItemStore;\n this.model = model;\n // @issue 打算干掉这个\n formItem?.addSubFormItem(model);\n model.config({\n id,\n type,\n required,\n unique,\n value,\n rules: validations,\n messages: validationErrors,\n multiple,\n delimiter,\n valueField,\n labelField,\n joinValues,\n extractValue,\n selectFirst,\n autoFill,\n clearValueOnHidden,\n validateApi,\n minLength,\n maxLength,\n validateOnChange,\n label\n });\n\n // issue 这个逻辑应该在 combo 里面自己实现。\n if (\n this.model.unique &&\n form?.parentStore?.storeType === ComboStore.name\n ) {\n const combo = form.parentStore as IComboStore;\n combo.bindUniuqueItem(model);\n }\n\n // 同步 value\n model.changeTmpValue(\n propValue ?? store?.getValueByName(model.name) ?? value\n );\n\n // 如果没有初始值,通过 onChange 设置过去\n if (\n onChange &&\n typeof propValue === 'undefined' &&\n typeof store?.getValueByName(model.name, false) === 'undefined' &&\n // todo 后续再优化这个判断,\n // 目前 input-table 中默认值会给冲掉,所以加上这个判断\n // 对应 issue 为 https://github.com/baidu/amis/issues/2674\n store?.storeType !== TableStore.name\n ) {\n onChange(model.tmpValue, model.name, false, true);\n }\n }\n\n componentDidMount() {\n const {\n store,\n formStore: form,\n $schema: {name, validate},\n addHook\n } = this.props;\n\n // 提交前先把之前的 lazyEmit 执行一下。\n this.hook3 = () => {\n this.lazyEmitChange.flush();\n };\n addHook?.(this.hook3, 'flush');\n\n const formItem = this.model as IFormItemStore;\n if (formItem && validate) {\n let finalValidate = promisify(validate.bind(formItem));\n this.hook2 = () => {\n formItem.clearError('control:valdiate');\n return finalValidate(\n this.props.data,\n this.getValue(),\n name\n ).then((ret: any) => {\n if ((typeof ret === 'string' || Array.isArray(ret)) && ret) {\n formItem.addError(ret, 'control:valdiate');\n }\n });\n };\n addHook?.(this.hook2);\n }\n }\n\n componentDidUpdate(prevProps: OuterProps) {\n const props = this.props;\n const form = props.formStore;\n const model = this.model;\n\n if (\n model &&\n anyChanged(\n [\n 'id',\n 'validations',\n 'validationErrors',\n 'value',\n 'required',\n 'unique',\n 'multiple',\n 'delimiter',\n 'valueField',\n 'labelField',\n 'joinValues',\n 'extractValue',\n 'selectFirst',\n 'autoFill',\n 'clearValueOnHidden',\n 'validateApi',\n 'minLength',\n 'maxLength',\n 'label'\n ],\n prevProps.$schema,\n props.$schema\n )\n ) {\n model.config({\n required: props.$schema.required,\n id: props.$schema.id,\n unique: props.$schema.unique,\n value: props.$schema.value,\n rules: props.$schema.validations,\n multiple: props.$schema.multiple,\n delimiter: props.$schema.delimiter,\n valueField: props.$schema.valueField,\n labelField: props.$schema.labelField,\n joinValues: props.$schema.joinValues,\n extractValue: props.$schema.extractValue,\n messages: props.$schema.validationErrors,\n selectFirst: props.$schema.selectFirst,\n autoFill: props.$schema.autoFill,\n clearValueOnHidden: props.$schema.clearValueOnHidden,\n validateApi: props.$schema.validateApi,\n minLength: props.$schema.minLength,\n maxLength: props.$schema.maxLength,\n label: props.$schema.label\n });\n }\n\n if (model && typeof props.value !== 'undefined') {\n // 自己控制的 value 优先\n if (\n props.value !== prevProps.value &&\n props.value !== model.tmpValue\n ) {\n model.changeTmpValue(props.value);\n }\n } else if (\n // 然后才是查看关联的 name 属性值是否变化\n model &&\n props.data !== prevProps.data &&\n (!model.emitedValue || model.emitedValue === model.tmpValue)\n ) {\n model.changeEmitedValue(undefined);\n const value = getVariable(props.data, model.name);\n const prevValue = getVariable(prevProps.data, model.name);\n if (\n (value !== prevValue ||\n getVariable(props.data, model.name, false) !==\n getVariable(prevProps.data, model.name, false)) &&\n value !== model.tmpValue\n ) {\n model.changeTmpValue(value);\n }\n }\n }\n\n componentWillUnmount() {\n this.hook && this.props.removeHook?.(this.hook);\n this.hook2 && this.props.removeHook?.(this.hook2);\n this.hook3 && this.props.removeHook?.(this.hook3, 'flush');\n // this.lazyEmitChange.flush();\n\n this.lazyEmitChange.cancel();\n this.reaction?.();\n this.disposeModel();\n }\n\n disposeModel() {\n const {formStore: form, formItem, rootStore} = this.props;\n\n if (\n this.model &&\n this.model.unique &&\n form?.parentStore &&\n form?.parentStore.storeType === ComboStore.name\n ) {\n const combo = form.parentStore as IComboStore;\n combo.unBindUniuqueItem(this.model);\n }\n\n if (this.model) {\n formItem &&\n isAlive(formItem) &&\n formItem.removeSubFormItem(this.model);\n\n this.model.clearValueOnHidden &&\n this.model.form?.deleteValueByName(this.model.name);\n\n isAlive(rootStore) && rootStore.removeStore(this.model);\n }\n delete this.model;\n }\n\n controlRef(control: any) {\n const {\n addHook,\n removeHook,\n formStore: form,\n $schema: {name}\n } = this.props;\n\n // 因为 control 有可能被 n 层 hoc 包裹。\n while (control && control.getWrappedInstance) {\n control = control.getWrappedInstance();\n }\n\n if (control && control.validate && this.model) {\n const formItem = this.model as IFormItemStore;\n let validate = promisify(control.validate.bind(control));\n this.hook = () => {\n formItem.clearError('component:valdiate');\n\n return validate(this.props.data, this.getValue(), name).then(\n ret => {\n if (\n (typeof ret === 'string' || Array.isArray(ret)) &&\n ret\n ) {\n formItem.setError(ret, 'component:valdiate');\n }\n }\n );\n };\n addHook?.(this.hook);\n } else if (!control && this.hook) {\n removeHook?.(this.hook);\n this.hook = undefined;\n }\n\n // 注册到 Scoped 上\n const originRef = this.control;\n this.control = control;\n const scoped = this.context as IScopedContext;\n\n if (control) {\n scoped.registerComponent(this.control);\n } else if (originRef) {\n scoped.unRegisterComponent(originRef);\n }\n }\n\n async validate() {\n const {formStore: form, data, formItemDispatchEvent} = this.props;\n let result;\n if (this.model) {\n if (\n this.model.unique &&\n form?.parentStore &&\n form.parentStore.storeType === ComboStore.name\n ) {\n const combo = form.parentStore as IComboStore;\n const group = combo.uniques.get(\n this.model.name\n ) as IUniqueGroup;\n const validPromises = group.items.map(item =>\n item.validate(data)\n );\n result = await Promise.all(validPromises);\n } else {\n const validPromises = form\n ?.getItemsByName(this.model.name)\n .map(item => item.validate(data));\n if (validPromises && validPromises.length) {\n result = await Promise.all(validPromises);\n }\n }\n }\n if (result && result.length) {\n if (result.indexOf(false) > -1) {\n formItemDispatchEvent('formItemValidateError', data);\n } else {\n formItemDispatchEvent('formItemValidateSucc', data);\n }\n }\n }\n\n handleChange(\n value: any,\n submitOnChange: boolean = this.props.$schema.submitOnChange,\n changeImmediately: boolean = false\n ) {\n const {\n formStore: form,\n onChange,\n $schema: {\n type,\n pipeOut,\n changeImmediately: conrolChangeImmediately\n },\n formInited,\n data\n } = this.props;\n\n if (\n !this.model ||\n // todo 以后想办法不要強耦合类型。\n ~[\n 'service',\n 'group',\n 'hbox',\n 'panel',\n 'grid',\n 'input-group'\n ].indexOf(type)\n ) {\n onChange && onChange.apply(null, arguments as any);\n return;\n }\n\n if (pipeOut) {\n const oldValue = this.model.value;\n value = pipeOut(value, oldValue, data);\n }\n\n this.model.changeTmpValue(value);\n\n if (changeImmediately || conrolChangeImmediately || !formInited) {\n this.emitChange(submitOnChange);\n } else {\n // this.props.onTmpValueChange?.(value, this.model.name);\n this.lazyEmitChange(submitOnChange);\n }\n }\n\n emitChange(\n submitOnChange: boolean = this.props.$schema.submitOnChange\n ) {\n const {\n formStore: form,\n onChange,\n $schema: {\n name,\n id,\n label,\n type,\n onChange: onFormItemChange,\n maxLength,\n minLength\n },\n data,\n env,\n validateOnChange,\n formSubmited\n } = this.props;\n\n if (!this.model) {\n return;\n }\n const value = this.model.tmpValue;\n const oldValue = getVariable(data, this.model.name, false);\n\n if (oldValue === value) {\n return;\n }\n\n if (type !== 'input-password') {\n env?.tracker(\n {\n eventType: 'formItemChange',\n eventData: {\n id,\n name,\n label,\n type,\n value\n }\n },\n this.props\n );\n }\n\n this.model.changeEmitedValue(value);\n if (\n onFormItemChange?.(value, oldValue, this.model, form) === false\n ) {\n return;\n }\n const validated = this.model.validated;\n onChange?.(value, name!, submitOnChange === true);\n\n if (\n // 如果配置了 minLength 或者 maxLength 就切成及时验证\n // this.model.rules.minLength ||\n // this.model.rules.maxLength ||\n validateOnChange === true ||\n (validateOnChange !== false && (formSubmited || validated))\n ) {\n this.validate();\n } else if (validateOnChange === false) {\n this.model?.reset();\n }\n }\n\n handleBlur(e: any) {\n const {\n onBlur,\n $schema: {validateOnBlur}\n } = this.props;\n\n if (validateOnBlur && this.model) {\n this.validate();\n }\n\n onBlur && onBlur(e);\n }\n\n setPrinstineValue(value: any) {\n if (!this.model) {\n return;\n }\n\n const {\n formStore: form,\n name,\n $schema: {pipeOut},\n onChange,\n value: oldValue,\n data\n } = this.props;\n\n if (pipeOut) {\n value = pipeOut(value, oldValue, data);\n }\n\n onChange?.(value, name!, false, true);\n }\n\n getValue() {\n const {formStore: data, $schema: control} = this.props;\n let value: any = this.model ? this.model.tmpValue : control.value;\n\n if (control.pipeIn) {\n value = control.pipeIn(value, data);\n }\n\n return value;\n }\n\n // 兼容老版本用法,新版本直接用 onChange 就可以。\n setValue(value: any, key?: string) {\n const {\n $schema: {name},\n onBulkChange\n } = this.props;\n\n if (!key || key === name) {\n this.handleChange(value);\n } else {\n onBulkChange &&\n onBulkChange({\n [key]: value\n });\n }\n }\n\n render() {\n const {\n controlWidth,\n disabled,\n formMode,\n $schema: control,\n store,\n data,\n invisible\n } = this.props;\n\n if (invisible) {\n return null;\n }\n\n const value = this.getValue();\n const model = this.model;\n\n const injectedProps: any = {\n defaultSize: controlWidth,\n disabled: disabled || control.disabled,\n formItem: this.model,\n formMode: control.mode || formMode,\n ref: this.controlRef,\n data: data || store?.data,\n value,\n defaultValue: control.value,\n formItemValue: value, // 为了兼容老版本的自定义组件\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n setValue: this.setValue,\n getValue: this.getValue,\n prinstine: model ? model.prinstine : undefined,\n setPrinstineValue: this.setPrinstineValue\n };\n\n return (\n <ComposedComponent\n {...(this.props as JSX.LibraryManagedAttributes<\n T,\n React.ComponentProps<T>\n >)}\n {...injectedProps}\n />\n );\n }\n }\n ) as any\n ),\n ComposedComponent\n );\n\n return result as typeof result & {\n ComposedComponent: T;\n };\n}\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/renderers/Log.d.ts
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
import React from 'react';
|
5
5
|
import { RendererProps } from '../factory';
|
6
6
|
import { BaseSchema } from '../Schema';
|
7
|
+
export declare type LogOperation = 'stop' | 'restart' | 'showLineNumber' | 'clear';
|
7
8
|
/**
|
8
9
|
* 日志展示组件
|
9
10
|
* 文档:https://baidu.gitee.io/amis/docs/components/log
|
@@ -33,12 +34,31 @@ export interface LogSchema extends BaseSchema {
|
|
33
34
|
* 返回内容字符编码
|
34
35
|
*/
|
35
36
|
encoding?: string;
|
37
|
+
/**
|
38
|
+
* 限制最大日志数量
|
39
|
+
*/
|
40
|
+
maxLength?: number;
|
41
|
+
/**
|
42
|
+
* 每行高度
|
43
|
+
*/
|
44
|
+
rowHeight?: number;
|
45
|
+
/**
|
46
|
+
* 关闭 ANSI 颜色支持
|
47
|
+
*/
|
48
|
+
disableColor?: boolean;
|
49
|
+
/**
|
50
|
+
* 一些可操作选项
|
51
|
+
*/
|
52
|
+
operation?: Array<LogOperation>;
|
36
53
|
}
|
37
54
|
export interface LogProps extends RendererProps, Omit<LogSchema, 'type' | 'className'> {
|
38
55
|
}
|
39
56
|
export interface LogState {
|
40
57
|
lastLine: string;
|
41
58
|
logs: string[];
|
59
|
+
refresh: boolean;
|
60
|
+
showLineNumber: boolean;
|
61
|
+
showOperation: boolean;
|
42
62
|
}
|
43
63
|
export declare class Log extends React.Component<LogProps, LogState> {
|
44
64
|
static defaultProps: {
|
@@ -56,7 +76,15 @@ export declare class Log extends React.Component<LogProps, LogState> {
|
|
56
76
|
componentDidMount(): void;
|
57
77
|
componentDidUpdate(prevProps: LogProps): void;
|
58
78
|
pauseOrResumeScrolling(): void;
|
79
|
+
refresh: () => void;
|
80
|
+
clear: () => void;
|
81
|
+
changeShowLineNumber: () => void;
|
82
|
+
changeShowOperation: () => void;
|
59
83
|
loadLogs(): Promise<void>;
|
84
|
+
/**
|
85
|
+
* 渲染某一行
|
86
|
+
*/
|
87
|
+
renderLine(index: number, line: string, showLineNumber: boolean): JSX.Element;
|
60
88
|
render(): JSX.Element;
|
61
89
|
}
|
62
90
|
export declare class LogRenderer extends Log {
|
package/lib/renderers/Log.js
CHANGED
@@ -9,6 +9,9 @@ var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
9
9
|
var factory_1 = require("../factory");
|
10
10
|
var ansi_to_react_1 = (0, tslib_1.__importDefault)(require("ansi-to-react"));
|
11
11
|
var api_1 = require("../utils/api");
|
12
|
+
var virtual_list_1 = (0, tslib_1.__importDefault)(require("../components/virtual-list"));
|
13
|
+
var Button_1 = (0, tslib_1.__importDefault)(require("../components/Button"));
|
14
|
+
var icons_1 = require("../components/icons");
|
12
15
|
var Log = /** @class */ (function (_super) {
|
13
16
|
(0, tslib_1.__extends)(Log, _super);
|
14
17
|
function Log(props) {
|
@@ -17,7 +20,36 @@ var Log = /** @class */ (function (_super) {
|
|
17
20
|
_this.autoScroll = false;
|
18
21
|
_this.state = {
|
19
22
|
lastLine: '',
|
20
|
-
logs: []
|
23
|
+
logs: [],
|
24
|
+
refresh: true,
|
25
|
+
showLineNumber: false,
|
26
|
+
showOperation: false
|
27
|
+
};
|
28
|
+
_this.refresh = function () {
|
29
|
+
var origin = _this.state.refresh;
|
30
|
+
_this.setState({
|
31
|
+
refresh: !origin
|
32
|
+
});
|
33
|
+
if (!origin) {
|
34
|
+
_this.clear();
|
35
|
+
_this.loadLogs();
|
36
|
+
}
|
37
|
+
};
|
38
|
+
_this.clear = function () {
|
39
|
+
_this.setState({
|
40
|
+
logs: [],
|
41
|
+
lastLine: ''
|
42
|
+
});
|
43
|
+
};
|
44
|
+
_this.changeShowLineNumber = function () {
|
45
|
+
_this.setState({
|
46
|
+
showLineNumber: !_this.state.showLineNumber
|
47
|
+
});
|
48
|
+
};
|
49
|
+
_this.changeShowOperation = function () {
|
50
|
+
_this.setState({
|
51
|
+
showOperation: !_this.state.showOperation
|
52
|
+
});
|
21
53
|
};
|
22
54
|
_this.logRef = react_1.default.createRef();
|
23
55
|
_this.autoScroll = props.autoScroll || false;
|
@@ -55,11 +87,12 @@ var Log = /** @class */ (function (_super) {
|
|
55
87
|
Log.prototype.loadLogs = function () {
|
56
88
|
var _a;
|
57
89
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
58
|
-
var _b, source, data, env, __, encoding, api, res, body, reader, lastline, logs, _c, done, value, text, lines;
|
90
|
+
var _b, source, data, env, __, encoding, maxLength, api, res, body, reader, lastline, logs, _c, done, value, text, lines;
|
91
|
+
var _this = this;
|
59
92
|
return (0, tslib_1.__generator)(this, function (_d) {
|
60
93
|
switch (_d.label) {
|
61
94
|
case 0:
|
62
|
-
_b = this.props, source = _b.source, data = _b.data, env = _b.env, __ = _b.translate, encoding = _b.encoding;
|
95
|
+
_b = this.props, source = _b.source, data = _b.data, env = _b.env, __ = _b.translate, encoding = _b.encoding, maxLength = _b.maxLength;
|
63
96
|
api = (0, api_1.buildApi)(source, data);
|
64
97
|
if (!api.url) {
|
65
98
|
return [2 /*return*/];
|
@@ -72,7 +105,7 @@ var Log = /** @class */ (function (_super) {
|
|
72
105
|
})];
|
73
106
|
case 1:
|
74
107
|
res = _d.sent();
|
75
|
-
if (!(res.status === 200)) return [3 /*break*/,
|
108
|
+
if (!(res.status === 200)) return [3 /*break*/, 8];
|
76
109
|
body = res.body;
|
77
110
|
if (!body) {
|
78
111
|
return [2 /*return*/];
|
@@ -81,8 +114,17 @@ var Log = /** @class */ (function (_super) {
|
|
81
114
|
lastline = '';
|
82
115
|
logs = [];
|
83
116
|
_d.label = 2;
|
84
|
-
case 2:
|
117
|
+
case 2:
|
118
|
+
if (!!this.state.refresh) return [3 /*break*/, 4];
|
119
|
+
return [4 /*yield*/, reader.cancel('click cancel button').then(function () {
|
120
|
+
_this.props.env.notify('success', '日志已经停止刷新');
|
121
|
+
return;
|
122
|
+
})];
|
85
123
|
case 3:
|
124
|
+
_d.sent();
|
125
|
+
_d.label = 4;
|
126
|
+
case 4: return [4 /*yield*/, reader.read()];
|
127
|
+
case 5:
|
86
128
|
_c = _d.sent(), done = _c.done, value = _c.value;
|
87
129
|
if (value) {
|
88
130
|
text = new TextDecoder(encoding).decode(value, { stream: true });
|
@@ -99,6 +141,11 @@ var Log = /** @class */ (function (_super) {
|
|
99
141
|
lines[0] = lastline + lines[0];
|
100
142
|
// 最后一个要么是空,要么是下一行的数据
|
101
143
|
lastline = lines.pop() || '';
|
144
|
+
if (maxLength) {
|
145
|
+
if (logs.length + lines.length > maxLength) {
|
146
|
+
logs.splice(0, logs.length + lines.length - maxLength);
|
147
|
+
}
|
148
|
+
}
|
102
149
|
logs = logs.concat(lines);
|
103
150
|
this.setState({
|
104
151
|
logs: logs,
|
@@ -110,31 +157,74 @@ var Log = /** @class */ (function (_super) {
|
|
110
157
|
this.isDone = true;
|
111
158
|
return [2 /*return*/];
|
112
159
|
}
|
113
|
-
_d.label =
|
114
|
-
case
|
115
|
-
case
|
116
|
-
case
|
160
|
+
_d.label = 6;
|
161
|
+
case 6: return [3 /*break*/, 2];
|
162
|
+
case 7: return [3 /*break*/, 9];
|
163
|
+
case 8:
|
117
164
|
env.notify('error', __('fetchFailed'));
|
118
|
-
_d.label =
|
119
|
-
case
|
165
|
+
_d.label = 9;
|
166
|
+
case 9: return [2 /*return*/];
|
120
167
|
}
|
121
168
|
});
|
122
169
|
});
|
123
170
|
};
|
171
|
+
/**
|
172
|
+
* 渲染某一行
|
173
|
+
*/
|
174
|
+
Log.prototype.renderLine = function (index, line, showLineNumber) {
|
175
|
+
var _a = this.props, cx = _a.classnames, disableColor = _a.disableColor;
|
176
|
+
return (react_1.default.createElement("div", { className: cx('Log-line'), key: index },
|
177
|
+
showLineNumber && (react_1.default.createElement("span", { className: cx('Log-line-number') },
|
178
|
+
index + 1,
|
179
|
+
" ")),
|
180
|
+
disableColor ? line : react_1.default.createElement(ansi_to_react_1.default, { useClasses: true }, line)));
|
181
|
+
};
|
124
182
|
Log.prototype.render = function () {
|
125
|
-
var
|
183
|
+
var _this = this;
|
184
|
+
var _a = this.props, source = _a.source, className = _a.className, cx = _a.classnames, placeholder = _a.placeholder, height = _a.height, rowHeight = _a.rowHeight, disableColor = _a.disableColor, __ = _a.translate, operation = _a.operation, env = _a.env;
|
185
|
+
var _b = this.state, refresh = _b.refresh, showLineNumber = _b.showLineNumber, showOperation = _b.showOperation;
|
126
186
|
var loading = __(placeholder);
|
127
187
|
if (!source) {
|
128
188
|
loading = __('Log.mustHaveSource');
|
129
189
|
}
|
130
|
-
var lines
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
190
|
+
var lines;
|
191
|
+
var logs = this.state.lastLine
|
192
|
+
? this.state.logs.concat([this.state.lastLine])
|
193
|
+
: this.state.logs;
|
194
|
+
// 如果设置 rowHeight 就开启延迟渲染
|
195
|
+
var useVirtualRender = rowHeight;
|
196
|
+
if (useVirtualRender) {
|
197
|
+
lines = (react_1.default.createElement(virtual_list_1.default, { height: height, itemCount: logs.length, itemSize: rowHeight, renderItem: function (_a) {
|
198
|
+
var index = _a.index, style = _a.style;
|
199
|
+
return (react_1.default.createElement("div", { className: cx('Log-line'), key: index, style: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, style), { whiteSpace: 'nowrap' }) },
|
200
|
+
showLineNumber && (react_1.default.createElement("span", { className: cx('Log-line-number') },
|
201
|
+
index + 1,
|
202
|
+
" ")),
|
203
|
+
disableColor ? (logs[index]) : (react_1.default.createElement(ansi_to_react_1.default, { useClasses: true }, logs[index]))));
|
204
|
+
} }));
|
205
|
+
}
|
206
|
+
else {
|
207
|
+
lines = logs.map(function (line, index) {
|
208
|
+
return _this.renderLine(index, line, showLineNumber);
|
209
|
+
});
|
210
|
+
}
|
211
|
+
return (react_1.default.createElement("div", { className: cx('Log', className) },
|
212
|
+
react_1.default.createElement("div", { ref: this.logRef, className: cx('Log-body'), style: { height: useVirtualRender ? 'auto' : height } }, useVirtualRender ? lines : lines.length ? lines : loading),
|
213
|
+
react_1.default.createElement("div", { className: cx('Log-operation') }, operation &&
|
214
|
+
(operation === null || operation === void 0 ? void 0 : operation.length) > 0 &&
|
215
|
+
(showOperation ? (react_1.default.createElement(react_1.default.Fragment, null,
|
216
|
+
operation.includes('stop') && (react_1.default.createElement(Button_1.default, { size: "sm", title: "__('stop')", disabled: !refresh, onClick: this.refresh },
|
217
|
+
react_1.default.createElement(icons_1.PauseIcon, null))),
|
218
|
+
operation.includes('restart') && (react_1.default.createElement(Button_1.default, { size: "sm", title: __('reload'), disabled: refresh, onClick: this.refresh },
|
219
|
+
react_1.default.createElement(icons_1.ReloadIcon, null))),
|
220
|
+
operation.includes('showLineNumber') && (react_1.default.createElement(Button_1.default, { size: "sm", title: showLineNumber
|
221
|
+
? __('Log.notShowLineNumber')
|
222
|
+
: __('Log.showLineNumber'), onClick: this.changeShowLineNumber }, showLineNumber ? react_1.default.createElement(icons_1.MinusIcon, null) : react_1.default.createElement(icons_1.PlusIcon, null))),
|
223
|
+
operation.includes('clear') && (react_1.default.createElement(Button_1.default, { size: "sm", title: __('clear'), onClick: this.clear },
|
224
|
+
react_1.default.createElement(icons_1.InputClearIcon, null))),
|
225
|
+
react_1.default.createElement(Button_1.default, { size: "sm", title: __('Log.collapse'), onClick: this.changeShowOperation },
|
226
|
+
react_1.default.createElement(icons_1.LeftArrowIcon, null)))) : (react_1.default.createElement("div", { title: __('Log.expand'), className: cx('Log-operation-hidden'), onClick: this.changeShowOperation },
|
227
|
+
react_1.default.createElement(icons_1.RightArrowIcon, null)))))));
|
138
228
|
};
|
139
229
|
Log.defaultProps = {
|
140
230
|
height: 500,
|
package/lib/renderers/Log.js.map
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Log.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA;;GAEG;AACH,6DAA0B;AAC1B,sCAAmD;AAEnD,6EAAiC;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file 用于显示日志的组件,比如显示命令行的输出结果\n */\nimport React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {BaseSchema, SchemaTpl} from '../Schema';\nimport Ansi from 'ansi-to-react';\nimport {filter} from '../utils/tpl';\nimport {buildApi, isApiOutdated} from '../utils/api';\n\n/**\n * 日志展示组件\n * 文档:https://baidu.gitee.io/amis/docs/components/log\n */\nexport interface LogSchema extends BaseSchema {\n /**\n * 指定为 log 链接展示控件\n */\n type: 'log';\n\n /**\n * 自定义 CSS 类名\n */\n className?: string;\n\n /**\n * 获取日志的地址\n */\n source: string;\n\n /**\n * 控件高度\n */\n height?: number;\n\n /**\n * 是否自动滚动到最底部\n */\n autoScroll?: boolean;\n\n /**\n * 返回内容字符编码\n */\n encoding?: string;\n}\n\nexport interface LogProps\n extends RendererProps,\n Omit<LogSchema, 'type' | 'className'> {}\n\nexport interface LogState {\n lastLine: string;\n logs: string[];\n}\n\nexport class Log extends React.Component<LogProps, LogState> {\n static defaultProps = {\n height: 500,\n autoScroll: true,\n placeholder: 'loading',\n encoding: 'utf-8'\n };\n\n isDone: boolean = false;\n\n autoScroll: boolean = false;\n\n logRef: React.RefObject<HTMLDivElement>;\n\n state: LogState = {\n lastLine: '',\n logs: []\n };\n\n constructor(props: LogProps) {\n super(props);\n this.logRef = React.createRef();\n this.autoScroll = props.autoScroll || false;\n this.pauseOrResumeScrolling = this.pauseOrResumeScrolling.bind(this);\n }\n\n componentWillUnmount() {\n if (this.logRef && this.logRef.current) {\n this.logRef.current.removeEventListener(\n 'scroll',\n this.pauseOrResumeScrolling\n );\n }\n }\n\n componentDidMount() {\n if (this.autoScroll && this.logRef && this.logRef.current) {\n this.logRef.current.addEventListener(\n 'scroll',\n this.pauseOrResumeScrolling\n );\n }\n if (this.props.source) {\n this.loadLogs();\n }\n }\n\n componentDidUpdate(prevProps: LogProps) {\n if (this.autoScroll && this.logRef && this.logRef.current) {\n this.logRef.current.scrollTop = this.logRef.current.scrollHeight;\n }\n if (\n isApiOutdated(\n prevProps.source,\n this.props.source,\n prevProps.data,\n this.props.data\n )\n ) {\n this.loadLogs();\n }\n }\n\n // 如果向上滚动就停止自动滚动,除非滚到底部\n pauseOrResumeScrolling() {\n if (this.logRef && this.logRef.current) {\n const {scrollHeight, scrollTop, offsetHeight} = this.logRef.current;\n this.autoScroll = scrollHeight - (scrollTop + offsetHeight) < 50;\n }\n }\n\n async loadLogs() {\n const {source, data, env, translate: __, encoding} = this.props;\n // 因为这里返回结果是流式的,和普通 api 请求不一样,如果直接用 fetcher 经过 responseAdaptor 可能会导致出错,所以就直接 fetch 了\n const api = buildApi(source, data);\n if (!api.url) {\n return;\n }\n const res = await fetch(api.url, {\n method: api.method?.toLocaleUpperCase() || 'GET',\n headers: (api.headers as Record<string, string>) || undefined,\n body: api.data ? JSON.stringify(api.data) : undefined,\n credentials: 'include'\n });\n if (res.status === 200) {\n const body = res.body;\n if (!body) {\n return;\n }\n const reader = body.getReader();\n let lastline = '';\n let logs: string[] = [];\n for (;;) {\n let {done, value} = await reader.read();\n if (value) {\n let text = new TextDecoder(encoding).decode(value, {stream: true});\n // 不考虑只有 \\r 换行符的情况,几乎没人用\n const lines = text.split('\\n');\n // 如果没有换行符就只更新最后一行\n if (lines.length === 1) {\n lastline += lines[0];\n this.setState({\n lastLine: lastline\n });\n } else {\n // 将之前的数据补上\n lines[0] = lastline + lines[0];\n // 最后一个要么是空,要么是下一行的数据\n lastline = lines.pop() || '';\n logs = logs.concat(lines);\n this.setState({\n logs: logs,\n lastLine: lastline\n });\n }\n }\n\n if (done) {\n this.isDone = true;\n return;\n }\n }\n } else {\n env.notify('error', __('fetchFailed'));\n }\n }\n\n render() {\n const {\n source,\n className,\n classnames: cx,\n placeholder,\n height,\n translate: __\n } = this.props;\n\n let loading = __(placeholder);\n\n if (!source) {\n loading = __('Log.mustHaveSource');\n }\n\n const lines = this.state.logs.map((line, index) => {\n return (\n <div className={cx('Log-line')} key={index}>\n <Ansi useClasses>{line}</Ansi>\n </div>\n );\n });\n\n return (\n <div\n ref={this.logRef}\n className={cx('Log', className)}\n style={{height: height}}\n >\n {lines.length ? lines : loading}\n <div className={cx('Log-line')} key=\"last\">\n <code>{this.state.lastLine}</code>\n </div>\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'log'\n})\nexport class LogRenderer extends Log {}\n"
|
11
|
+
"/**\n * @file 用于显示日志的组件,比如显示命令行的输出结果\n */\nimport React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {BaseSchema} from '../Schema';\nimport Ansi from 'ansi-to-react';\nimport {buildApi, isApiOutdated} from '../utils/api';\nimport VirtualList from '../components/virtual-list';\nimport Button from '../components/Button';\nimport {\n InputClearIcon,\n LeftArrowIcon,\n MinusIcon,\n PauseIcon,\n PlusIcon,\n ReloadIcon,\n RightArrowIcon\n} from '../components/icons';\n\nexport type LogOperation = 'stop' | 'restart' | 'showLineNumber' | 'clear';\n\n/**\n * 日志展示组件\n * 文档:https://baidu.gitee.io/amis/docs/components/log\n */\nexport interface LogSchema extends BaseSchema {\n /**\n * 指定为 log 链接展示控件\n */\n type: 'log';\n\n /**\n * 自定义 CSS 类名\n */\n className?: string;\n\n /**\n * 获取日志的地址\n */\n source: string;\n\n /**\n * 控件高度\n */\n height?: number;\n\n /**\n * 是否自动滚动到最底部\n */\n autoScroll?: boolean;\n\n /**\n * 返回内容字符编码\n */\n encoding?: string;\n\n /**\n * 限制最大日志数量\n */\n maxLength?: number;\n\n /**\n * 每行高度\n */\n rowHeight?: number;\n\n /**\n * 关闭 ANSI 颜色支持\n */\n disableColor?: boolean;\n\n /**\n * 一些可操作选项\n */\n operation?: Array<LogOperation>;\n}\n\nexport interface LogProps\n extends RendererProps,\n Omit<LogSchema, 'type' | 'className'> {}\n\nexport interface LogState {\n lastLine: string;\n logs: string[];\n refresh: boolean;\n showLineNumber: boolean;\n showOperation: boolean;\n}\n\nexport class Log extends React.Component<LogProps, LogState> {\n static defaultProps = {\n height: 500,\n autoScroll: true,\n placeholder: 'loading',\n encoding: 'utf-8'\n };\n\n isDone: boolean = false;\n\n autoScroll: boolean = false;\n\n logRef: React.RefObject<HTMLDivElement>;\n\n state: LogState = {\n lastLine: '',\n logs: [],\n refresh: true,\n showLineNumber: false,\n showOperation: false\n };\n\n constructor(props: LogProps) {\n super(props);\n this.logRef = React.createRef();\n this.autoScroll = props.autoScroll || false;\n this.pauseOrResumeScrolling = this.pauseOrResumeScrolling.bind(this);\n }\n\n componentWillUnmount() {\n if (this.logRef && this.logRef.current) {\n this.logRef.current.removeEventListener(\n 'scroll',\n this.pauseOrResumeScrolling\n );\n }\n }\n\n componentDidMount() {\n if (this.autoScroll && this.logRef && this.logRef.current) {\n this.logRef.current.addEventListener(\n 'scroll',\n this.pauseOrResumeScrolling\n );\n }\n if (this.props.source) {\n this.loadLogs();\n }\n }\n\n componentDidUpdate(prevProps: LogProps) {\n if (this.autoScroll && this.logRef && this.logRef.current) {\n this.logRef.current.scrollTop = this.logRef.current.scrollHeight;\n }\n if (\n isApiOutdated(\n prevProps.source,\n this.props.source,\n prevProps.data,\n this.props.data\n )\n ) {\n this.loadLogs();\n }\n }\n\n // 如果向上滚动就停止自动滚动,除非滚到底部\n pauseOrResumeScrolling() {\n if (this.logRef && this.logRef.current) {\n const {scrollHeight, scrollTop, offsetHeight} = this.logRef.current;\n this.autoScroll = scrollHeight - (scrollTop + offsetHeight) < 50;\n }\n }\n\n refresh = () => {\n let origin = this.state.refresh;\n this.setState({\n refresh: !origin\n });\n if (!origin) {\n this.clear();\n this.loadLogs();\n }\n };\n\n clear = () => {\n this.setState({\n logs: [],\n lastLine: ''\n });\n };\n\n changeShowLineNumber = () => {\n this.setState({\n showLineNumber: !this.state.showLineNumber\n });\n };\n\n changeShowOperation = () => {\n this.setState({\n showOperation: !this.state.showOperation\n });\n };\n\n async loadLogs() {\n const {source, data, env, translate: __, encoding, maxLength} = this.props;\n // 因为这里返回结果是流式的,和普通 api 请求不一样,如果直接用 fetcher 经过 responseAdaptor 可能会导致出错,所以就直接 fetch 了\n const api = buildApi(source, data);\n if (!api.url) {\n return;\n }\n const res = await fetch(api.url, {\n method: api.method?.toLocaleUpperCase() || 'GET',\n headers: (api.headers as Record<string, string>) || undefined,\n body: api.data ? JSON.stringify(api.data) : undefined,\n credentials: 'include'\n });\n if (res.status === 200) {\n const body = res.body;\n if (!body) {\n return;\n }\n const reader = body.getReader();\n let lastline = '';\n let logs: string[] = [];\n for (;;) {\n if (!this.state.refresh) {\n await reader.cancel('click cancel button').then(() => {\n this.props.env.notify('success', '日志已经停止刷新');\n return;\n });\n }\n let {done, value} = await reader.read();\n if (value) {\n let text = new TextDecoder(encoding).decode(value, {stream: true});\n // 不考虑只有 \\r 换行符的情况,几乎没人用\n const lines = text.split('\\n');\n // 如果没有换行符就只更新最后一行\n if (lines.length === 1) {\n lastline += lines[0];\n this.setState({\n lastLine: lastline\n });\n } else {\n // 将之前的数据补上\n lines[0] = lastline + lines[0];\n // 最后一个要么是空,要么是下一行的数据\n lastline = lines.pop() || '';\n if (maxLength) {\n if (logs.length + lines.length > maxLength) {\n logs.splice(0, logs.length + lines.length - maxLength);\n }\n }\n logs = logs.concat(lines);\n this.setState({\n logs: logs,\n lastLine: lastline\n });\n }\n }\n\n if (done) {\n this.isDone = true;\n return;\n }\n }\n } else {\n env.notify('error', __('fetchFailed'));\n }\n }\n\n /**\n * 渲染某一行\n */\n renderLine(index: number, line: string, showLineNumber: boolean) {\n const {classnames: cx, disableColor} = this.props;\n return (\n <div className={cx('Log-line')} key={index}>\n {showLineNumber && (\n <span className={cx('Log-line-number')}>{index + 1} </span>\n )}\n {disableColor ? line : <Ansi useClasses>{line}</Ansi>}\n </div>\n );\n }\n\n render() {\n const {\n source,\n className,\n classnames: cx,\n placeholder,\n height,\n rowHeight,\n disableColor,\n translate: __,\n operation,\n env\n } = this.props;\n\n const {refresh, showLineNumber, showOperation} = this.state;\n\n let loading = __(placeholder);\n\n if (!source) {\n loading = __('Log.mustHaveSource');\n }\n let lines: any;\n\n const logs = this.state.lastLine\n ? this.state.logs.concat([this.state.lastLine])\n : this.state.logs;\n\n // 如果设置 rowHeight 就开启延迟渲染\n const useVirtualRender = rowHeight;\n\n if (useVirtualRender) {\n lines = (\n <VirtualList\n height={height as number}\n itemCount={logs.length}\n itemSize={rowHeight}\n renderItem={({index, style}) => (\n <div\n className={cx('Log-line')}\n key={index}\n style={{...style, whiteSpace: 'nowrap'}}\n >\n {showLineNumber && (\n <span className={cx('Log-line-number')}>{index + 1} </span>\n )}\n {disableColor ? (\n logs[index]\n ) : (\n <Ansi useClasses>{logs[index]}</Ansi>\n )}\n </div>\n )}\n />\n );\n } else {\n lines = logs.map((line, index) => {\n return this.renderLine(index, line, showLineNumber);\n });\n }\n\n return (\n <div className={cx('Log', className)}>\n <div\n ref={this.logRef}\n className={cx('Log-body')}\n style={{height: useVirtualRender ? 'auto' : height}}\n >\n {useVirtualRender ? lines : lines.length ? lines : loading}\n </div>\n <div className={cx('Log-operation')}>\n {operation &&\n operation?.length > 0 &&\n (showOperation ? (\n <>\n {operation.includes('stop') && (\n <Button\n size=\"sm\"\n title=\"__('stop')\"\n disabled={!refresh}\n onClick={this.refresh}\n >\n <PauseIcon />\n </Button>\n )}\n\n {operation.includes('restart') && (\n <Button\n size=\"sm\"\n title={__('reload')}\n disabled={refresh}\n onClick={this.refresh}\n >\n <ReloadIcon />\n </Button>\n )}\n\n {operation.includes('showLineNumber') && (\n <Button\n size=\"sm\"\n title={\n showLineNumber\n ? __('Log.notShowLineNumber')\n : __('Log.showLineNumber')\n }\n onClick={this.changeShowLineNumber}\n >\n {showLineNumber ? <MinusIcon /> : <PlusIcon />}\n </Button>\n )}\n\n {operation.includes('clear') && (\n <Button size=\"sm\" title={__('clear')} onClick={this.clear}>\n <InputClearIcon />\n </Button>\n )}\n\n <Button\n size=\"sm\"\n title={__('Log.collapse')}\n onClick={this.changeShowOperation}\n >\n <LeftArrowIcon />\n </Button>\n </>\n ) : (\n <div\n title={__('Log.expand')}\n className={cx('Log-operation-hidden')}\n onClick={this.changeShowOperation}\n >\n <RightArrowIcon />\n </div>\n ))}\n </div>\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'log'\n})\nexport class LogRenderer extends Log {}\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/renderers/Page.js
CHANGED
@@ -192,7 +192,11 @@ var Page = /** @class */ (function (_super) {
|
|
192
192
|
}
|
193
193
|
});
|
194
194
|
}); })
|
195
|
-
.catch(function () {
|
195
|
+
.catch(function (e) {
|
196
|
+
if (throwErrors || action.countDown) {
|
197
|
+
throw e;
|
198
|
+
}
|
199
|
+
});
|
196
200
|
}
|
197
201
|
else {
|
198
202
|
return onAction(e, action, ctx, throwErrors, delegate || this.context);
|