amis 1.6.2 → 1.6.3
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.map +1 -1
- package/lib/components/CalendarMobile.d.ts +84 -84
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/Collapse.js +3 -2
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/ColorPicker.d.ts +84 -84
- package/lib/components/ColorPicker.js +1 -1
- package/lib/components/ColorPicker.js.map +2 -2
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DatePicker.js +1 -1
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +84 -84
- package/lib/components/DateRangePicker.js +2 -2
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/Editor.d.ts +84 -84
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/LocationPicker.d.ts +84 -84
- package/lib/components/LocationPicker.js +1 -1
- package/lib/components/LocationPicker.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +84 -84
- package/lib/components/PickerContainer.d.ts +1 -0
- package/lib/components/PickerContainer.js +2 -2
- package/lib/components/PickerContainer.js.map +2 -2
- package/lib/components/ResultBox.js +1 -1
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/Select.d.ts +237 -237
- package/lib/components/Tabs.d.ts +3 -2
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/calendar/Calendar.js +1 -2
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/condition-builder/Expression.d.ts +2 -0
- package/lib/components/condition-builder/Expression.js +2 -2
- package/lib/components/condition-builder/Expression.js.map +2 -2
- package/lib/components/condition-builder/Group.d.ts +3 -0
- package/lib/components/condition-builder/Group.js +3 -3
- package/lib/components/condition-builder/Group.js.map +2 -2
- package/lib/components/condition-builder/GroupOrItem.d.ts +2 -0
- package/lib/components/condition-builder/GroupOrItem.js +2 -2
- package/lib/components/condition-builder/GroupOrItem.js.map +2 -2
- package/lib/components/condition-builder/Item.d.ts +2 -0
- package/lib/components/condition-builder/Item.js +4 -4
- package/lib/components/condition-builder/Item.js.map +2 -2
- package/lib/components/condition-builder/Value.d.ts +2 -0
- package/lib/components/condition-builder/Value.js +15 -2
- package/lib/components/condition-builder/Value.js.map +2 -2
- package/lib/components/condition-builder/index.d.ts +3 -0
- package/lib/components/condition-builder/index.js +2 -2
- package/lib/components/condition-builder/index.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +88 -84
- package/lib/components/formula/Editor.js +22 -25
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/FuncList.d.ts +3 -0
- package/lib/components/formula/FuncList.js +19 -9
- package/lib/components/formula/FuncList.js.map +2 -2
- package/lib/components/formula/Picker.d.ts +44 -0
- package/lib/components/formula/Picker.js +33 -8
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/formula/VariableList.d.ts +8 -1
- package/lib/components/formula/VariableList.js +13 -4
- package/lib/components/formula/VariableList.js.map +2 -2
- package/lib/components/icons.d.ts +3 -1
- package/lib/components/icons.js +7 -1
- package/lib/components/icons.js.map +2 -2
- package/lib/env.d.ts +4 -0
- package/lib/env.js.map +2 -2
- package/lib/factory.d.ts +4 -0
- package/lib/factory.js +5 -1
- package/lib/factory.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/icons/function.js +7 -0
- package/lib/icons/input-clear.js +7 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +8 -1
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +5 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +8 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/CRUD.js +4 -3
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Calendar.d.ts +45 -0
- package/lib/renderers/Calendar.js +21 -0
- package/lib/renderers/Calendar.js.map +13 -0
- package/lib/renderers/Card.js +2 -2
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Form/ConditionBuilder.d.ts +8 -0
- package/lib/renderers/Form/ConditionBuilder.js.map +2 -2
- package/lib/renderers/Form/IconPicker.d.ts +2 -0
- package/lib/renderers/Form/IconPicker.js +22 -2
- package/lib/renderers/Form/IconPicker.js.map +2 -2
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputColor.d.ts +84 -84
- package/lib/renderers/Form/InputColor.js +1 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.d.ts +0 -18
- package/lib/renderers/Form/InputDate.js +1 -1
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +1 -1
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +42 -0
- package/lib/renderers/Form/InputFormula.js +6 -2
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputText.d.ts +5 -0
- package/lib/renderers/Form/InputText.js +22 -4
- package/lib/renderers/Form/InputText.js.map +2 -2
- package/lib/renderers/Form/Picker.js +1 -1
- package/lib/renderers/Form/Picker.js.map +2 -2
- package/lib/renderers/Form/Textarea.d.ts +12 -0
- package/lib/renderers/Form/Textarea.js +31 -15
- package/lib/renderers/Form/Textarea.js.map +2 -2
- package/lib/renderers/Form/Transfer.d.ts +1 -1
- package/lib/renderers/Form/Transfer.js +7 -1
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Form/index.js +4 -0
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/IFrame.js +8 -3
- package/lib/renderers/IFrame.js.map +2 -2
- package/lib/renderers/Tpl.js +1 -1
- package/lib/renderers/Tpl.js.map +2 -2
- package/lib/schemaExtend.js +11 -8
- package/lib/schemaExtend.js.map +2 -2
- package/lib/themes/ang-ie11.css +427 -141
- package/lib/themes/ang.css +427 -141
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +427 -141
- package/lib/themes/antd.css +427 -141
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +432 -152
- package/lib/themes/cxd.css +432 -152
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +427 -141
- package/lib/themes/dark.css +427 -141
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +432 -152
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/api.js +22 -9
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/helper.d.ts +1 -0
- package/lib/utils/helper.js +10 -1
- package/lib/utils/helper.js.map +2 -2
- package/package.json +2 -2
- package/schema.json +201 -66
- package/scss/_mixins.scss +10 -5
- package/scss/_properties.scss +11 -0
- package/scss/components/_collapse-group.scss +4 -0
- package/scss/components/_condition-builder.scss +8 -1
- package/scss/components/_formula.scss +247 -74
- package/scss/components/_result-box.scss +0 -13
- package/scss/components/form/_color.scss +0 -2
- package/scss/components/form/_date-range.scss +14 -7
- package/scss/components/form/_date.scss +14 -7
- package/scss/components/form/_form.scss +1 -0
- package/scss/components/form/_icon-picker.scss +2 -0
- package/scss/components/form/_location.scss +0 -1
- package/scss/components/form/_picker.scss +0 -1
- package/scss/components/form/_text.scss +6 -7
- package/scss/components/form/_textarea.scss +16 -0
- package/scss/components/form/_transfer.scss +2 -1
- package/scss/themes/_cxd-variables.scss +5 -3
- package/scss/themes/cxd.scss +0 -13
- package/sdk/ang-ie11.css +467 -126
- package/sdk/ang.css +486 -141
- package/sdk/antd-ie11.css +467 -126
- package/sdk/antd.css +486 -141
- package/sdk/charts.js +17 -17
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -69
- package/sdk/cropperjs.js +3 -3
- package/sdk/cxd-ie11.css +474 -142
- package/sdk/cxd.css +491 -153
- package/sdk/dark-ie11.css +467 -126
- package/sdk/dark.css +486 -141
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/locale/de-DE.js +8 -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 +20 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +474 -142
- package/sdk/sdk.css +491 -153
- package/sdk/sdk.js +1351 -1273
- package/sdk/thirds/hls.js/hls.js +18 -18
- package/sdk/thirds/mpegts.js/mpegts.js +2 -2
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +3 -0
- package/src/components/Collapse.tsx +4 -1
- package/src/components/ColorPicker.tsx +1 -1
- package/src/components/DatePicker.tsx +1 -1
- package/src/components/DateRangePicker.tsx +2 -2
- package/src/components/LocationPicker.tsx +1 -1
- package/src/components/PickerContainer.tsx +3 -1
- package/src/components/ResultBox.tsx +1 -1
- package/src/components/Tabs.tsx +4 -2
- package/src/components/calendar/Calendar.tsx +1 -2
- package/src/components/condition-builder/Expression.tsx +5 -2
- package/src/components/condition-builder/Group.tsx +8 -2
- package/src/components/condition-builder/GroupOrItem.tsx +5 -1
- package/src/components/condition-builder/Item.tsx +7 -1
- package/src/components/condition-builder/Value.tsx +17 -4
- package/src/components/condition-builder/index.tsx +8 -1
- package/src/components/formula/Editor.tsx +43 -23
- package/src/components/formula/FuncList.tsx +74 -44
- package/src/components/formula/Picker.tsx +161 -23
- package/src/components/formula/VariableList.tsx +54 -9
- package/src/components/icons.tsx +7 -1
- package/src/env.tsx +5 -0
- package/src/factory.tsx +9 -1
- package/src/icons/function.svg +4 -0
- package/src/icons/input-clear.svg +1 -0
- package/src/index.tsx +1 -0
- package/src/locale/de-DE.ts +8 -1
- package/src/locale/en-US.ts +5 -1
- package/src/locale/zh-CN.ts +8 -1
- package/src/renderers/Breadcrumb.tsx +0 -1
- package/src/renderers/CRUD.tsx +6 -3
- package/src/renderers/Calendar.tsx +43 -0
- package/src/renderers/Card.tsx +12 -2
- package/src/renderers/Form/ConditionBuilder.tsx +11 -0
- package/src/renderers/Form/IconPicker.tsx +29 -0
- package/src/renderers/Form/InputColor.tsx +1 -1
- package/src/renderers/Form/InputDate.tsx +1 -21
- package/src/renderers/Form/InputDateRange.tsx +1 -1
- package/src/renderers/Form/InputFormula.tsx +103 -3
- package/src/renderers/Form/InputText.tsx +30 -5
- package/src/renderers/Form/Picker.tsx +1 -1
- package/src/renderers/Form/Textarea.tsx +46 -22
- package/src/renderers/Form/Transfer.tsx +6 -1
- package/src/renderers/Form/index.tsx +16 -1
- package/src/renderers/IFrame.tsx +8 -10
- package/src/renderers/Tpl.tsx +3 -1
- package/src/schemaExtend.ts +11 -7
- package/src/utils/api.ts +25 -10
- package/src/utils/helper.ts +11 -1
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/icons.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA;;;;GAIG;AACH,6DAA0B;AAE1B,8EAA2C;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file Icon\n * @description\n * @author fex\n */\nimport React from 'react';\n\nimport CloseIcon from '../icons/close.svg';\nimport StatusCloseIcon from '../icons/status-close.svg';\nimport UnDoIcon from '../icons/undo.svg';\nimport ReDoIcon from '../icons/redo.svg';\nimport EnterIcon from '../icons/enter.svg';\nimport VolumeIcon from '../icons/volume.svg';\nimport MuteIcon from '../icons/mute.svg';\nimport PlayIcon from '../icons/play.svg';\nimport PauseIcon from '../icons/pause.svg';\nimport LeftArrowIcon from '../icons/left-arrow.svg';\nimport RightArrowIcon from '../icons/right-arrow.svg';\nimport CheckIcon from '../icons/check.svg';\nimport PlusIcon from '../icons/plus.svg';\nimport MinusIcon from '../icons/minus.svg';\nimport PencilIcon from '../icons/pencil.svg';\nimport ViewIcon from '../icons/view.svg';\nimport RemoveIcon from '../icons/remove.svg';\nimport RetryIcon from '../icons/retry.svg';\nimport UploadIcon from '../icons/upload.svg';\nimport DownloadIcon from '../icons/download.svg';\nimport FileIcon from '../icons/file.svg';\nimport StatusSuccessIcon from '../icons/status-success.svg';\nimport StatusFailIcon from '../icons/status-fail.svg';\nimport StatusInfoIcon from '../icons/status-info.svg';\nimport StatusWarningIcon from '../icons/status-warning.svg';\nimport SuccessIcon from '../icons/success.svg';\nimport FailIcon from '../icons/fail.svg';\nimport SearchIcon from '../icons/search.svg';\nimport BackIcon from '../icons/back.svg';\nimport MoveIcon from '../icons/move.svg';\nimport InfoIcon from '../icons/info.svg';\nimport LocationIcon from '../icons/location.svg';\nimport DragBarIcon from '../icons/drag-bar.svg';\nimport ReloadIcon from '../icons/reload.svg';\nimport ExchangeIcon from '../icons/exchange.svg';\nimport ColmunsIcon from '../icons/columns.svg';\nimport CalendarIcon from '../icons/calendar.svg';\nimport ClockIcon from '../icons/clock.svg';\nimport TreeDownIcon from '../icons/tree-down.svg';\n\nimport CopyIcon from '../icons/copy.svg';\nimport FilterIcon from '../icons/filter.svg';\nimport CaretIcon from '../icons/caret.svg';\nimport RightArrowBoldIcon from '../icons/right-arrow-bold.svg';\nimport ColumnFilterIcon from '../icons/column-filter.svg';\nimport ZoomInIcon from '../icons/zoom-in.svg';\nimport ZoomOutIcon from '../icons/zoom-out.svg';\nimport QuestionIcon from '../icons/question.svg';\nimport QuestionMarkIcon from '../icons/question-mark.svg';\nimport WindowRestoreIcon from '../icons/window-restore.svg';\nimport InfoCircleIcon from '../icons/info-circle.svg';\nimport WarningIcon from '../icons/warning.svg';\nimport WarningMarkIcon from '../icons/warning-mark.svg';\nimport ScheduleIcon from '../icons/schedule.svg';\nimport HomeIcon from '../icons/home.svg';\nimport FolderIcon from '../icons/folder.svg';\nimport SortDefaultIcon from '../icons/sort-default.svg';\nimport SortAscIcon from '../icons/sort-asc.svg';\nimport SortDescIcon from '../icons/sort-desc.svg';\nimport SettingIcon from '../icons/setting.svg';\nimport PlusCicleIcon from '../icons/plus-cicle.svg';\nimport EllipsisVIcon from '../icons/ellipsis-v.svg';\nimport ExpandAltIcon from '../icons/expand-alt.svg';\nimport CompressAltIcon from '../icons/compress-alt.svg';\nimport TransparentIcon from '../icons/transparent.svg';\nimport LoadingOutline from '../icons/loading-outline.svg';\nimport Star from '../icons/star.svg';\nimport AlertSuccess from '../icons/alert-success.svg';\nimport AlertInfo from '../icons/alert-info.svg';\nimport AlertWarning from '../icons/alert-warning.svg';\nimport AlertDanger from '../icons/alert-danger.svg';\n\n// 兼容原来的用法,后续不直接试用。\n\nexport const closeIcon = <CloseIcon />;\nexport const unDoIcon = <UnDoIcon />;\nexport const reDoIcon = <ReDoIcon />;\nexport const enterIcon = <EnterIcon />;\nexport const volumeIcon = <VolumeIcon />;\nexport const muteIcon = <MuteIcon />;\nexport const playIcon = <PlayIcon />;\nexport const pauseIcon = <PauseIcon />;\nexport const leftArrowIcon = <LeftArrowIcon />;\nexport const rightArrowIcon = <RightArrowIcon />;\nconst iconFactory: {\n [propName: string]: React.ReactType<{}>;\n} = {};\n\nexport function getIcon(key: string) {\n return iconFactory[key];\n}\n\nexport function hasIcon(iconName: string) {\n return !!getIcon(iconName);\n}\n\nexport function registerIcon(key: string, component: React.ReactType<{}>) {\n iconFactory[key] = component;\n}\n\nregisterIcon('close', CloseIcon);\nregisterIcon('status-close', StatusCloseIcon);\nregisterIcon('undo', UnDoIcon);\nregisterIcon('redo', ReDoIcon);\nregisterIcon('enter', EnterIcon);\nregisterIcon('volume', VolumeIcon);\nregisterIcon('mute', MuteIcon);\nregisterIcon('play', PlayIcon);\nregisterIcon('pause', PauseIcon);\nregisterIcon('left-arrow', LeftArrowIcon);\nregisterIcon('right-arrow', RightArrowIcon);\nregisterIcon('prev', LeftArrowIcon);\nregisterIcon('next', RightArrowIcon);\nregisterIcon('check', CheckIcon);\nregisterIcon('plus', PlusIcon);\nregisterIcon('add', PlusIcon);\nregisterIcon('minus', MinusIcon);\nregisterIcon('pencil', PencilIcon);\nregisterIcon('view', ViewIcon);\nregisterIcon('remove', RemoveIcon);\nregisterIcon('retry', RetryIcon);\nregisterIcon('upload', UploadIcon);\nregisterIcon('download', DownloadIcon);\nregisterIcon('file', FileIcon);\nregisterIcon('status-success', StatusSuccessIcon);\nregisterIcon('status-fail', StatusFailIcon);\nregisterIcon('status-info', StatusInfoIcon);\nregisterIcon('status-warning', StatusWarningIcon);\nregisterIcon('success', SuccessIcon);\nregisterIcon('fail', FailIcon);\nregisterIcon('warning', WarningIcon);\nregisterIcon('warning-mark', WarningMarkIcon);\nregisterIcon('search', SearchIcon);\nregisterIcon('back', BackIcon);\nregisterIcon('move', MoveIcon);\nregisterIcon('info', InfoIcon);\nregisterIcon('info-circle', InfoCircleIcon);\nregisterIcon('location', LocationIcon);\nregisterIcon('drag-bar', DragBarIcon);\nregisterIcon('reload', ReloadIcon);\nregisterIcon('exchange', ExchangeIcon);\nregisterIcon('columns', ColmunsIcon);\nregisterIcon('calendar', CalendarIcon);\nregisterIcon('clock', ClockIcon);\nregisterIcon('copy', CopyIcon);\nregisterIcon('filter', FilterIcon);\nregisterIcon('column-filter', ColumnFilterIcon);\nregisterIcon('caret', CaretIcon);\nregisterIcon('right-arrow-bold', RightArrowBoldIcon);\nregisterIcon('zoom-in', ZoomInIcon);\nregisterIcon('zoom-out', ZoomOutIcon);\nregisterIcon('question', QuestionIcon);\nregisterIcon('question-mark', QuestionMarkIcon);\nregisterIcon('window-restore', WindowRestoreIcon);\nregisterIcon('schedule', ScheduleIcon);\nregisterIcon('home', HomeIcon);\nregisterIcon('folder', FolderIcon);\nregisterIcon('sort-default', SortDefaultIcon);\nregisterIcon('sort-asc', SortAscIcon);\nregisterIcon('sort-desc', SortDescIcon);\nregisterIcon('setting', SettingIcon);\nregisterIcon('plus-cicle', PlusCicleIcon);\nregisterIcon('ellipsis-v', EllipsisVIcon);\nregisterIcon('expand-alt', ExpandAltIcon);\nregisterIcon('compress-alt', CompressAltIcon);\nregisterIcon('transparent', TransparentIcon);\nregisterIcon('loading-outline', LoadingOutline);\nregisterIcon('star', Star);\nregisterIcon('alert-success', AlertSuccess);\nregisterIcon('alert-info', AlertInfo);\nregisterIcon('alert-warning', AlertWarning);\nregisterIcon('alert-danger', AlertDanger);\nregisterIcon('tree-down', TreeDownIcon);\n\nexport function Icon({\n icon,\n className,\n ...rest\n}: {\n icon: string;\n} & React.ComponentProps<any>) {\n // jest 运行环境下,把指定的 icon 也输出到 snapshot 中。\n if (typeof jest !== 'undefined') {\n rest.icon = icon;\n }\n\n const Component = getIcon(icon);\n return Component ? (\n <Component {...rest} className={`${className || ''} icon-${icon}`} />\n ) : (\n <span className=\"text-danger\">没有 icon {icon}</span>\n );\n}\n\nexport {\n CloseIcon,\n UnDoIcon,\n ReDoIcon,\n EnterIcon,\n VolumeIcon,\n MuteIcon,\n PlayIcon,\n PauseIcon,\n LeftArrowIcon,\n RightArrowIcon,\n CheckIcon,\n PlusIcon,\n MinusIcon,\n PencilIcon\n};\n"
|
11
|
+
"/**\n * @file Icon\n * @description\n * @author fex\n */\nimport React from 'react';\n\nimport CloseIcon from '../icons/close.svg';\nimport StatusCloseIcon from '../icons/status-close.svg';\nimport UnDoIcon from '../icons/undo.svg';\nimport ReDoIcon from '../icons/redo.svg';\nimport EnterIcon from '../icons/enter.svg';\nimport VolumeIcon from '../icons/volume.svg';\nimport MuteIcon from '../icons/mute.svg';\nimport PlayIcon from '../icons/play.svg';\nimport PauseIcon from '../icons/pause.svg';\nimport LeftArrowIcon from '../icons/left-arrow.svg';\nimport RightArrowIcon from '../icons/right-arrow.svg';\nimport CheckIcon from '../icons/check.svg';\nimport PlusIcon from '../icons/plus.svg';\nimport MinusIcon from '../icons/minus.svg';\nimport PencilIcon from '../icons/pencil.svg';\nimport ViewIcon from '../icons/view.svg';\nimport RemoveIcon from '../icons/remove.svg';\nimport RetryIcon from '../icons/retry.svg';\nimport UploadIcon from '../icons/upload.svg';\nimport DownloadIcon from '../icons/download.svg';\nimport FileIcon from '../icons/file.svg';\nimport StatusSuccessIcon from '../icons/status-success.svg';\nimport StatusFailIcon from '../icons/status-fail.svg';\nimport StatusInfoIcon from '../icons/status-info.svg';\nimport StatusWarningIcon from '../icons/status-warning.svg';\nimport SuccessIcon from '../icons/success.svg';\nimport FailIcon from '../icons/fail.svg';\nimport SearchIcon from '../icons/search.svg';\nimport BackIcon from '../icons/back.svg';\nimport MoveIcon from '../icons/move.svg';\nimport InfoIcon from '../icons/info.svg';\nimport LocationIcon from '../icons/location.svg';\nimport DragBarIcon from '../icons/drag-bar.svg';\nimport ReloadIcon from '../icons/reload.svg';\nimport ExchangeIcon from '../icons/exchange.svg';\nimport ColmunsIcon from '../icons/columns.svg';\nimport CalendarIcon from '../icons/calendar.svg';\nimport ClockIcon from '../icons/clock.svg';\nimport TreeDownIcon from '../icons/tree-down.svg';\n\nimport CopyIcon from '../icons/copy.svg';\nimport FilterIcon from '../icons/filter.svg';\nimport CaretIcon from '../icons/caret.svg';\nimport RightArrowBoldIcon from '../icons/right-arrow-bold.svg';\nimport ColumnFilterIcon from '../icons/column-filter.svg';\nimport ZoomInIcon from '../icons/zoom-in.svg';\nimport ZoomOutIcon from '../icons/zoom-out.svg';\nimport QuestionIcon from '../icons/question.svg';\nimport QuestionMarkIcon from '../icons/question-mark.svg';\nimport WindowRestoreIcon from '../icons/window-restore.svg';\nimport InfoCircleIcon from '../icons/info-circle.svg';\nimport WarningIcon from '../icons/warning.svg';\nimport WarningMarkIcon from '../icons/warning-mark.svg';\nimport ScheduleIcon from '../icons/schedule.svg';\nimport HomeIcon from '../icons/home.svg';\nimport FolderIcon from '../icons/folder.svg';\nimport SortDefaultIcon from '../icons/sort-default.svg';\nimport SortAscIcon from '../icons/sort-asc.svg';\nimport SortDescIcon from '../icons/sort-desc.svg';\nimport SettingIcon from '../icons/setting.svg';\nimport PlusCicleIcon from '../icons/plus-cicle.svg';\nimport EllipsisVIcon from '../icons/ellipsis-v.svg';\nimport ExpandAltIcon from '../icons/expand-alt.svg';\nimport CompressAltIcon from '../icons/compress-alt.svg';\nimport TransparentIcon from '../icons/transparent.svg';\nimport LoadingOutline from '../icons/loading-outline.svg';\nimport Star from '../icons/star.svg';\nimport AlertSuccess from '../icons/alert-success.svg';\nimport AlertInfo from '../icons/alert-info.svg';\nimport AlertWarning from '../icons/alert-warning.svg';\nimport AlertDanger from '../icons/alert-danger.svg';\nimport FunctionIcon from '../icons/function.svg';\nimport InputClearIcon from '../icons/input-clear.svg';\n\n// 兼容原来的用法,后续不直接试用。\n\nexport const closeIcon = <CloseIcon />;\nexport const unDoIcon = <UnDoIcon />;\nexport const reDoIcon = <ReDoIcon />;\nexport const enterIcon = <EnterIcon />;\nexport const volumeIcon = <VolumeIcon />;\nexport const muteIcon = <MuteIcon />;\nexport const playIcon = <PlayIcon />;\nexport const pauseIcon = <PauseIcon />;\nexport const leftArrowIcon = <LeftArrowIcon />;\nexport const rightArrowIcon = <RightArrowIcon />;\nconst iconFactory: {\n [propName: string]: React.ReactType<{}>;\n} = {};\n\nexport function getIcon(key: string) {\n return iconFactory[key];\n}\n\nexport function hasIcon(iconName: string) {\n return !!getIcon(iconName);\n}\n\nexport function registerIcon(key: string, component: React.ReactType<{}>) {\n iconFactory[key] = component;\n}\n\nregisterIcon('close', CloseIcon);\nregisterIcon('status-close', StatusCloseIcon);\nregisterIcon('undo', UnDoIcon);\nregisterIcon('redo', ReDoIcon);\nregisterIcon('enter', EnterIcon);\nregisterIcon('volume', VolumeIcon);\nregisterIcon('mute', MuteIcon);\nregisterIcon('play', PlayIcon);\nregisterIcon('pause', PauseIcon);\nregisterIcon('left-arrow', LeftArrowIcon);\nregisterIcon('right-arrow', RightArrowIcon);\nregisterIcon('prev', LeftArrowIcon);\nregisterIcon('next', RightArrowIcon);\nregisterIcon('check', CheckIcon);\nregisterIcon('plus', PlusIcon);\nregisterIcon('add', PlusIcon);\nregisterIcon('minus', MinusIcon);\nregisterIcon('pencil', PencilIcon);\nregisterIcon('view', ViewIcon);\nregisterIcon('remove', RemoveIcon);\nregisterIcon('retry', RetryIcon);\nregisterIcon('upload', UploadIcon);\nregisterIcon('download', DownloadIcon);\nregisterIcon('file', FileIcon);\nregisterIcon('status-success', StatusSuccessIcon);\nregisterIcon('status-fail', StatusFailIcon);\nregisterIcon('status-info', StatusInfoIcon);\nregisterIcon('status-warning', StatusWarningIcon);\nregisterIcon('success', SuccessIcon);\nregisterIcon('fail', FailIcon);\nregisterIcon('warning', WarningIcon);\nregisterIcon('warning-mark', WarningMarkIcon);\nregisterIcon('search', SearchIcon);\nregisterIcon('back', BackIcon);\nregisterIcon('move', MoveIcon);\nregisterIcon('info', InfoIcon);\nregisterIcon('info-circle', InfoCircleIcon);\nregisterIcon('location', LocationIcon);\nregisterIcon('drag-bar', DragBarIcon);\nregisterIcon('reload', ReloadIcon);\nregisterIcon('exchange', ExchangeIcon);\nregisterIcon('columns', ColmunsIcon);\nregisterIcon('calendar', CalendarIcon);\nregisterIcon('clock', ClockIcon);\nregisterIcon('copy', CopyIcon);\nregisterIcon('filter', FilterIcon);\nregisterIcon('column-filter', ColumnFilterIcon);\nregisterIcon('caret', CaretIcon);\nregisterIcon('right-arrow-bold', RightArrowBoldIcon);\nregisterIcon('zoom-in', ZoomInIcon);\nregisterIcon('zoom-out', ZoomOutIcon);\nregisterIcon('question', QuestionIcon);\nregisterIcon('question-mark', QuestionMarkIcon);\nregisterIcon('window-restore', WindowRestoreIcon);\nregisterIcon('schedule', ScheduleIcon);\nregisterIcon('home', HomeIcon);\nregisterIcon('folder', FolderIcon);\nregisterIcon('sort-default', SortDefaultIcon);\nregisterIcon('sort-asc', SortAscIcon);\nregisterIcon('sort-desc', SortDescIcon);\nregisterIcon('setting', SettingIcon);\nregisterIcon('plus-cicle', PlusCicleIcon);\nregisterIcon('ellipsis-v', EllipsisVIcon);\nregisterIcon('expand-alt', ExpandAltIcon);\nregisterIcon('compress-alt', CompressAltIcon);\nregisterIcon('transparent', TransparentIcon);\nregisterIcon('loading-outline', LoadingOutline);\nregisterIcon('star', Star);\nregisterIcon('alert-success', AlertSuccess);\nregisterIcon('alert-info', AlertInfo);\nregisterIcon('alert-warning', AlertWarning);\nregisterIcon('alert-danger', AlertDanger);\nregisterIcon('tree-down', TreeDownIcon);\nregisterIcon('function', FunctionIcon);\nregisterIcon('input-clear', InputClearIcon);\n\nexport function Icon({\n icon,\n className,\n ...rest\n}: {\n icon: string;\n} & React.ComponentProps<any>) {\n // jest 运行环境下,把指定的 icon 也输出到 snapshot 中。\n if (typeof jest !== 'undefined') {\n rest.icon = icon;\n }\n\n const Component = getIcon(icon);\n return Component ? (\n <Component {...rest} className={`${className || ''} icon-${icon}`} />\n ) : (\n <span className=\"text-danger\">没有 icon {icon}</span>\n );\n}\n\nexport {\n InputClearIcon,\n CloseIcon,\n UnDoIcon,\n ReDoIcon,\n EnterIcon,\n VolumeIcon,\n MuteIcon,\n PlayIcon,\n PauseIcon,\n LeftArrowIcon,\n RightArrowIcon,\n CheckIcon,\n PlusIcon,\n MinusIcon,\n PencilIcon,\n FunctionIcon\n};\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/env.d.ts
CHANGED
@@ -46,6 +46,10 @@ export interface RendererEnv {
|
|
46
46
|
bindEvent: (context: any) => (() => void) | undefined;
|
47
47
|
dispatchEvent: (e: string | React.ClipboardEvent<any> | React.DragEvent<any> | React.ChangeEvent<any> | React.KeyboardEvent<any> | React.TouchEvent<any> | React.WheelEvent<any> | React.AnimationEvent<any> | React.TransitionEvent<any> | React.MouseEvent<any>, context: any, scoped: IScopedContext, data: any, broadcast?: RendererEvent<any>) => Promise<RendererEvent<any> | undefined>;
|
48
48
|
rendererEventListeners: RendererEventListener[];
|
49
|
+
/**
|
50
|
+
* 过滤 html 标签,可用来添加 xss 保护逻辑
|
51
|
+
*/
|
52
|
+
filterHtml: (input: string) => string;
|
49
53
|
[propName: string]: any;
|
50
54
|
}
|
51
55
|
export declare const EnvContext: React.Context<void | RendererEnv>;
|
package/lib/env.js.map
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/env.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA;;GAEG;AACH,6DAA0B;AAI1B,iGAA0D;
|
9
|
+
"mappings": ";;;;AAAA;;GAEG;AACH,6DAA0B;AAI1B,iGAA0D;AAkF7C,QAAA,UAAU,GAAG,eAAK,CAAC,aAAa,CAAqB,SAAS,CAAC,CAAC;AAM7E,SAAgB,eAAe,CAE7B,iBAAoB;;IAQpB,IAAM,MAAM,GAAG,IAAA,iCAAmB;YAClB,wCAA2B;YAAzC;;YA4BA,CAAC;YArBC,wBAAM,GAAN;gBACE,IAAM,aAAa,GAEf;oBACF,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO;iBACpC,CAAC;gBAEF,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;oBACtB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;iBACvC;gBAED,OAAO,CACL,8BAAC,iBAAiB,4BACX,IAAI,CAAC,KAGR,EACE,aAAa,EACjB,CACH,CAAC;YACJ,CAAC;YACH,cAAC;QAAD,CAAC,AA5BD,CAAc,eAAK,CAAC,SAAS;QACpB,cAAW,GAAG,cACnB,iBAAiB,CAAC,WAAW,IAAI,iBAAiB,CAAC,IAAI,OACrD;QACG,cAAW,GAAG,kBAAW;QACzB,oBAAiB,GAAG,iBAA4C;aAwBzE,iBAAiB,CAClB,CAAC;IAEF,OAAO,MAEN,CAAC;AACJ,CAAC;AA9CD,0CA8CC",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file 组件 Env,包括如何发送 ajax,如何通知,如何跳转等等。。\n */\nimport React from 'react';\nimport {RendererConfig} from './factory';\nimport {ThemeInstance} from './theme';\nimport {Action, Api, Payload, Schema} from './types';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport {\n RendererEvent,\n RendererEventListener,\n EventListeners\n} from './utils/renderer-event';\nimport {IScopedContext} from './Scoped';\n\nexport interface RendererEnv {\n fetcher: (api: Api, data?: any, options?: object) => Promise<Payload>;\n isCancel: (val: any) => boolean;\n notify: (\n type: 'error' | 'success' | 'warning',\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) => Promise<boolean>;\n updateLocation: (location: any, replace?: boolean) => void;\n\n /**\n * 阻止路由跳转,有时候 form 没有保存,但是路由跳转了,导致页面没有更新,\n * 所以先让用户确认一下。\n *\n * 单页模式需要这个,如果非单页模式,不需要处理这个。\n */\n blockRouting?: (fn: (targetLocation: any) => void | string) => () => void;\n isCurrentUrl: (link: string, ctx?: any) => boolean | {params?: object};\n\n /**\n * 监控路由变化,如果 jssdk 需要做单页跳转需要实现这个。\n */\n watchRouteChange?: (fn: () => void) => () => void;\n rendererResolver?: (\n path: string,\n schema: Schema,\n props: any\n ) => null | RendererConfig;\n copy?: (contents: string, format?: any) => void;\n getModalContainer?: () => HTMLElement;\n theme: ThemeInstance;\n affixOffsetTop: number;\n affixOffsetBottom: number;\n richTextToken: string;\n loadRenderer: (\n schema: Schema,\n path: string,\n reRender: Function\n ) => Promise<React.ReactType> | React.ReactType | JSX.Element | void;\n loadChartExtends?: () => void | Promise<void>;\n useMobileUI?: boolean;\n bindEvent: (context: any) => (() => void) | undefined;\n dispatchEvent: (\n e:\n | string\n | React.ClipboardEvent<any>\n | React.DragEvent<any>\n | React.ChangeEvent<any>\n | React.KeyboardEvent<any>\n | React.TouchEvent<any>\n | React.WheelEvent<any>\n | React.AnimationEvent<any>\n | React.TransitionEvent<any>\n | React.MouseEvent<any>,\n context: any,\n scoped: IScopedContext,\n data: any,\n broadcast?: RendererEvent<any>\n ) => Promise<RendererEvent<any> | undefined>;\n rendererEventListeners: RendererEventListener[];\n [propName: string]: any;\n}\n\nexport const EnvContext = React.createContext<RendererEnv | void>(undefined);\n\nexport interface EnvProps {\n env: RendererEnv;\n}\n\nexport function withRendererEnv<\n T extends React.ComponentType<React.ComponentProps<T> & EnvProps>\n>(ComposedComponent: T) {\n type OuterProps = JSX.LibraryManagedAttributes<\n T,\n Omit<React.ComponentProps<T>, keyof EnvProps>\n > & {\n env?: RendererEnv;\n };\n\n const result = hoistNonReactStatic(\n class extends React.Component<OuterProps> {\n static displayName = `WithEnv(${\n ComposedComponent.displayName || ComposedComponent.name\n })`;\n static contextType = EnvContext;\n static ComposedComponent = ComposedComponent as React.ComponentType<T>;\n\n render() {\n const injectedProps: {\n env: RendererEnv;\n } = {\n env: this.props.env || this.context\n };\n\n if (!injectedProps.env) {\n throw new Error('Env 信息获取失败,组件用法不正确');\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 ComposedComponent\n );\n\n return result as typeof result & {\n ComposedComponent: T;\n };\n}\n"
|
11
|
+
"/**\n * @file 组件 Env,包括如何发送 ajax,如何通知,如何跳转等等。。\n */\nimport React from 'react';\nimport {RendererConfig} from './factory';\nimport {ThemeInstance} from './theme';\nimport {Action, Api, Payload, Schema} from './types';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport {\n RendererEvent,\n RendererEventListener,\n EventListeners\n} from './utils/renderer-event';\nimport {IScopedContext} from './Scoped';\n\nexport interface RendererEnv {\n fetcher: (api: Api, data?: any, options?: object) => Promise<Payload>;\n isCancel: (val: any) => boolean;\n notify: (\n type: 'error' | 'success' | 'warning',\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) => Promise<boolean>;\n updateLocation: (location: any, replace?: boolean) => void;\n\n /**\n * 阻止路由跳转,有时候 form 没有保存,但是路由跳转了,导致页面没有更新,\n * 所以先让用户确认一下。\n *\n * 单页模式需要这个,如果非单页模式,不需要处理这个。\n */\n blockRouting?: (fn: (targetLocation: any) => void | string) => () => void;\n isCurrentUrl: (link: string, ctx?: any) => boolean | {params?: object};\n\n /**\n * 监控路由变化,如果 jssdk 需要做单页跳转需要实现这个。\n */\n watchRouteChange?: (fn: () => void) => () => void;\n rendererResolver?: (\n path: string,\n schema: Schema,\n props: any\n ) => null | RendererConfig;\n copy?: (contents: string, format?: any) => void;\n getModalContainer?: () => HTMLElement;\n theme: ThemeInstance;\n affixOffsetTop: number;\n affixOffsetBottom: number;\n richTextToken: string;\n loadRenderer: (\n schema: Schema,\n path: string,\n reRender: Function\n ) => Promise<React.ReactType> | React.ReactType | JSX.Element | void;\n loadChartExtends?: () => void | Promise<void>;\n useMobileUI?: boolean;\n bindEvent: (context: any) => (() => void) | undefined;\n dispatchEvent: (\n e:\n | string\n | React.ClipboardEvent<any>\n | React.DragEvent<any>\n | React.ChangeEvent<any>\n | React.KeyboardEvent<any>\n | React.TouchEvent<any>\n | React.WheelEvent<any>\n | React.AnimationEvent<any>\n | React.TransitionEvent<any>\n | React.MouseEvent<any>,\n context: any,\n scoped: IScopedContext,\n data: any,\n broadcast?: RendererEvent<any>\n ) => Promise<RendererEvent<any> | undefined>;\n rendererEventListeners: RendererEventListener[];\n\n /**\n * 过滤 html 标签,可用来添加 xss 保护逻辑\n */\n filterHtml: (input: string) => string;\n [propName: string]: any;\n}\n\nexport const EnvContext = React.createContext<RendererEnv | void>(undefined);\n\nexport interface EnvProps {\n env: RendererEnv;\n}\n\nexport function withRendererEnv<\n T extends React.ComponentType<React.ComponentProps<T> & EnvProps>\n>(ComposedComponent: T) {\n type OuterProps = JSX.LibraryManagedAttributes<\n T,\n Omit<React.ComponentProps<T>, keyof EnvProps>\n > & {\n env?: RendererEnv;\n };\n\n const result = hoistNonReactStatic(\n class extends React.Component<OuterProps> {\n static displayName = `WithEnv(${\n ComposedComponent.displayName || ComposedComponent.name\n })`;\n static contextType = EnvContext;\n static ComposedComponent = ComposedComponent as React.ComponentType<T>;\n\n render() {\n const injectedProps: {\n env: RendererEnv;\n } = {\n env: this.props.env || this.context\n };\n\n if (!injectedProps.env) {\n throw new Error('Env 信息获取失败,组件用法不正确');\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 ComposedComponent\n );\n\n return result as typeof result & {\n ComposedComponent: T;\n };\n}\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/factory.d.ts
CHANGED
@@ -77,6 +77,10 @@ export interface RenderOptions {
|
|
77
77
|
* 文本替换的黑名单,因为属性太多了所以改成黑名单的 fangs
|
78
78
|
*/
|
79
79
|
replaceTextIgnoreKeys?: String[];
|
80
|
+
/**
|
81
|
+
* 过滤 html 标签,可用来添加 xss 保护逻辑
|
82
|
+
*/
|
83
|
+
filterHtml?: (input: string) => string;
|
80
84
|
[propName: string]: any;
|
81
85
|
}
|
82
86
|
export interface fetcherConfig {
|
package/lib/factory.js
CHANGED
@@ -281,7 +281,11 @@ var defaultOptions = {
|
|
281
281
|
'target',
|
282
282
|
'reload',
|
283
283
|
'persistData'
|
284
|
-
]
|
284
|
+
],
|
285
|
+
/**
|
286
|
+
* 过滤 html 标签,可用来添加 xss 保护逻辑
|
287
|
+
*/
|
288
|
+
filterHtml: function (input) { return input; }
|
285
289
|
};
|
286
290
|
var stores = {};
|
287
291
|
function render(schema, props, options, pathPrefix) {
|
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": ";;;;AAAA,6DAA0B;AAC1B,uCAA6E;AAC7E,mDAAgD;AAChD,mCAAwC;AACxC,uDAAoD;AACpD,yCAQwB;AAWxB,yCAAoC;AACpC,iEAAgD;AAChD,iCAA4D;AAC5D,kEAA+B;AAC/B,4EAAwC;AACxC,4CAAyC;AACzC,4CAAqE;AACrE,mCAAuE;AACvE,6DAA2D;AAC3D,yCAA4C;AAC5C,6BAA8C;AA4oBtC,4FA5oBY,iBAAW,OA4oBZ;AA3oBnB,+CAA4C;AAC5C,yDAMgC;AAChC,2CAA4C;AAyH5C,IAAM,SAAS,GAA0B,EAAE,CAAC;AAC5C,IAAM,aAAa,GAAkB,EAAE,CAAC;AACxC,IAAM,aAAa,GAA8B,EAAE,CAAC;AACpD,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,SAAgB,eAAe,CAAC,EAAsB;IACpD,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAFD,0CAEC;AAED,SAAgB,YAAY,CAC1B,MAAc,EACd,MAAsB,EACtB,KAAW;IAEX,OAAO,aAAa,CAAC,MAAM,CACzB,UAAC,MAAM,EAAE,MAAM,IAAK,OAAA,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAA7B,CAA6B,EACjD,MAAM,CACG,CAAC;AACd,CAAC;AATD,oCASC;AAED,SAAgB,QAAQ,CAAC,MAA2B;IAClD,OAAO,UAAuC,SAAY;QACxD,IAAM,QAAQ,GAAG,gBAAgB,iDAC5B,MAAM,KACT,SAAS,EAAE,SAAS,IACpB,CAAC;QACH,OAAO,QAAQ,CAAC,SAAc,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC;AARD,4BAQC;AAED,SAAgB,gBAAgB,CAAC,MAAsB;IACrD,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAChC,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;KAC9D;SAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;QAC5B,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;KACrD;IAED,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE;QAClD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI;YACT,MAAM,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,UAAS,IAAA,sBAAa,EAAC,MAAM,CAAC,IAAI,CAAC,MAAG,EAAE,GAAG,CAAC,CAAC;KAC1E;IAED,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;IACnC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,eAAa,cAAc,EAAI,CAAC;IAE5E,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACvC,MAAM,IAAI,KAAK,CACb,8BAA2B,MAAM,CAAC,IAAI,oDAAgD,CACvF,CAAC;KACH;IAED,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE;QACxC,MAAM,CAAC,SAAS,GAAG,IAAA,2BAAe,EAAC;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,MAAM,CAAC,gBAAgB;YACpC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;SAClD,CAAC,CAAC,IAAA,qBAAQ,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;KAChC;IAED,IAAI,MAAM,CAAC,YAAY,EAAE;QACvB,MAAM,CAAC,SAAS,GAAG,IAAA,gBAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KAC7C;IAED,IAAM,GAAG,GAAG,IAAA,kBAAS,EACnB,SAAS,EACT,UAAA,IAAI,IAAI,OAAC,MAAM,CAAC,MAAiB,GAAG,IAAI,CAAC,MAAM,EAAvC,CAAuC,CAChD,CAAC;IACF,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC;AA1CD,4CA0CC;AAED,SAAgB,kBAAkB,CAAC,MAA+B;IAChE,IAAI,GAAG,GACL,OAAO,MAAM,KAAK,QAAQ;QACxB,CAAC,CAAC,IAAA,kBAAS,EAAC,SAAS,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,KAAK,MAAM,EAApB,CAAoB,CAAC;QACpD,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAEjC,IAAI,IAAI,GACN,OAAO,MAAM,KAAK,QAAQ;QACxB,CAAC,CAAC,IAAA,kBAAS,EAAC,aAAa,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,MAAM,EAAf,CAAe,CAAC;QACnD,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEvC,YAAY;IACZ,KAAK,GAAG,EAAE,CAAC;AACb,CAAC;AAfD,gDAeC;AAED,SAAgB,YAAY,CAAC,MAAc,EAAE,IAAY;IACvD,OAAO,CACL,8BAAC,gBAAK,IAAC,KAAK,EAAC,QAAQ;QACnB,yGAAuB;QACvB;;YAAU,IAAI,CAAK;QACnB;YACE,4CAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAQ,CAC1C,CACA,CACT,CAAC;AACJ,CAAC;AAVD,oCAUC;AAED,IAAM,cAAc,GAAkB;IACpC,OAAO,EAAE,QAAQ;IACjB,cAAc,EAAE,CAAC;IACjB,iBAAiB,EAAE,CAAC;IACpB,aAAa,EAAE,EAAE;IACjB,WAAW,EAAE,IAAI;IACjB,YAAY,cAAA;IACZ,sBAAsB,EAAE,EAAE;IAC1B,OAAO;QACL,OAAO,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC/C,CAAC;IACD,uBAAuB;IACvB,SAAS,YAAC,EAAE,EAAE,SAAS,EAAE,OAAO;QAC9B,IAAI,EAAE,EAAE;YACN,IAAM,QAAM,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACrC,QAAM,CAAC,MAAM,GAAG,UAAA,KAAK;gBACnB,IAAI,EAAE,CAAC,IAAI,EAAE;oBACX,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;iBACtC;YACH,CAAC,CAAC;YACF,QAAM,CAAC,SAAS,GAAG,UAAA,KAAK;gBACtB,IAAI,KAAK,CAAC,IAAI,EAAE;oBACd,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;iBACnC;YACH,CAAC,CAAC;YACF,QAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YACzB,OAAO;gBACL,KAAK,EAAE,QAAM,CAAC,KAAK;aACpB,CAAC;SACH;aAAM;YACL,OAAO;gBACL,KAAK,EAAE,cAAO,CAAC;aAChB,CAAC;SACH;IACH,CAAC;IACD,QAAQ;QACN,OAAO,CAAC,KAAK,CACX,4HAA4H,CAC7H,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc;QACZ,OAAO,CAAC,KAAK,CACX,kIAAkI,CACnI,CAAC;IACJ,CAAC;IACD,KAAK,eAAA;IACL,OAAO,iBAAA;IACP,MAAM,EAAE,UAAC,IAAI,EAAE,GAAG,EAAE,IAAI;QACtB,OAAA,aAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;IAA1E,CAA0E;IAE5E,MAAM,EAAE,UAAC,EAAU,EAAE,MAAY;QAC/B,IAAI,EAAE,KAAK,QAAQ,EAAE;YACnB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAC9B;QACD,EAAE,GAAG,IAAA,6BAAa,EAAC,EAAE,CAAC,CAAC;QACvB,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE;YACzC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvE,OAAO;SACR;QACD,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC3B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC7B;aAAM;YACL,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;SACpB;IACH,CAAC;IACD,YAAY,EAAE,UAAC,EAAU;QACvB,IAAI,CAAC,EAAE,EAAE;YACP,OAAO,KAAK,CAAC;SACd;QAED,IAAM,IAAI,GAAG,IAAA,6BAAa,EAAC,EAAE,CAAC,CAAC;QAC/B,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,EAAE;YACR,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAClC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC9B;QACD,IAAI,MAAM,EAAE;YACV,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACtD,OAAO,KAAK,CAAC;aACd;YACD,IAAM,OAAK,GAAG,IAAA,gBAAO,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAM,cAAY,GAAG,IAAA,gBAAO,EAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,OAAK,CAAC,CAAC,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,OAAK,CAAC,GAAG,CAAC,KAAK,cAAY,CAAC,GAAG,CAAC,EAAhC,CAAgC,CAAC,CAAC;SAC1E;aAAM,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE;YACzC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,EAAJ,UAAK,QAAgB;QACnB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,kBAAkB;IAClB,OAAO,EAAP,UAAQ,UAAsB,EAAE,KAAkB,IAAG,CAAC;IACtD,SAAS;IACT,SAAS,EAAT,UAAU,QAAa;QAAvB,iBAwBC;QAvBC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,SAAS,CAAC;SAClB;QACD,IAAM,SAAS,GAAmB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACjE,IAAI,SAAS,EAAE;YACb,KAAK;YACL,KAAgB,UAAsB,EAAtB,KAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAtB,cAAsB,EAAtB,IAAsB,EAAE;gBAAnC,IAAI,GAAG,SAAA;gBACV,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;oBAC/B,QAAQ,UAAA;oBACR,IAAI,EAAE,GAAG;oBACT,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC;oBAClC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO;iBAChC,CAAC,CAAC;aACJ;YAED,OAAO;gBACL,KAAI,CAAC,sBAAsB,GAAG,KAAI,CAAC,sBAAsB,CAAC,MAAM,CAC9D,UAAC,IAA2B,IAAK,OAAA,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAA1B,CAA0B,CAC5D,CAAC;YACJ,CAAC,CAAC;SACH;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IACK,aAAa,EAAnB,UACE,CAAiC,EACjC,QAAwC,EACxC,MAAsB,EACtB,IAAS,EACT,SAA8B;;;;;;;wBAExB,SAAS,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBACrD,IAAI,CAAC,SAAS,EAAE;4BACR,WAAW,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,OAAO,0CAAG,SAAS,CAAC,CAAC;4BAE1D,IAAI,CAAC,WAAW,EAAE;gCAChB,UAAU;gCACV,sBAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAC;6BACnC;yBACF;wBAED,WAAW;wBACX,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE;4BACvC,sBAAO,OAAO,CAAC,OAAO,EAAE,EAAC;yBAC1B;wBAGK,aAAa,GACjB,SAAS;4BACT,IAAA,oCAAmB,EAAC,SAAS,EAAE;gCAC7B,GAAG,EAAE,IAAI;gCACT,WAAW,EAAE,CAAC;gCACd,IAAI,MAAA;gCACJ,MAAM,QAAA;6BACP,CAAC,CAAC;wBAGC,SAAS,GAAG,IAAI,CAAC,sBAAsB;6BAC1C,MAAM,CACL,UAAC,IAA2B;4BAC1B,OAAA,IAAI,CAAC,IAAI,KAAK,SAAS;gCACvB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;wBAD/C,CAC+C,CAClD;6BACA,IAAI,CACH,UAAC,IAA2B,EAAE,IAA2B;4BACvD,OAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;wBAAzB,CAAyB,CAC5B,CAAC;8BAE0B,EAAT,uBAAS;;;6BAAT,CAAA,uBAAS,CAAA;wBAArB,QAAQ;wBACf,qBAAM,IAAA,mBAAU,EAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAA;;wBAApE,SAAoE,CAAC;wBAErE,YAAY;wBACZ,IAAI,aAAa,CAAC,MAAM,EAAE;4BACxB,wBAAM;yBACP;;;wBANkB,IAAS,CAAA;;4BAS9B,sBAAO,aAAa,EAAC;;;;KACtB;IACD,gBAAgB,EAAE,eAAe;IACjC,qBAAqB,EAAE;QACrB,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,aAAa;KACd;IACD;;OAEG;IACH,UAAU,EAAE,UAAC,KAAa,IAAK,OAAA,KAAK,EAAL,CAAK;CACrC,CAAC;AACF,IAAI,MAAM,GAEN,EAAE,CAAC;AACP,SAAgB,MAAM,CACpB,MAAc,EACd,KAA2B,EAC3B,OAA2B,EAC3B,UAAuB;IAFvB,sBAAA,EAAA,UAA2B;IAC3B,wBAAA,EAAA,YAA2B;IAC3B,2BAAA,EAAA,eAAuB;IAEvB,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAA,yBAAgB,GAAE,CAAC;IAChD,kBAAkB;IAClB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAA,uBAAc,EAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC;IAEhD,6CAA6C;IAC7C,IAAA,2BAAY,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,GAAG,sEACL,cAAc,GACd,OAAO,KACV,OAAO,EAAE,OAAO,CAAC,OAAO;gBACtB,CAAC,CAAC,IAAA,iBAAW,EAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;gBAC/C,CAAC,CAAC,cAAc,CAAC,OAAO,EAC1B,OAAO,EAAE,IAAA,kBAAS,EAChB,OAAO,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAC5D,EACD,MAAM,QAAA,EACN,SAAS,WAAA,GACH,CAAC;QAET,KAAK,GAAG,qBAAa,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC;KAC7C;IAEA,MAAc,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,cAAc;IACjD,IAAM,GAAG,GAAG,IAAA,wBAAM,EAAC,KAAK,CAAC,CAAC;IAE1B,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IAClD,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,KAAK,GAAG,KAAK,CAAC;KACf;IACD,GAAG,CAAC,KAAK,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;QAC9B,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;QAC1B,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;KACrB;IAED,gBAAgB;IAChB,IAAI,OAAO,OAAO,CAAC,WAAW,EAAE;QAC9B,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;KAC1B;IAED,SAAS;IACT,IAAI,GAAG,CAAC,WAAW,IAAI,IAAA,iBAAQ,EAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QAChD,IAAM,aAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACjD,aAAW,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,aAAa;QAC3C,IAAM,uBAAqB,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QACvE,IAAA,qBAAY,EAAC,MAAM,EAAE,UAAC,KAAU,EAAE,GAAW,EAAE,MAAW;YACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,uBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAChE,KAAyB,UAAW,EAAX,gBAAA,aAAW,EAAX,yBAAW,EAAX,IAAW,EAAE;oBAAjC,IAAM,UAAU,oBAAA;oBACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;wBAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAC5B,UAAU,EACV,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAC5B,CAAC;qBACH;iBACF;aACF;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,CACL,8BAAC,gBAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG;QAC7B,8BAAC,cAAkB,4BACb,KAAK,IACT,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,KAAK,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,IACpB,CACkB,CACvB,CAAC;AACJ,CAAC;AAxFD,wBAwFC;AAED,iCAAiC;AACjC,kBAAkB;AAClB,SAAgB,gBAAgB,CAC9B,QAAsD;IAAtD,yBAAA,EAAA,WAAmC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IAEtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC5B,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;KACvB;IAED,QAAQ,CAAC,OAAO,CAAC,UAAA,GAAG;QAClB,IAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAE1B,aAAa;QACb,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QAEnB,KAAK,IAAI,IAAA,yBAAO,EAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAfD,4CAeC;AAED,eAAe;AACf,2BAA2B;AAC3B,sCAAsC;AACtC,SAAgB,SAAS,CAAC,OAA+B,EAAE,OAAkB;IAAlB,wBAAA,EAAA,kBAAkB;IAC3E,OAAO,6BACF,OAAO,CACX,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,EAAE;QACnB,OAAO,CAAC,OAAO,GAAG,IAAA,iBAAW,EAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAQ,CAAC;KACxE;IAED,IAAI,OAAO,CAAC,OAAO,EAAE;QACnB,OAAO,CAAC,OAAO,GAAG,IAAA,kBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAC9C;IAED,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE;QACV,KAAK,GAAG,qBAAa,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,KAAK,CAAC;KAC5C;SAAM;QACL,IAAM,GAAG,GAAG,IAAA,wBAAM,EAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KAC7B;AACH,CAAC;AArBD,8BAqBC;AAED,IAAI,KAAK,GAAyC,EAAE,CAAC;AACrD,SAAgB,eAAe,CAC7B,IAAY,EACZ,MAAe;IAEf,IAAM,IAAI,GAAG,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9E,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;KACpB;SAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;KACpB;SAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;KACnC;IAED,IAAI,QAAQ,GAA0B,IAAI,CAAC;IAE3C,SAAS,CAAC,IAAI,CAAC,UAAA,IAAI;QACjB,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,mCAAmC;QACnC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACrB,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;YAE7B,sCAAsC;YACtC,IAAI,OAAO,EAAE;gBACX,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;aACpB;SACF;aAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;YAC1C,uCAAuC;YACvC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;SACpD;aAAM,IAAI,IAAI,CAAC,IAAI,YAAY,MAAM,EAAE;YACtC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC;QAED,IAAI,OAAO,EAAE;YACX,QAAQ,GAAG,IAAI,CAAC;SACjB;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,iCAAiC;IACjC,IACE,QAAQ,KAAK,IAAI;QACjB,CAAE,QAA2B,CAAC,IAAI;YAC/B,QAA2B,CAAC,IAAI,YAAY,MAAM;YACnD,CAAC,OAAQ,QAA2B,CAAC,IAAI,KAAK,UAAU;gBACpD,QAA2B,CAAC,IAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAChE;QACA,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;KACxB;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAtDD,0CAsDC;AAED,SAAgB,YAAY;IAC1B,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC;AAC5B,CAAC;AAFD,oCAEC;AAED,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAA,cAAI,EAAC,SAAS,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,KAAK,IAAI,EAAlB,CAAkB,CAAC,CAAC;AACrD,CAAC;AAFD,8CAEC;AAED,IAAA,yBAAiB,EAAC,UAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK;IAC3D,OAAO,MAAM,CACX;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,YAAY;QAClB,QAAQ,UAAA;QACR,QAAQ,EAAE;YACR,cAAc,EAAE,EAAE;SACnB;KACF,EACD;QACE,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,QAAQ,UAAA;QACR,KAAK,OAAA;KACN,EACD;QACE,OAAO,EAAE,QAAQ;KAClB,CACF,CAAC;AACJ,CAAC,CAAC,CAAC",
|
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 [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};\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().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"
|
12
12
|
]
|
13
13
|
}
|