@cloudbase/weda-ui 2.0.28 → 3.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/asset-manifest.json +17 -0
- package/dist/configs/actions/showModal.json +48 -0
- package/dist/configs/actions/showToast.json +41 -0
- package/dist/configs/components/auth.json +16 -0
- package/dist/configs/components/button.json +239 -0
- package/dist/configs/components/calendar.json +81 -0
- package/dist/configs/components/carousel.json +292 -0
- package/dist/configs/components/chart/bar.json +721 -0
- package/dist/configs/components/chart/line.json +674 -0
- package/dist/configs/components/chart/pie.json +494 -0
- package/dist/configs/components/chart/statisticsCard.json +376 -0
- package/dist/configs/components/container.json +50 -0
- package/dist/configs/components/dataView.json +239 -0
- package/dist/configs/components/drawer.json +115 -0
- package/dist/configs/components/form/checkbox.json +178 -0
- package/dist/configs/components/form/form.json +45 -0
- package/dist/configs/components/form/input.json +154 -0
- package/dist/configs/components/form/location.json +216 -0
- package/dist/configs/components/form/radio.json +203 -0
- package/dist/configs/components/form/richText.json +125 -0
- package/dist/configs/components/form/select.json +430 -0
- package/dist/configs/components/form/switch.json +58 -0
- package/dist/configs/components/form/textarea.json +116 -0
- package/dist/configs/components/form/tips.json +34 -0
- package/dist/configs/components/form/uploader.json +171 -0
- package/dist/configs/components/form/uploaderFile.json +158 -0
- package/dist/configs/components/graphicCard.json +413 -0
- package/dist/configs/components/image.json +187 -0
- package/dist/configs/components/link.json +79 -0
- package/dist/configs/components/listView.json +370 -0
- package/dist/configs/components/lottery.json +163 -0
- package/dist/configs/components/modal.json +72 -0
- package/dist/configs/components/navLayout.json +368 -0
- package/dist/configs/components/navigationBar.json +62 -0
- package/dist/configs/components/richtextview.json +26 -0
- package/dist/configs/components/scrollVeiw.json +253 -0
- package/dist/configs/components/slot.json +17 -0
- package/dist/configs/components/swiper.json +90 -0
- package/dist/configs/components/tabs.json +121 -0
- package/dist/configs/components/text.json +95 -0
- package/dist/configs/components/wedaVideo.json +89 -0
- package/dist/configs/components/wxOpenApi/phone.json +127 -0
- package/dist/configs/components/wxOpenApi/phoneCode.json +109 -0
- package/dist/configs/components/wxOpenApi/share.json +157 -0
- package/dist/configs/components/wxOpenApi/userInfo.json +156 -0
- package/dist/configs/index.d.ts +97 -0
- package/{src → dist}/configs/index.js +51 -57
- package/dist/docs/common/format.d.ts +13 -0
- package/dist/docs/common/format.js +103 -0
- package/dist/docs/common/tableView.d.ts +30 -0
- package/dist/docs/common/tableView.js +159 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.html +88 -0
- package/{src → dist}/index.js +0 -1
- package/dist/setupTests.d.ts +1 -0
- package/dist/setupTests.js +14 -0
- package/dist/static/js/bundle.js +963 -0
- package/dist/static/js/bundle.js.map +1 -0
- package/dist/static/js/main.chunk.js +8841 -0
- package/dist/static/js/main.chunk.js.map +1 -0
- package/dist/static/js/vendors~main.chunk.js +247885 -0
- package/dist/static/js/vendors~main.chunk.js.map +1 -0
- package/dist/static/media/ef6fa527e24e354765d806b826b41391.fa67580a.svg +627 -0
- package/dist/web/actions/index.d.ts +2 -0
- package/{src → dist}/web/actions/index.js +0 -0
- package/dist/web/actions/showModal/index.d.ts +3 -0
- package/dist/web/actions/showModal/index.js +66 -0
- package/dist/web/actions/showToast/index.d.ts +1 -0
- package/dist/web/actions/showToast/index.js +3 -0
- package/dist/web/components/auth/index.d.ts +10 -0
- package/dist/web/components/auth/index.js +37 -0
- package/{src → dist}/web/components/button/index.css +2 -2
- package/dist/web/components/button/index.d.ts +32 -0
- package/dist/web/components/button/index.js +48 -0
- package/{src → dist}/web/components/calendar/index.css +29 -29
- package/dist/web/components/calendar/index.d.ts +19 -0
- package/dist/web/components/calendar/index.js +181 -0
- package/dist/web/components/calendar/util.d.ts +13 -0
- package/dist/web/components/calendar/util.js +74 -0
- package/{src → dist}/web/components/carousel/index.css +11 -11
- package/dist/web/components/carousel/index.d.ts +41 -0
- package/dist/web/components/carousel/index.js +240 -0
- package/dist/web/components/chart/bar/index.d.ts +41 -0
- package/dist/web/components/chart/bar/index.js +56 -0
- package/dist/web/components/chart/common/config/bar.d.ts +48 -0
- package/dist/web/components/chart/common/config/bar.js +49 -0
- package/dist/web/components/chart/common/config/global.d.ts +13 -0
- package/dist/web/components/chart/common/config/global.js +16 -0
- package/dist/web/components/chart/common/config/line.d.ts +46 -0
- package/dist/web/components/chart/common/config/line.js +49 -0
- package/dist/web/components/chart/common/config/pie.d.ts +29 -0
- package/dist/web/components/chart/common/config/pie.js +36 -0
- package/dist/web/components/chart/common/core/eChartBar.d.ts +68 -0
- package/dist/web/components/chart/common/core/eChartBar.js +196 -0
- package/dist/web/components/chart/common/core/eChartBase.d.ts +128 -0
- package/dist/web/components/chart/common/core/eChartBase.js +346 -0
- package/dist/web/components/chart/common/core/eChartLine.d.ts +62 -0
- package/dist/web/components/chart/common/core/eChartLine.js +168 -0
- package/dist/web/components/chart/common/core/eChartPie.d.ts +50 -0
- package/dist/web/components/chart/common/core/eChartPie.js +132 -0
- package/dist/web/components/chart/common/core/type.d.ts +35 -0
- package/dist/web/components/chart/common/core/type.js +9 -0
- package/dist/web/components/chart/common/echarts.d.ts +2 -0
- package/{src/web/components/chart/common/echarts.ts → dist/web/components/chart/common/echarts.js} +12 -19
- package/dist/web/components/chart/common/useChart.d.ts +8 -0
- package/dist/web/components/chart/common/useChart.js +60 -0
- package/dist/web/components/chart/line/index.d.ts +39 -0
- package/dist/web/components/chart/line/index.js +53 -0
- package/dist/web/components/chart/pie/index.d.ts +27 -0
- package/dist/web/components/chart/pie/index.js +40 -0
- package/{src → dist}/web/components/chart/statisticsCard/index.css +12 -12
- package/dist/web/components/chart/statisticsCard/index.d.ts +85 -0
- package/dist/web/components/chart/statisticsCard/index.js +203 -0
- package/dist/web/components/chart/statisticsCard/interface.d.ts +13 -0
- package/dist/web/components/chart/statisticsCard/interface.js +1 -0
- package/dist/web/components/container/index.d.ts +6 -0
- package/dist/web/components/container/index.js +6 -0
- package/dist/web/components/dataView/index.d.ts +6 -0
- package/dist/web/components/dataView/index.js +8 -0
- package/{src/web/components/dataView/interface.ts → dist/web/components/dataView/interface.d.ts} +1 -2
- package/dist/web/components/dataView/interface.js +1 -0
- package/dist/web/components/drawer/index.d.ts +13 -0
- package/dist/web/components/drawer/index.js +12 -0
- package/dist/web/components/form/checkbox/index.d.ts +13 -0
- package/dist/web/components/form/checkbox/index.js +167 -0
- package/dist/web/components/form/enumSelect/MultipleSelect.d.ts +78 -0
- package/dist/web/components/form/enumSelect/MultipleSelect.js +52 -0
- package/dist/web/components/form/enumSelect/NormalSelect.d.ts +83 -0
- package/dist/web/components/form/enumSelect/NormalSelect.js +52 -0
- package/dist/web/components/form/enumSelect/SelectContainer.d.ts +16 -0
- package/dist/web/components/form/enumSelect/SelectContainer.js +30 -0
- package/dist/web/components/form/enumSelect/index.d.ts +82 -0
- package/{src/web/components/form/enumSelect/index.jsx → dist/web/components/form/enumSelect/index.js} +1 -4
- package/dist/web/components/form/enumSelect/props/defaultProps.d.ts +34 -0
- package/dist/web/components/form/enumSelect/props/defaultProps.js +40 -0
- package/dist/web/components/form/enumSelect/props/propsTypes.d.ts +39 -0
- package/dist/web/components/form/enumSelect/props/propsTypes.js +47 -0
- package/{src → dist}/web/components/form/form/index.css +2 -2
- package/dist/web/components/form/form/index.d.ts +13 -0
- package/dist/web/components/form/form/index.js +31 -0
- package/{src → dist}/web/components/form/formcell/index.css +14 -14
- package/dist/web/components/form/formcell/index.d.ts +8 -0
- package/dist/web/components/form/formcell/index.js +40 -0
- package/{src → dist}/web/components/form/input/index.css +3 -3
- package/dist/web/components/form/input/index.d.ts +14 -0
- package/dist/web/components/form/input/index.js +86 -0
- package/dist/web/components/form/location/common/mapChoose.css +477 -0
- package/dist/web/components/form/location/common/mapChoose.d.ts +15 -0
- package/dist/web/components/form/location/common/mapChoose.js +435 -0
- package/dist/web/components/form/location/common/mapView.d.ts +19 -0
- package/dist/web/components/form/location/common/mapView.js +170 -0
- package/dist/web/components/form/location/common/propsConfig.d.ts +59 -0
- package/dist/web/components/form/location/common/propsConfig.js +50 -0
- package/{src → dist}/web/components/form/location/common/selectModal.css +11 -10
- package/dist/web/components/form/location/common/selectModal.d.ts +21 -0
- package/dist/web/components/form/location/common/selectModal.js +44 -0
- package/dist/web/components/form/location/common/useLocationInfo.d.ts +36 -0
- package/dist/web/components/form/location/common/useLocationInfo.js +104 -0
- package/dist/web/components/form/location/components/LocationH5/index.css +100 -0
- package/dist/web/components/form/location/components/LocationH5/location.h5.d.ts +8 -0
- package/dist/web/components/form/location/components/LocationH5/location.h5.js +323 -0
- package/dist/web/components/form/location/components/LocationPC/Header.d.ts +12 -0
- package/dist/web/components/form/location/components/LocationPC/Header.js +43 -0
- package/{src → dist}/web/components/form/location/components/LocationPC/index.css +10 -14
- package/dist/web/components/form/location/components/LocationPC/location.PC.d.ts +8 -0
- package/dist/web/components/form/location/components/LocationPC/location.PC.js +224 -0
- package/dist/web/components/form/location/constants.d.ts +2 -0
- package/{src → dist}/web/components/form/location/constants.js +0 -1
- package/dist/web/components/form/location/index.css +13 -0
- package/dist/web/components/form/location/index.d.ts +1 -0
- package/dist/web/components/form/location/index.js +17 -0
- package/{src → dist}/web/components/form/radio/index.css +0 -0
- package/dist/web/components/form/radio/index.d.ts +11 -0
- package/dist/web/components/form/radio/index.js +115 -0
- package/dist/web/components/form/renderDecorator.d.ts +6 -0
- package/dist/web/components/form/renderDecorator.js +20 -0
- package/dist/web/components/form/select/h5.d.ts +16 -0
- package/dist/web/components/form/select/h5.js +504 -0
- package/{src → dist}/web/components/form/select/index.css +4 -4
- package/dist/web/components/form/select/index.d.ts +65 -0
- package/dist/web/components/form/select/index.js +301 -0
- package/dist/web/components/form/select/region/index.d.ts +6 -0
- package/dist/web/components/form/select/region/index.js +147 -0
- package/dist/web/components/form/select/time.d.ts +9 -0
- package/dist/web/components/form/select/time.js +146 -0
- package/dist/web/components/form/select/year.d.ts +7 -0
- package/dist/web/components/form/select/year.js +72 -0
- package/dist/web/components/form/switch/index.d.ts +6 -0
- package/dist/web/components/form/switch/index.js +57 -0
- package/{src → dist}/web/components/form/textarea/index.css +1 -1
- package/dist/web/components/form/textarea/index.d.ts +12 -0
- package/dist/web/components/form/textarea/index.js +66 -0
- package/{src → dist}/web/components/form/tips/index.css +0 -0
- package/dist/web/components/form/tips/index.d.ts +8 -0
- package/dist/web/components/form/tips/index.js +17 -0
- package/{src → dist}/web/components/form/uploader/index.css +14 -14
- package/dist/web/components/form/uploader/index.d.ts +3 -0
- package/dist/web/components/form/uploader/index.js +42 -0
- package/dist/web/components/form/uploader/uploader.h5.d.ts +19 -0
- package/dist/web/components/form/uploader/uploader.h5.js +201 -0
- package/dist/web/components/form/uploader/uploader.pc.d.ts +29 -0
- package/dist/web/components/form/uploader/uploader.pc.js +182 -0
- package/{src → dist}/web/components/form/uploaderFile/index.css +62 -62
- package/dist/web/components/form/uploaderFile/index.d.ts +4 -0
- package/dist/web/components/form/uploaderFile/index.js +19 -0
- package/dist/web/components/form/uploaderFile/uploadFile.h5.d.ts +23 -0
- package/dist/web/components/form/uploaderFile/uploadFile.h5.js +315 -0
- package/dist/web/components/form/uploaderFile/uploadFile.pc.d.ts +24 -0
- package/dist/web/components/form/uploaderFile/uploadFile.pc.js +290 -0
- package/{src → dist}/web/components/graphicCard/index.css +15 -15
- package/dist/web/components/graphicCard/index.d.ts +31 -0
- package/dist/web/components/graphicCard/index.js +166 -0
- package/dist/web/components/image/image.d.ts +9 -0
- package/dist/web/components/image/image.js +119 -0
- package/{src → dist}/web/components/image/index.css +2 -2
- package/dist/web/components/image/index.d.ts +13 -0
- package/dist/web/components/image/index.js +91 -0
- package/dist/web/components/index.d.ts +47 -0
- package/{src → dist}/web/components/index.js +25 -26
- package/{src → dist}/web/components/link/index.css +0 -0
- package/dist/web/components/link/index.d.ts +24 -0
- package/dist/web/components/link/index.js +71 -0
- package/{src → dist}/web/components/listView/index.css +17 -17
- package/dist/web/components/listView/index.d.ts +7 -0
- package/dist/web/components/listView/index.js +262 -0
- package/dist/web/components/listView/interface.d.ts +122 -0
- package/dist/web/components/listView/interface.js +1 -0
- package/{src → dist}/web/components/lottery/index.css +98 -72
- package/dist/web/components/lottery/index.d.ts +22 -0
- package/dist/web/components/lottery/index.js +390 -0
- package/dist/web/components/lottery/lotteryUtil.d.ts +23 -0
- package/dist/web/components/lottery/lotteryUtil.js +180 -0
- package/dist/web/components/modal/h5.css +53 -0
- package/dist/web/components/modal/index.d.ts +17 -0
- package/dist/web/components/modal/index.js +11 -0
- package/dist/web/components/modal/modal.h5.d.ts +4 -0
- package/dist/web/components/modal/modal.h5.js +46 -0
- package/dist/web/components/modal/modal.pc.d.ts +3 -0
- package/dist/web/components/modal/modal.pc.js +31 -0
- package/{src → dist}/web/components/navLayout/index.css +15 -15
- package/dist/web/components/navLayout/index.d.ts +46 -0
- package/dist/web/components/navLayout/index.js +116 -0
- package/dist/web/components/navigationBar/common.d.ts +15 -0
- package/dist/web/components/navigationBar/common.js +127 -0
- package/dist/web/components/navigationBar/h5Menu.d.ts +14 -0
- package/dist/web/components/navigationBar/h5Menu.js +72 -0
- package/dist/web/components/navigationBar/horizontalMenu.d.ts +12 -0
- package/dist/web/components/navigationBar/horizontalMenu.js +99 -0
- package/{src → dist}/web/components/navigationBar/index.css +66 -66
- package/dist/web/components/navigationBar/index.d.ts +13 -0
- package/dist/web/components/navigationBar/index.js +157 -0
- package/dist/web/components/navigationBar/verticalMenu.d.ts +13 -0
- package/dist/web/components/navigationBar/verticalMenu.js +38 -0
- package/dist/web/components/phone/index.d.ts +18 -0
- package/dist/web/components/phone/index.js +4 -0
- package/dist/web/components/phoneCode/index.d.ts +18 -0
- package/dist/web/components/phoneCode/index.js +4 -0
- package/dist/web/components/picker/datePicker.d.ts +10 -0
- package/dist/web/components/picker/datePicker.js +31 -0
- package/dist/web/components/picker/picker.d.ts +6 -0
- package/dist/web/components/picker/picker.js +45 -0
- package/dist/web/components/picker/timePicker.d.ts +7 -0
- package/dist/web/components/picker/timePicker.js +42 -0
- package/dist/web/components/richText/const.d.ts +1 -0
- package/dist/web/components/richText/const.js +2 -0
- package/{src → dist}/web/components/richText/index.css +3 -3
- package/dist/web/components/richText/index.d.ts +51 -0
- package/dist/web/components/richText/index.js +298 -0
- package/{src → dist}/web/components/richTextView/index.css +8 -8
- package/dist/web/components/richTextView/index.d.ts +7 -0
- package/dist/web/components/richTextView/index.js +44 -0
- package/dist/web/components/scrollView/index.d.ts +27 -0
- package/dist/web/components/scrollView/index.js +95 -0
- package/dist/web/components/share/index.d.ts +34 -0
- package/dist/web/components/share/index.js +4 -0
- package/dist/web/components/slot/index.d.ts +6 -0
- package/dist/web/components/slot/index.js +9 -0
- package/{src → dist}/web/components/swiper/index.css +10 -10
- package/dist/web/components/swiper/index.d.ts +24 -0
- package/dist/web/components/swiper/index.js +149 -0
- package/{src → dist}/web/components/tabs/index.css +6 -6
- package/dist/web/components/tabs/index.d.ts +13 -0
- package/dist/web/components/tabs/index.js +15 -0
- package/dist/web/components/tabs/tabs.h5.d.ts +4 -0
- package/dist/web/components/tabs/tabs.h5.js +42 -0
- package/dist/web/components/tabs/tabs.pc.d.ts +3 -0
- package/dist/web/components/tabs/tabs.pc.js +40 -0
- package/{src → dist}/web/components/text/index.css +6 -6
- package/dist/web/components/text/index.d.ts +14 -0
- package/dist/web/components/text/index.js +17 -0
- package/{src → dist}/web/components/uploaderFileView/index.css +0 -0
- package/dist/web/components/uploaderFileView/index.d.ts +10 -0
- package/dist/web/components/uploaderFileView/index.js +61 -0
- package/{src → dist}/web/components/uploaderView/index.css +5 -5
- package/dist/web/components/uploaderView/index.d.ts +17 -0
- package/dist/web/components/uploaderView/index.js +48 -0
- package/dist/web/components/userInfo/index.d.ts +26 -0
- package/dist/web/components/userInfo/index.js +4 -0
- package/{src → dist}/web/components/wedaVideo/index.css +2 -2
- package/dist/web/components/wedaVideo/index.d.ts +17 -0
- package/dist/web/components/wedaVideo/index.js +159 -0
- package/dist/web/index.d.ts +8 -0
- package/{src → dist}/web/index.js +1 -1
- package/dist/web/utils/classnames.d.ts +2 -0
- package/dist/web/utils/classnames.js +37 -0
- package/dist/web/utils/constant.d.ts +23 -0
- package/dist/web/utils/constant.js +24 -0
- package/dist/web/utils/debounce.d.ts +2 -0
- package/dist/web/utils/debounce.js +92 -0
- package/dist/web/utils/events.d.ts +1 -0
- package/{src → dist}/web/utils/events.js +1 -1
- package/dist/web/utils/getLocalCounter.d.ts +1 -0
- package/{src → dist}/web/utils/getLocalCounter.js +1 -2
- package/dist/web/utils/isObjectEqual.d.ts +2 -0
- package/dist/web/utils/isObjectEqual.js +12 -0
- package/dist/web/utils/loading-fallback.d.ts +2 -0
- package/dist/web/utils/loading-fallback.js +2 -0
- package/dist/web/utils/lodash.d.ts +1 -0
- package/{src/mp → dist/web}/utils/lodash.js +0 -0
- package/dist/web/utils/platform.d.ts +18 -0
- package/dist/web/utils/platform.js +191 -0
- package/dist/web/utils/tcb.d.ts +23 -0
- package/dist/web/utils/tcb.js +82 -0
- package/dist/web/utils/tmap.d.ts +3 -0
- package/dist/web/utils/tmap.js +21 -0
- package/dist/web/utils/useSetState.d.ts +1 -0
- package/dist/web/utils/useSetState.js +8 -0
- package/dist/web/utils/useSyncValue.d.ts +4 -0
- package/dist/web/utils/useSyncValue.js +15 -0
- package/dist/web/utils/weui.d.ts +1 -0
- package/{src → dist}/web/utils/weui.js +0 -1
- package/{src → dist}/web/weda-ui.css +2 -2
- package/package.json +22 -23
- package/src/configs/actions/showModal.json +0 -48
- package/src/configs/actions/showToast.json +0 -41
- package/src/configs/components/auth.json +0 -16
- package/src/configs/components/button.json +0 -239
- package/src/configs/components/calendar.json +0 -81
- package/src/configs/components/carousel.json +0 -292
- package/src/configs/components/chart/bar.json +0 -721
- package/src/configs/components/chart/line.json +0 -674
- package/src/configs/components/chart/pie.json +0 -494
- package/src/configs/components/chart/statisticsCard.json +0 -376
- package/src/configs/components/container.json +0 -50
- package/src/configs/components/dataView.json +0 -151
- package/src/configs/components/drawer.json +0 -115
- package/src/configs/components/form/checkbox.json +0 -173
- package/src/configs/components/form/form.json +0 -45
- package/src/configs/components/form/input.json +0 -154
- package/src/configs/components/form/label.json +0 -22
- package/src/configs/components/form/location.json +0 -155
- package/src/configs/components/form/radio.json +0 -203
- package/src/configs/components/form/richText.json +0 -125
- package/src/configs/components/form/select.json +0 -411
- package/src/configs/components/form/switch.json +0 -58
- package/src/configs/components/form/textarea.json +0 -116
- package/src/configs/components/form/tips.json +0 -34
- package/src/configs/components/form/uploader.json +0 -169
- package/src/configs/components/form/uploaderFile.json +0 -158
- package/src/configs/components/graphicCard.json +0 -413
- package/src/configs/components/image.json +0 -179
- package/src/configs/components/link.json +0 -79
- package/src/configs/components/listView.json +0 -281
- package/src/configs/components/lottery.json +0 -157
- package/src/configs/components/modal.json +0 -83
- package/src/configs/components/navLayout.json +0 -368
- package/src/configs/components/navigationBar.json +0 -62
- package/src/configs/components/picker/datePicker.json +0 -33
- package/src/configs/components/picker/picker.json +0 -18
- package/src/configs/components/picker/timePicker.json +0 -23
- package/src/configs/components/richtextview.json +0 -26
- package/src/configs/components/scrollVeiw.json +0 -253
- package/src/configs/components/slot.json +0 -17
- package/src/configs/components/swiper.json +0 -90
- package/src/configs/components/tabs.json +0 -121
- package/src/configs/components/text.json +0 -95
- package/src/configs/components/wedaVideo.json +0 -89
- package/src/configs/components/wxOpenApi/phone.json +0 -127
- package/src/configs/components/wxOpenApi/phoneCode.json +0 -109
- package/src/configs/components/wxOpenApi/share.json +0 -157
- package/src/configs/components/wxOpenApi/userInfo.json +0 -156
- package/src/mp/README.md +0 -1
- package/src/mp/actions/showModal/index.js +0 -3
- package/src/mp/actions/showToast/index.js +0 -3
- package/src/mp/components/button/index.js +0 -91
- package/src/mp/components/button/index.json +0 -4
- package/src/mp/components/button/index.wxml +0 -22
- package/src/mp/components/button/index.wxss +0 -13
- package/src/mp/components/calendar/arrowright--line.svg +0 -11
- package/src/mp/components/calendar/index.js +0 -268
- package/src/mp/components/calendar/index.json +0 -5
- package/src/mp/components/calendar/index.wxml +0 -35
- package/src/mp/components/calendar/index.wxss +0 -179
- package/src/mp/components/carousel/index.js +0 -88
- package/src/mp/components/carousel/index.json +0 -7
- package/src/mp/components/carousel/index.wxml +0 -6
- package/src/mp/components/chart/bar/index.js +0 -257
- package/src/mp/components/chart/bar/index.json +0 -6
- package/src/mp/components/chart/bar/index.wxml +0 -3
- package/src/mp/components/chart/bar/index.wxss +0 -9
- package/src/mp/components/chart/common/config/bar.js +0 -50
- package/src/mp/components/chart/common/config/global.js +0 -16
- package/src/mp/components/chart/common/config/line.js +0 -48
- package/src/mp/components/chart/common/config/pie.js +0 -36
- package/src/mp/components/chart/common/core/eChartBar.js +0 -258
- package/src/mp/components/chart/common/core/eChartBase.js +0 -389
- package/src/mp/components/chart/common/core/eChartLine.js +0 -223
- package/src/mp/components/chart/common/core/eChartPie.js +0 -169
- package/src/mp/components/chart/common/lib/echarts.min.js +0 -18
- package/src/mp/components/chart/ec-canvas/ec-canvas.js +0 -277
- package/src/mp/components/chart/ec-canvas/ec-canvas.json +0 -4
- package/src/mp/components/chart/ec-canvas/ec-canvas.wxml +0 -4
- package/src/mp/components/chart/ec-canvas/ec-canvas.wxss +0 -4
- package/src/mp/components/chart/ec-canvas/wx-canvas.js +0 -109
- package/src/mp/components/chart/line/index.js +0 -247
- package/src/mp/components/chart/line/index.json +0 -6
- package/src/mp/components/chart/line/index.wxml +0 -3
- package/src/mp/components/chart/line/index.wxss +0 -9
- package/src/mp/components/chart/pie/index.js +0 -182
- package/src/mp/components/chart/pie/index.json +0 -6
- package/src/mp/components/chart/pie/index.wxml +0 -3
- package/src/mp/components/chart/pie/index.wxss +0 -9
- package/src/mp/components/chart/statisticsCard/index.js +0 -253
- package/src/mp/components/chart/statisticsCard/index.json +0 -4
- package/src/mp/components/chart/statisticsCard/index.wxml +0 -9
- package/src/mp/components/chart/statisticsCard/index.wxss +0 -42
- package/src/mp/components/container/index.js +0 -20
- package/src/mp/components/container/index.json +0 -4
- package/src/mp/components/container/index.wxml +0 -3
- package/src/mp/components/dataView/index.js +0 -34
- package/src/mp/components/dataView/index.json +0 -7
- package/src/mp/components/dataView/index.wxml +0 -3
- package/src/mp/components/dataView/index.wxss +0 -0
- package/src/mp/components/form/checkbox/index.js +0 -124
- package/src/mp/components/form/checkbox/index.json +0 -7
- package/src/mp/components/form/checkbox/index.wxml +0 -13
- package/src/mp/components/form/checkbox/index.wxss +0 -1
- package/src/mp/components/form/form/index.js +0 -18
- package/src/mp/components/form/form/index.json +0 -4
- package/src/mp/components/form/form/index.wxml +0 -5
- package/src/mp/components/form/form/index.wxss +0 -1
- package/src/mp/components/form/formcell/index.js +0 -54
- package/src/mp/components/form/formcell/index.json +0 -4
- package/src/mp/components/form/formcell/index.wxml +0 -11
- package/src/mp/components/form/formcell/index.wxss +0 -31
- package/src/mp/components/form/input/index.js +0 -110
- package/src/mp/components/form/input/index.json +0 -7
- package/src/mp/components/form/input/index.wxml +0 -24
- package/src/mp/components/form/input/index.wxss +0 -22
- package/src/mp/components/form/location/components/mapChoose/index.js +0 -201
- package/src/mp/components/form/location/components/mapChoose/index.json +0 -4
- package/src/mp/components/form/location/components/mapChoose/index.wxml +0 -42
- package/src/mp/components/form/location/components/mapChoose/index.wxss +0 -188
- package/src/mp/components/form/location/index.js +0 -388
- package/src/mp/components/form/location/index.json +0 -6
- package/src/mp/components/form/location/index.wxml +0 -21
- package/src/mp/components/form/location/index.wxss +0 -89
- package/src/mp/components/form/radio/index.js +0 -124
- package/src/mp/components/form/radio/index.json +0 -7
- package/src/mp/components/form/radio/index.wxml +0 -13
- package/src/mp/components/form/radio/index.wxss +0 -1
- package/src/mp/components/form/select/index.js +0 -677
- package/src/mp/components/form/select/index.json +0 -7
- package/src/mp/components/form/select/index.wxml +0 -12
- package/src/mp/components/form/select/index.wxss +0 -16
- package/src/mp/components/form/select/region/index.js +0 -107
- package/src/mp/components/form/switch/index.js +0 -75
- package/src/mp/components/form/switch/index.json +0 -7
- package/src/mp/components/form/switch/index.wxml +0 -11
- package/src/mp/components/form/switch/index.wxss +0 -1
- package/src/mp/components/form/textarea/index.js +0 -90
- package/src/mp/components/form/textarea/index.json +0 -7
- package/src/mp/components/form/textarea/index.wxml +0 -8
- package/src/mp/components/form/textarea/index.wxss +0 -10
- package/src/mp/components/form/tips/index.js +0 -41
- package/src/mp/components/form/tips/index.json +0 -4
- package/src/mp/components/form/tips/index.wxml +0 -1
- package/src/mp/components/form/tips/index.wxss +0 -1
- package/src/mp/components/form/uploader/index.js +0 -158
- package/src/mp/components/form/uploader/index.json +0 -10
- package/src/mp/components/form/uploader/index.wxml +0 -14
- package/src/mp/components/form/uploader/index.wxss +0 -36
- package/src/mp/components/form/uploader/weui-uploader.js +0 -219
- package/src/mp/components/form/uploader/weui-uploader.json +0 -7
- package/src/mp/components/form/uploader/weui-uploader.wxml +0 -45
- package/src/mp/components/form/uploader/weui-uploader.wxss +0 -1
- package/src/mp/components/form/uploaderFile/index.js +0 -313
- package/src/mp/components/form/uploaderFile/index.json +0 -9
- package/src/mp/components/form/uploaderFile/index.wxml +0 -45
- package/src/mp/components/form/uploaderFile/index.wxss +0 -105
- package/src/mp/components/graphicCard/chevron-right.svg +0 -3
- package/src/mp/components/graphicCard/index.js +0 -203
- package/src/mp/components/graphicCard/index.json +0 -4
- package/src/mp/components/graphicCard/index.wxml +0 -25
- package/src/mp/components/graphicCard/index.wxss +0 -157
- package/src/mp/components/image/index.js +0 -182
- package/src/mp/components/image/index.json +0 -7
- package/src/mp/components/image/index.wxml +0 -9
- package/src/mp/components/image/index.wxss +0 -49
- package/src/mp/components/listView/arrow-right-line.svg +0 -3
- package/src/mp/components/listView/index.js +0 -274
- package/src/mp/components/listView/index.json +0 -4
- package/src/mp/components/listView/index.wxml +0 -38
- package/src/mp/components/listView/index.wxss +0 -155
- package/src/mp/components/listView/more-line.svg +0 -3
- package/src/mp/components/lottery/index.js +0 -270
- package/src/mp/components/lottery/index.json +0 -4
- package/src/mp/components/lottery/index.wxml +0 -41
- package/src/mp/components/lottery/index.wxss +0 -323
- package/src/mp/components/modal/index.js +0 -39
- package/src/mp/components/modal/index.json +0 -4
- package/src/mp/components/modal/index.wxml +0 -1
- package/src/mp/components/navLayout/index.js +0 -120
- package/src/mp/components/navLayout/index.json +0 -7
- package/src/mp/components/navLayout/index.wxml +0 -23
- package/src/mp/components/navLayout/index.wxss +0 -1193
- package/src/mp/components/navigationBar/index.js +0 -204
- package/src/mp/components/navigationBar/index.json +0 -5
- package/src/mp/components/navigationBar/index.wxml +0 -80
- package/src/mp/components/navigationBar/index.wxss +0 -1257
- package/src/mp/components/richText/index.js +0 -67
- package/src/mp/components/richText/index.json +0 -4
- package/src/mp/components/richText/index.wxml +0 -3
- package/src/mp/components/richText/index.wxss +0 -27
- package/src/mp/components/scrollView/index.js +0 -119
- package/src/mp/components/scrollView/index.json +0 -4
- package/src/mp/components/scrollView/index.wxml +0 -38
- package/src/mp/components/slot/index.js +0 -20
- package/src/mp/components/slot/index.json +0 -4
- package/src/mp/components/slot/index.wxml +0 -3
- package/src/mp/components/swiper/index.js +0 -65
- package/src/mp/components/swiper/index.json +0 -4
- package/src/mp/components/swiper/index.wxml +0 -3
- package/src/mp/components/tabs/index.js +0 -59
- package/src/mp/components/tabs/index.json +0 -4
- package/src/mp/components/tabs/index.wxml +0 -12
- package/src/mp/components/tabs/index.wxss +0 -57
- package/src/mp/components/text/index.js +0 -40
- package/src/mp/components/text/index.json +0 -4
- package/src/mp/components/text/index.wxml +0 -1
- package/src/mp/components/text/index.wxss +0 -26
- package/src/mp/components/wedaVideo/index.js +0 -86
- package/src/mp/components/wedaVideo/index.json +0 -4
- package/src/mp/components/wedaVideo/index.wxml +0 -4
- package/src/mp/components/wedaVideo/index.wxss +0 -20
- package/src/mp/components/wxOpenApi/phone/index.js +0 -109
- package/src/mp/components/wxOpenApi/phone/index.json +0 -4
- package/src/mp/components/wxOpenApi/phone/index.wxml +0 -4
- package/src/mp/components/wxOpenApi/phone/index.wxss +0 -22
- package/src/mp/components/wxOpenApi/phoneCode/index.js +0 -89
- package/src/mp/components/wxOpenApi/phoneCode/index.json +0 -4
- package/src/mp/components/wxOpenApi/phoneCode/index.wxml +0 -4
- package/src/mp/components/wxOpenApi/phoneCode/index.wxss +0 -22
- package/src/mp/components/wxOpenApi/share/index.js +0 -117
- package/src/mp/components/wxOpenApi/share/index.json +0 -4
- package/src/mp/components/wxOpenApi/share/index.wxml +0 -4
- package/src/mp/components/wxOpenApi/share/index.wxss +0 -22
- package/src/mp/components/wxOpenApi/userInfo/index.js +0 -88
- package/src/mp/components/wxOpenApi/userInfo/index.json +0 -4
- package/src/mp/components/wxOpenApi/userInfo/index.wxml +0 -4
- package/src/mp/components/wxOpenApi/userInfo/index.wxss +0 -22
- package/src/mp/index.json +0 -52
- package/src/mp/package.json +0 -6
- package/src/mp/style/weda-ui.wxss +0 -71
- package/src/mp/utils/classnames.js +0 -39
- package/src/mp/utils/constant.js +0 -20
- package/src/mp/utils/dayjs.min.js +0 -1
- package/src/mp/utils/debounce.js +0 -133
- package/src/mp/utils/deepEqual.js +0 -42
- package/src/mp/utils/destr.js +0 -49
- package/src/mp/utils/dr_square_point.js +0 -29
- package/src/mp/utils/handleEvents.js +0 -32
- package/src/mp/utils/platform.js +0 -45
- package/src/mp/utils/qqmap-wx-jssdk1.2/qqmap-wx-jssdk.js +0 -1336
- package/src/mp/utils/spark-md5.js +0 -776
- package/src/mp/utils/tcb.js +0 -90
- package/src/setupTests.js +0 -14
- package/src/web/actions/showModal/index.tsx +0 -118
- package/src/web/actions/showToast/index.js +0 -3
- package/src/web/components/auth/index.css +0 -0
- package/src/web/components/auth/index.js +0 -66
- package/src/web/components/button/index.tsx +0 -119
- package/src/web/components/calendar/index.jsx +0 -312
- package/src/web/components/calendar/util.js +0 -90
- package/src/web/components/carousel/index.tsx +0 -417
- package/src/web/components/chart/bar/index.tsx +0 -140
- package/src/web/components/chart/common/config/bar.js +0 -49
- package/src/web/components/chart/common/config/global.js +0 -16
- package/src/web/components/chart/common/config/line.js +0 -50
- package/src/web/components/chart/common/config/pie.js +0 -37
- package/src/web/components/chart/common/core/eChartBar.js +0 -259
- package/src/web/components/chart/common/core/eChartBase.ts +0 -396
- package/src/web/components/chart/common/core/eChartLine.js +0 -225
- package/src/web/components/chart/common/core/eChartPie.js +0 -173
- package/src/web/components/chart/common/core/type.ts +0 -34
- package/src/web/components/chart/common/echart.css +0 -106
- package/src/web/components/chart/common/useChart.tsx +0 -87
- package/src/web/components/chart/line/index.tsx +0 -136
- package/src/web/components/chart/pie/index.tsx +0 -99
- package/src/web/components/chart/statisticsCard/index.tsx +0 -307
- package/src/web/components/chart/statisticsCard/interface.ts +0 -14
- package/src/web/components/container/index.tsx +0 -34
- package/src/web/components/dataView/index.tsx +0 -20
- package/src/web/components/drawer/index.tsx +0 -68
- package/src/web/components/form/checkbox/index.tsx +0 -210
- package/src/web/components/form/enumSelect/MultipleSelect.jsx +0 -89
- package/src/web/components/form/enumSelect/NormalSelect.tsx +0 -92
- package/src/web/components/form/enumSelect/SelectContainer.jsx +0 -43
- package/src/web/components/form/enumSelect/props/defaultProps.js +0 -39
- package/src/web/components/form/enumSelect/props/propsTypes.js +0 -50
- package/src/web/components/form/form/index.tsx +0 -51
- package/src/web/components/form/formcell/index.tsx +0 -85
- package/src/web/components/form/input/index.tsx +0 -166
- package/src/web/components/form/location/common/mapChoose.css +0 -180
- package/src/web/components/form/location/common/mapChoose.jsx +0 -343
- package/src/web/components/form/location/common/mapView.jsx +0 -190
- package/src/web/components/form/location/common/propsConfig.js +0 -54
- package/src/web/components/form/location/common/selectModal.jsx +0 -73
- package/src/web/components/form/location/common/useLocationInfo.js +0 -104
- package/src/web/components/form/location/components/LocationH5/index.css +0 -239
- package/src/web/components/form/location/components/LocationH5/location.h5.jsx +0 -413
- package/src/web/components/form/location/components/LocationPC/Header.jsx +0 -96
- package/src/web/components/form/location/components/LocationPC/location.PC.jsx +0 -332
- package/src/web/components/form/location/index.css +0 -0
- package/src/web/components/form/location/index.jsx +0 -25
- package/src/web/components/form/radio/index.tsx +0 -179
- package/src/web/components/form/renderDecorator.tsx +0 -28
- package/src/web/components/form/select/h5.tsx +0 -602
- package/src/web/components/form/select/index.tsx +0 -510
- package/src/web/components/form/select/region/index.ts +0 -152
- package/src/web/components/form/select/time.jsx +0 -145
- package/src/web/components/form/select/year.tsx +0 -172
- package/src/web/components/form/switch/index.tsx +0 -100
- package/src/web/components/form/textarea/index.tsx +0 -127
- package/src/web/components/form/tips/index.tsx +0 -34
- package/src/web/components/form/types.d.ts +0 -12
- package/src/web/components/form/uploader/index.tsx +0 -65
- package/src/web/components/form/uploader/uploader.h5.tsx +0 -290
- package/src/web/components/form/uploader/uploader.pc.tsx +0 -287
- package/src/web/components/form/uploaderFile/fail.svg +0 -12
- package/src/web/components/form/uploaderFile/index.jsx +0 -25
- package/src/web/components/form/uploaderFile/pending.svg +0 -18
- package/src/web/components/form/uploaderFile/success.svg +0 -12
- package/src/web/components/form/uploaderFile/uploadFile.h5.tsx +0 -606
- package/src/web/components/form/uploaderFile/uploadFile.pc.tsx +0 -520
- package/src/web/components/graphicCard/index.tsx +0 -310
- package/src/web/components/image/image.tsx +0 -187
- package/src/web/components/image/index.tsx +0 -121
- package/src/web/components/link/index.tsx +0 -119
- package/src/web/components/listView/arrow-right-line.svg +0 -3
- package/src/web/components/listView/index.tsx +0 -346
- package/src/web/components/listView/interface.ts +0 -98
- package/src/web/components/lottery/index.tsx +0 -567
- package/src/web/components/lottery/lotteryUtil.ts +0 -130
- package/src/web/components/modal/index.tsx +0 -60
- package/src/web/components/navLayout/index.tsx +0 -247
- package/src/web/components/navigationBar/chevron-right--double.svg +0 -3
- package/src/web/components/navigationBar/common.tsx +0 -203
- package/src/web/components/navigationBar/h5Menu.tsx +0 -179
- package/src/web/components/navigationBar/horizontalMenu.tsx +0 -201
- package/src/web/components/navigationBar/index.tsx +0 -231
- package/src/web/components/navigationBar/type.d.ts +0 -118
- package/src/web/components/navigationBar/verticalMenu.tsx +0 -81
- package/src/web/components/phone/index.css +0 -0
- package/src/web/components/phone/index.tsx +0 -22
- package/src/web/components/phoneCode/index.css +0 -0
- package/src/web/components/phoneCode/index.tsx +0 -22
- package/src/web/components/picker/datePicker.tsx +0 -48
- package/src/web/components/picker/picker.tsx +0 -59
- package/src/web/components/picker/timePicker.tsx +0 -56
- package/src/web/components/richText/const.ts +0 -3
- package/src/web/components/richText/index.jsx +0 -473
- package/src/web/components/richTextView/index.tsx +0 -63
- package/src/web/components/scrollView/index.tsx +0 -148
- package/src/web/components/share/index.css +0 -0
- package/src/web/components/share/index.tsx +0 -38
- package/src/web/components/slot/index.tsx +0 -19
- package/src/web/components/swiper/index.tsx +0 -291
- package/src/web/components/tabs/index.tsx +0 -35
- package/src/web/components/tabs/tabs.h5.tsx +0 -84
- package/src/web/components/tabs/tabs.pc.tsx +0 -74
- package/src/web/components/text/index.tsx +0 -60
- package/src/web/components/uploaderFileView/index.jsx +0 -84
- package/src/web/components/uploaderView/index.tsx +0 -92
- package/src/web/components/userInfo/index.css +0 -0
- package/src/web/components/userInfo/index.tsx +0 -30
- package/src/web/components/wedaVideo/index.tsx +0 -208
- package/src/web/types.d.ts +0 -21
- package/src/web/utils/classnames.js +0 -39
- package/src/web/utils/constant.ts +0 -23
- package/src/web/utils/debounce.js +0 -98
- package/src/web/utils/isObjectEqual.js +0 -15
- package/src/web/utils/loading-fallback.tsx +0 -2
- package/src/web/utils/lodash.ts +0 -2
- package/src/web/utils/platform.js +0 -170
- package/src/web/utils/tcb.js +0 -86
- package/src/web/utils/tmap.js +0 -4
- package/src/web/utils/useSetState.ts +0 -18
- package/src/web/utils/useSyncValue.ts +0 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/js/main.chunk.js","sources":["/Users/fengkx/lowcode/weda-ui/src/web/components/button/index.css","/Users/fengkx/lowcode/weda-ui/src/web/components/form/formcell/index.css","/Users/fengkx/lowcode/weda-ui/src/web/components/link/index.css","/Users/fengkx/lowcode/weda-ui/src/web/components/richTextView/index.css","/Users/fengkx/lowcode/weda-ui/src/web/components/text/index.css","/Users/fengkx/lowcode/weda-ui/src/web/components/uploaderFileView/index.css","/Users/fengkx/lowcode/weda-ui/src/web/components/uploaderView/index.css","/Users/fengkx/lowcode/weda-ui/src/web/weda-ui.css","/Users/fengkx/lowcode/weda-ui/src/index.js","/Users/fengkx/lowcode/weda-ui/src/web/actions/index.js","/Users/fengkx/lowcode/weda-ui/src/web/actions/showModal/index.tsx","/Users/fengkx/lowcode/weda-ui/src/web/actions/showToast/index.js","webpack:///./src/web/components/button/index.css?2dd4","/Users/fengkx/lowcode/weda-ui/src/web/components/button/index.tsx","/Users/fengkx/lowcode/weda-ui/src/web/components/container/index.tsx","/Users/fengkx/lowcode/weda-ui/src/web/components/drawer/index.tsx","webpack:///./src/web/components/form/formcell/index.css?c1b7","/Users/fengkx/lowcode/weda-ui/src/web/components/form/formcell/index.tsx","/Users/fengkx/lowcode/weda-ui/src/web/components/form/renderDecorator.tsx","/Users/fengkx/lowcode/weda-ui/src/web/components/form/uploader/uploader.pc.tsx","/Users/fengkx/lowcode/weda-ui/src/web/components/form/uploaderFile/uploadFile.h5.tsx","/Users/fengkx/lowcode/weda-ui/src/web/components/form/uploaderFile/uploadFile.pc.tsx","/Users/fengkx/lowcode/weda-ui/src/web/components/index.js","webpack:///./src/web/components/link/index.css?a32c","/Users/fengkx/lowcode/weda-ui/src/web/components/link/index.tsx","/Users/fengkx/lowcode/weda-ui/src/web/components/richText/const.ts","/Users/fengkx/lowcode/weda-ui/src/web/components/richText/index.tsx","webpack:///./src/web/components/richTextView/index.css?4a11","/Users/fengkx/lowcode/weda-ui/src/web/components/richTextView/index.tsx","/Users/fengkx/lowcode/weda-ui/src/web/components/richtextedit/index.tsx","webpack:///./src/web/components/text/index.css?7762","/Users/fengkx/lowcode/weda-ui/src/web/components/text/index.tsx","webpack:///./src/web/components/uploaderFileView/index.css?62db","/Users/fengkx/lowcode/weda-ui/src/web/components/uploaderFileView/index.jsx","webpack:///./src/web/components/uploaderView/index.css?f5f6","/Users/fengkx/lowcode/weda-ui/src/web/components/uploaderView/index.tsx","/Users/fengkx/lowcode/weda-ui/src/web/index.js","/Users/fengkx/lowcode/weda-ui/src/web/utils/classnames.js","/Users/fengkx/lowcode/weda-ui/src/web/utils/constant.ts","/Users/fengkx/lowcode/weda-ui/src/web/utils/isObjectEqual.js","/Users/fengkx/lowcode/weda-ui/src/web/utils/platform.js","/Users/fengkx/lowcode/weda-ui/src/web/utils/tcb.js","/Users/fengkx/lowcode/weda-ui/src/web/utils/useSetState.ts","/Users/fengkx/lowcode/weda-ui/src/web/utils/weui.js","webpack:///./src/web/weda-ui.css?a1af"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/react-scripts/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".weda-button.weui-btn.weui-btn_primary:not(.weui-btn_disabled):active {\\n background-color: var(--weui-TAG-TEXT-BLUE);\\n}\\n\\n.weda-button.weui-btn_primary {\\n background-color: var(--weui-BRAND);\\n}\\n\\n.weda-button.weui-btn.weui-btn_primary.weui-btn_wechat:not(.weui-btn_disabled):active {\\n background-color: var(--weui-TAG-TEXT-GREEN);\\n}\\n\\n.weda-button.weui-btn_primary.weui-btn_wechat {\\n background-color: var(--weui-WECHAT);\\n}\\n\\n.weda-button.weda-button-mini {\\n font-size: smaller;\\n}\\n.weda-button.weda-button-large {\\n font-size: large;\\n display: block;\\n padding-left: 14px;\\n padding-right: 14px;\\n text-align: center;\\n width: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/web/components/button/index.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,2CAA2C;AAC7C;;AAEA;EACE,mCAAmC;AACrC;;AAEA;EACE,4CAA4C;AAC9C;;AAEA;EACE,oCAAoC;AACtC;;AAEA;EACE,kBAAkB;AACpB;AACA;EACE,gBAAgB;EAChB,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,kBAAkB;EAClB,WAAW;AACb\",\"sourcesContent\":[\".weda-button.weui-btn.weui-btn_primary:not(.weui-btn_disabled):active {\\n background-color: var(--weui-TAG-TEXT-BLUE);\\n}\\n\\n.weda-button.weui-btn_primary {\\n background-color: var(--weui-BRAND);\\n}\\n\\n.weda-button.weui-btn.weui-btn_primary.weui-btn_wechat:not(.weui-btn_disabled):active {\\n background-color: var(--weui-TAG-TEXT-GREEN);\\n}\\n\\n.weda-button.weui-btn_primary.weui-btn_wechat {\\n background-color: var(--weui-WECHAT);\\n}\\n\\n.weda-button.weda-button-mini {\\n font-size: smaller;\\n}\\n.weda-button.weda-button-large {\\n font-size: large;\\n display: block;\\n padding-left: 14px;\\n padding-right: 14px;\\n text-align: center;\\n width: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/react-scripts/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".weda-formcells__flag {\\n display: inline-block;\\n margin-left: 4px;\\n font-family: SimSun;\\n font-size: 12px;\\n color: #f60;\\n align-self: flex-start;\\n}\\n\\n.weda-formcells__label.weui-cell {\\n align-items: flex-start;\\n}\\n\\n.weda-ui .weui-cells__group_form .weui-cells {\\n margin: 0;\\n}\\n.weda-formcells.weui-flex .weda-formcells__label {\\n width: 130px;\\n padding-bottom: 16px;\\n}\\n.weui-cells__group_form .weui-cell {\\n padding: 16px 16px;\\n}\\n\\n.weda-formcells .weda-formcells__label {\\n padding-bottom: 8px;\\n}\\n\\n.weda-formcells__content.weui-flex__item .weui-cell_form {\\n padding: 0;\\n}\\n\\n.weda-formcells__content.weui-flex__item .weui-cell_form {\\n padding-right: 16px;\\n}\\n\\n/* formcell 在 form container 外部兼容 and 独立 layout 适配 */\\n\\n.weda-formcells__pc.vertical .wedatea2td-form__controls,\\n.weda-formcells__pc.vertical .wedatea2td-form__label {\\n display: block;\\n}\\n.weda-formcells__pc.vertical .wedatea2td-form__label {\\n padding-bottom: 0;\\n padding-top: 0;\\n width: auto;\\n margin-bottom: 10px;\\n}\\n\\n.weda-formcells__pc.vertical .wedatea2td-form__help-text {\\n margin-top: 4px;\\n}\\n.weda-formcells__pc.vertical .wedatea2td-form__controls--text {\\n padding-top: 0;\\n}\\n\\n.weda-formcells__pc .wedatea2td-form__controls {\\n display: table-cell;\\n vertical-align: top;\\n padding-bottom: 16px;\\n}\\n.weda-formcells__pc .wedatea2td-form__label {\\n display: table-cell; /*container 外适配*/\\n vertical-align: baseline;\\n padding-top: 7px;\\n padding-bottom: 7px;\\n}\\n.wedatea2td-form .wedatea2td-form__label .wedatea2td-icon {\\n vertical-align: -4px;\\n}\\n.weda-formcells__pc .wedatea2td-form__label label,\\n.weda-formcells__pc .wedatea2td-form__label legend {\\n display: inline-block;\\n transform: translateZ(0);\\n width: 98px;\\n}\\n\\n/*formcell*/\\n\\n.weda-formcells__full-width .wedatea2td-form__controls {\\n width: 100%;\\n}\\n/*formcell end*/\\n\\n/* formcell 在 form container 外部兼容 */\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/web/components/form/formcell/index.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,qBAAqB;EACrB,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;EACf,WAAW;EACX,sBAAsB;AACxB;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,SAAS;AACX;AACA;EACE,YAAY;EACZ,oBAAoB;AACtB;AACA;EACE,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,mBAAmB;AACrB;;AAEA,oDAAoD;;AAEpD;;EAEE,cAAc;AAChB;AACA;EACE,iBAAiB;EACjB,cAAc;EACd,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,eAAe;AACjB;AACA;EACE,cAAc;AAChB;;AAEA;EACE,mBAAmB;EACnB,mBAAmB;EACnB,oBAAoB;AACtB;AACA;EACE,mBAAmB,EAAE,gBAAgB;EACrC,wBAAwB;EACxB,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,oBAAoB;AACtB;AACA;;EAEE,qBAAqB;EACrB,wBAAwB;EACxB,WAAW;AACb;;AAEA,WAAW;;AAEX;EACE,WAAW;AACb;AACA,eAAe;;AAEf,mCAAmC\",\"sourcesContent\":[\".weda-formcells__flag {\\n display: inline-block;\\n margin-left: 4px;\\n font-family: SimSun;\\n font-size: 12px;\\n color: #f60;\\n align-self: flex-start;\\n}\\n\\n.weda-formcells__label.weui-cell {\\n align-items: flex-start;\\n}\\n\\n.weda-ui .weui-cells__group_form .weui-cells {\\n margin: 0;\\n}\\n.weda-formcells.weui-flex .weda-formcells__label {\\n width: 130px;\\n padding-bottom: 16px;\\n}\\n.weui-cells__group_form .weui-cell {\\n padding: 16px 16px;\\n}\\n\\n.weda-formcells .weda-formcells__label {\\n padding-bottom: 8px;\\n}\\n\\n.weda-formcells__content.weui-flex__item .weui-cell_form {\\n padding: 0;\\n}\\n\\n.weda-formcells__content.weui-flex__item .weui-cell_form {\\n padding-right: 16px;\\n}\\n\\n/* formcell 在 form container 外部兼容 and 独立 layout 适配 */\\n\\n.weda-formcells__pc.vertical .wedatea2td-form__controls,\\n.weda-formcells__pc.vertical .wedatea2td-form__label {\\n display: block;\\n}\\n.weda-formcells__pc.vertical .wedatea2td-form__label {\\n padding-bottom: 0;\\n padding-top: 0;\\n width: auto;\\n margin-bottom: 10px;\\n}\\n\\n.weda-formcells__pc.vertical .wedatea2td-form__help-text {\\n margin-top: 4px;\\n}\\n.weda-formcells__pc.vertical .wedatea2td-form__controls--text {\\n padding-top: 0;\\n}\\n\\n.weda-formcells__pc .wedatea2td-form__controls {\\n display: table-cell;\\n vertical-align: top;\\n padding-bottom: 16px;\\n}\\n.weda-formcells__pc .wedatea2td-form__label {\\n display: table-cell; /*container 外适配*/\\n vertical-align: baseline;\\n padding-top: 7px;\\n padding-bottom: 7px;\\n}\\n.wedatea2td-form .wedatea2td-form__label .wedatea2td-icon {\\n vertical-align: -4px;\\n}\\n.weda-formcells__pc .wedatea2td-form__label label,\\n.weda-formcells__pc .wedatea2td-form__label legend {\\n display: inline-block;\\n transform: translateZ(0);\\n width: 98px;\\n}\\n\\n/*formcell*/\\n\\n.weda-formcells__full-width .wedatea2td-form__controls {\\n width: 100%;\\n}\\n/*formcell end*/\\n\\n/* formcell 在 form container 外部兼容 */\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/react-scripts/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".weda-link {\\n text-align: center;\\n display: inline-block;\\n vertical-align: middle;\\n}\\n\\n.weda-link-slot {\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/web/components/link/index.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,sBAAsB;AACxB;;AAEA;AACA\",\"sourcesContent\":[\".weda-link {\\n text-align: center;\\n display: inline-block;\\n vertical-align: middle;\\n}\\n\\n.weda-link-slot {\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/react-scripts/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".weda-RichTextView {\\n font-size: 14px;\\n}\\n.weda-RichTextView blockquote {\\n margin: 0 0 10px;\\n padding: 15px 20px;\\n background-color: #f1f2f3;\\n border-left: 5px solid #ccc;\\n color: #666;\\n font-style: italic;\\n}\\n\\n.weda-RichTextView pre {\\n max-width: 100%;\\n max-height: 100%;\\n margin: 10px 0;\\n padding: 15px;\\n overflow: auto;\\n background-color: #f1f2f3;\\n border-radius: 3px;\\n color: #666;\\n font-family: monospace;\\n font-size: 1em;\\n /* font-weight: 400; */\\n font-weight: inherit;\\n line-height: 1.14285em;\\n word-wrap: break-word;\\n white-space: pre-wrap;\\n}\\n\\n.weda-RichTextView h1 {\\n font-size: 2em;\\n}\\n\\n.weda-RichTextView h2 {\\n font-size: 1.5em;\\n}\\n\\n.weda-RichTextView h3 {\\n font-size: 1.17em;\\n}\\n\\n.weda-RichTextView h4 {\\n font-size: 1em;\\n}\\n\\n.weda-RichTextView h5 {\\n font-size: 0.83em;\\n}\\n\\n.weda-RichTextView h6 {\\n font-size: 0.67em;\\n}\\n\\n.weda-RichTextView ul {\\n list-style: disc !important;\\n padding: revert !important;\\n}\\n\\n.weda-RichTextView ol {\\n list-style: decimal !important;\\n padding: revert !important;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/web/components/richTextView/index.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,yBAAyB;EACzB,2BAA2B;EAC3B,WAAW;EACX,kBAAkB;AACpB;;AAEA;EACE,eAAe;EACf,gBAAgB;EAChB,cAAc;EACd,aAAa;EACb,cAAc;EACd,yBAAyB;EACzB,kBAAkB;EAClB,WAAW;EACX,sBAAsB;EACtB,cAAc;EACd,sBAAsB;EACtB,oBAAoB;EACpB,sBAAsB;EACtB,qBAAqB;EACrB,qBAAqB;AACvB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,2BAA2B;EAC3B,0BAA0B;AAC5B;;AAEA;EACE,8BAA8B;EAC9B,0BAA0B;AAC5B\",\"sourcesContent\":[\".weda-RichTextView {\\n font-size: 14px;\\n}\\n.weda-RichTextView blockquote {\\n margin: 0 0 10px;\\n padding: 15px 20px;\\n background-color: #f1f2f3;\\n border-left: 5px solid #ccc;\\n color: #666;\\n font-style: italic;\\n}\\n\\n.weda-RichTextView pre {\\n max-width: 100%;\\n max-height: 100%;\\n margin: 10px 0;\\n padding: 15px;\\n overflow: auto;\\n background-color: #f1f2f3;\\n border-radius: 3px;\\n color: #666;\\n font-family: monospace;\\n font-size: 1em;\\n /* font-weight: 400; */\\n font-weight: inherit;\\n line-height: 1.14285em;\\n word-wrap: break-word;\\n white-space: pre-wrap;\\n}\\n\\n.weda-RichTextView h1 {\\n font-size: 2em;\\n}\\n\\n.weda-RichTextView h2 {\\n font-size: 1.5em;\\n}\\n\\n.weda-RichTextView h3 {\\n font-size: 1.17em;\\n}\\n\\n.weda-RichTextView h4 {\\n font-size: 1em;\\n}\\n\\n.weda-RichTextView h5 {\\n font-size: 0.83em;\\n}\\n\\n.weda-RichTextView h6 {\\n font-size: 0.67em;\\n}\\n\\n.weda-RichTextView ul {\\n list-style: disc !important;\\n padding: revert !important;\\n}\\n\\n.weda-RichTextView ol {\\n list-style: decimal !important;\\n padding: revert !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/react-scripts/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".weda-text {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n display: -webkit-box;\\n -webkit-box-orient: vertical;\\n /* -webkit-line-clamp: 1;\\n white-space: pre-line; */\\n}\\n.weda-text.level_1 {\\n font-size: 64px !important;\\n}\\n.weda-text.level_2 {\\n font-size: 56px !important;\\n}\\n.weda-text.level_3 {\\n font-size: 48px !important;\\n}\\n.weda-text.level_4 {\\n font-size: 40px !important;\\n}\\n.weda-text.level_5 {\\n font-size: 32px !important;\\n}\\n.weda-text.level_6 {\\n font-size: 24px !important;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/web/components/text/index.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,uBAAuB;EACvB,gBAAgB;EAChB,oBAAoB;EACpB,4BAA4B;EAC5B;0BACwB;AAC1B;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,0BAA0B;AAC5B\",\"sourcesContent\":[\".weda-text {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n display: -webkit-box;\\n -webkit-box-orient: vertical;\\n /* -webkit-line-clamp: 1;\\n white-space: pre-line; */\\n}\\n.weda-text.level_1 {\\n font-size: 64px !important;\\n}\\n.weda-text.level_2 {\\n font-size: 56px !important;\\n}\\n.weda-text.level_3 {\\n font-size: 48px !important;\\n}\\n.weda-text.level_4 {\\n font-size: 40px !important;\\n}\\n.weda-text.level_5 {\\n font-size: 32px !important;\\n}\\n.weda-text.level_6 {\\n font-size: 24px !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/react-scripts/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"a.weda-uploader-file-view__single {\\n display: inline-block;\\n vertical-align: middle;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n max-width: 100%;\\n}\\na.weda-uploader-file-view__single:hover {\\n text-decoration: underline;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/web/components/uploaderFileView/index.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,qBAAqB;EACrB,sBAAsB;EACtB,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,eAAe;AACjB;AACA;EACE,0BAA0B;AAC5B\",\"sourcesContent\":[\"a.weda-uploader-file-view__single {\\n display: inline-block;\\n vertical-align: middle;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n max-width: 100%;\\n}\\na.weda-uploader-file-view__single:hover {\\n text-decoration: underline;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/react-scripts/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".g-uploader-view {\\n margin: 0;\\n padding: 0;\\n}\\n\\n.g-uploader-view .g-uploader-view__image-list {\\n display: flex;\\n flex-wrap: wrap;\\n}\\n\\n.g-uploader-view .g-uploader-view__image-box {\\n height: 100px;\\n width: 100px;\\n margin-right: 8px;\\n margin-bottom: 8px;\\n background: #f2f2f2;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.g-uploader-view .g-uploader-view__empty {\\n padding: 8px;\\n background-image: url('https://main.qcloudimg.com/raw/c85c9a875e9754545ee19f20438b2caa.svg');\\n}\\n\\n.g-uploader-view .g-uploader-view__image {\\n width: 100%;\\n height: auto;\\n max-height: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/web/components/uploaderView/index.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,SAAS;EACT,UAAU;AACZ;;AAEA;EACE,aAAa;EACb,eAAe;AACjB;;AAEA;EACE,aAAa;EACb,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;EACnB,aAAa;EACb,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,YAAY;EACZ,4FAA4F;AAC9F;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,gBAAgB;AAClB\",\"sourcesContent\":[\".g-uploader-view {\\n margin: 0;\\n padding: 0;\\n}\\n\\n.g-uploader-view .g-uploader-view__image-list {\\n display: flex;\\n flex-wrap: wrap;\\n}\\n\\n.g-uploader-view .g-uploader-view__image-box {\\n height: 100px;\\n width: 100px;\\n margin-right: 8px;\\n margin-bottom: 8px;\\n background: #f2f2f2;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.g-uploader-view .g-uploader-view__empty {\\n padding: 8px;\\n background-image: url('https://main.qcloudimg.com/raw/c85c9a875e9754545ee19f20438b2caa.svg');\\n}\\n\\n.g-uploader-view .g-uploader-view__image {\\n width: 100%;\\n height: auto;\\n max-height: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/react-scripts/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/**\\n * 组件库通用样式\\n */\\n\\nbody .weda-ui {\\n --weui-BRAND: #006eff;\\n --weui-TAG-TEXT-BLUE: #0067eb;\\n --weui-BTN-DEFAULT-COLOR: #576b95;\\n --weui-WECHAT: #07c160;\\n --weui-TAG-TEXT-GREEN: #06ae56;\\n --weui-BG-2: rgba(255, 255, 255, 0);\\n}\\n\\n.weda-ui.weui-form {\\n min-height: 0%;\\n padding: 0;\\n}\\n\\n.weda-ui .weui-cells {\\n margin-top: 0;\\n}\\n\\n.weda-ui.weui-form .weui-cells__tips {\\n margin-bottom: 16px;\\n}\\n\\n.weda-ui.weda-picker {\\n --weui-BG-2: rgba(255, 255, 255, 1);\\n}\\n\\n/* 为了避免该属性被转为REM, 所以使用大写的PX */\\n.weda-ui.weda-picker .weui-picker__item {\\n /* prettier-ignore */\\n height: 48PX;\\n /* prettier-ignore */\\n line-height: 48PX;\\n}\\n\\n.weda-ui.weda-picker .weui-btn_primary:not(.weui-btn_disabled):active {\\n background-color: var(--weui-TAG-TEXT-BLUE);\\n}\\n\\n@media (min-width: 1024px) {\\n .weda-ui .weui-cells {\\n /* prettier-ignore */\\n font-size: 1em;\\n }\\n}\\n@media (min-width: 1024px) {\\n .weui .weui-cell_active:active {\\n background-color: unset !important;\\n }\\n}\\n\\n.weda-ui.weda-radio .weui-check,\\n.weda-ui.weda-checkbox .weui-check {\\n position: absolute;\\n left: -9999px;\\n width: 0;\\n height: 0;\\n}\\n\\n.weda-ui .weui-cell {\\n font-size: inherit; /* 要让内联样式生效 */\\n}\\n\\n.weda-ui .weui-cells {\\n font-size: 1em;\\n}\\n\\n.weui-picker a:link:hover {\\n text-decoration: none;\\n}\\n\\n.weda-formcells__pc.vertical .wedatea2td-form__label label {\\n width: auto; /* vertcal 情况下label不固定宽度 */\\n}\\n\\n.weda-ui .weui-btn_input-clear {\\n visibility: hidden; /* visibilty 防止居中而且宽度auto时,出现输入时宽度抖动 */\\n display: inline;\\n}\\n.weui-input:focus:not(:-moz-placeholder-shown) + .weui-btn_input-clear {\\n visibility: visible;\\n display: inline;\\n}\\n.weui-input:focus:not(:-ms-input-placeholder) + .weui-btn_input-clear {\\n visibility: visible;\\n display: inline;\\n}\\n.weui-input:focus:not(:placeholder-shown) + .weui-btn_input-clear {\\n visibility: visible;\\n display: inline;\\n}\\n\\n.weda-ui .wedatea2td-form__controls {\\n font-size: 1em;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/web/weda-ui.css\"],\"names\":[],\"mappings\":\"AAAA;;EAEE;;AAEF;EACE,qBAAqB;EACrB,6BAA6B;EAC7B,iCAAiC;EACjC,sBAAsB;EACtB,8BAA8B;EAC9B,mCAAmC;AACrC;;AAEA;EACE,cAAc;EACd,UAAU;AACZ;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,mCAAmC;AACrC;;AAEA,6BAA6B;AAC7B;EACE,oBAAoB;EACpB,YAAY;EACZ,oBAAoB;EACpB,iBAAiB;AACnB;;AAEA;EACE,2CAA2C;AAC7C;;AAEA;EACE;IACE,oBAAoB;IACpB,cAAc;EAChB;AACF;AACA;EACE;IACE,kCAAkC;EACpC;AACF;;AAEA;;EAEE,kBAAkB;EAClB,aAAa;EACb,QAAQ;EACR,SAAS;AACX;;AAEA;EACE,kBAAkB,EAAE,aAAa;AACnC;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,WAAW,EAAE,0BAA0B;AACzC;;AAEA;EACE,kBAAkB,EAAE,sCAAsC;EAC1D,eAAe;AACjB;AACA;EACE,mBAAmB;EACnB,eAAe;AACjB;AAHA;EACE,mBAAmB;EACnB,eAAe;AACjB;AAHA;EACE,mBAAmB;EACnB,eAAe;AACjB;;AAEA;EACE,cAAc;AAChB\",\"sourcesContent\":[\"/**\\n * 组件库通用样式\\n */\\n\\nbody .weda-ui {\\n --weui-BRAND: #006eff;\\n --weui-TAG-TEXT-BLUE: #0067eb;\\n --weui-BTN-DEFAULT-COLOR: #576b95;\\n --weui-WECHAT: #07c160;\\n --weui-TAG-TEXT-GREEN: #06ae56;\\n --weui-BG-2: rgba(255, 255, 255, 0);\\n}\\n\\n.weda-ui.weui-form {\\n min-height: 0%;\\n padding: 0;\\n}\\n\\n.weda-ui .weui-cells {\\n margin-top: 0;\\n}\\n\\n.weda-ui.weui-form .weui-cells__tips {\\n margin-bottom: 16px;\\n}\\n\\n.weda-ui.weda-picker {\\n --weui-BG-2: rgba(255, 255, 255, 1);\\n}\\n\\n/* 为了避免该属性被转为REM, 所以使用大写的PX */\\n.weda-ui.weda-picker .weui-picker__item {\\n /* prettier-ignore */\\n height: 48PX;\\n /* prettier-ignore */\\n line-height: 48PX;\\n}\\n\\n.weda-ui.weda-picker .weui-btn_primary:not(.weui-btn_disabled):active {\\n background-color: var(--weui-TAG-TEXT-BLUE);\\n}\\n\\n@media (min-width: 1024px) {\\n .weda-ui .weui-cells {\\n /* prettier-ignore */\\n font-size: 1em;\\n }\\n}\\n@media (min-width: 1024px) {\\n .weui .weui-cell_active:active {\\n background-color: unset !important;\\n }\\n}\\n\\n.weda-ui.weda-radio .weui-check,\\n.weda-ui.weda-checkbox .weui-check {\\n position: absolute;\\n left: -9999px;\\n width: 0;\\n height: 0;\\n}\\n\\n.weda-ui .weui-cell {\\n font-size: inherit; /* 要让内联样式生效 */\\n}\\n\\n.weda-ui .weui-cells {\\n font-size: 1em;\\n}\\n\\n.weui-picker a:link:hover {\\n text-decoration: none;\\n}\\n\\n.weda-formcells__pc.vertical .wedatea2td-form__label label {\\n width: auto; /* vertcal 情况下label不固定宽度 */\\n}\\n\\n.weda-ui .weui-btn_input-clear {\\n visibility: hidden; /* visibilty 防止居中而且宽度auto时,出现输入时宽度抖动 */\\n display: inline;\\n}\\n.weui-input:focus:not(:placeholder-shown) + .weui-btn_input-clear {\\n visibility: visible;\\n display: inline;\\n}\\n\\n.weda-ui .wedatea2td-form__controls {\\n font-size: 1em;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/* eslint-disable import/export */\n\nexport * from './web/index';\nexport { default as default } from './web/index';\n","export { default as showToast } from './showToast';\nexport { default as showModal } from './showModal';\n","import * as ReactDOM from 'react-dom';\nimport * as React from 'react';\nimport { forwardRef, useState, useEffect, useImperativeHandle } from 'react';\nimport { Modal, Button, Text, ModalProps, ConfigProvider } from 'tea-component';\nimport type {\n ModalShowHandle,\n ModalShowOptions,\n} from 'tea-component/lib/modal/ModalShow';\n\ninterface ModalShowInstance {\n setVisible: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nconst ModalShow = forwardRef(function ModalShow(\n props: ModalProps,\n ref: React.Ref<ModalShowInstance>\n) {\n const [visible, setVisible] = useState(false);\n\n // 渲染之后,马上显示\n useEffect(() => {\n setVisible(true);\n }, []);\n\n // 实例 ref 到外部\n useImperativeHandle(ref, () => ({ setVisible }));\n\n return <Modal {...props} visible={visible} />;\n});\n\nfunction show(options: ModalShowOptions): ModalShowHandle {\n const el = document.createElement('div');\n\n const instanceRef = React.createRef<ModalShowInstance>();\n\n ReactDOM.render(\n <ConfigProvider classPrefix=\"wedatea2td\">\n <ModalShow\n {...options}\n ref={instanceRef}\n onExited={() => ReactDOM.unmountComponentAtNode(el)}\n />\n </ConfigProvider>,\n el\n );\n\n return {\n destroy: () => {\n if (instanceRef.current) {\n instanceRef.current.setVisible(false);\n }\n },\n };\n}\n\nexport default async function showModal({ data }) {\n const {\n title,\n content,\n showCancel,\n cancelText = '取消',\n cancelColor,\n confirmText = '确定',\n confirmColor,\n success = () => {},\n fail = () => {},\n complete = () => {},\n } = data;\n\n return new Promise((resolve) => {\n const base = { cancel: false, confirm: false, content: null };\n\n const modal = show({\n caption: title,\n children: (\n <>\n <Modal.Body>{content}</Modal.Body>\n <Modal.Footer>\n <Button\n // type=\"primary\"\n onClick={() => {\n resolve({ ...base, confirm: true });\n modal.destroy();\n }}\n >\n <Text style={{ color: confirmColor }}>{confirmText}</Text>\n </Button>\n {showCancel && (\n <Button\n onClick={() => {\n resolve({ ...base, cancel: true });\n modal.destroy();\n }}\n >\n <Text style={{ color: cancelColor }}>{cancelText}</Text>\n </Button>\n )}\n </Modal.Footer>\n </>\n ),\n onClose: () => {\n resolve({ ...base, cancel: true });\n modal.destroy();\n },\n });\n }).then(\n (res) => {\n success && success(res);\n return res;\n },\n (e) => {\n // console.log(e);\n fail && fail();\n complete && complete();\n throw e;\n }\n );\n}\n","export default function showToast(/* { data, event } */) {\n // console.log({ data, event });\n}\n","var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (module.hot) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n\n var p;\n\n for (p in a) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (a[p] !== b[p]) {\n return false;\n }\n }\n\n for (p in b) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!a[p]) {\n return false;\n }\n }\n\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n \"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\",\n function () {\n content = require(\"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};","import * as React from 'react';\nimport {\n Button as TeaButton,\n ButtonProps,\n ConfigProvider,\n} from 'tea-component';\nimport classNames from '../../utils/classnames';\nimport { usePlatform } from '../../utils/platform';\nimport type { CommonPropsType, unknownFunction } from '../../types';\n\nimport './index.css';\nimport { emptyObject } from '../../utils/constant';\n\n// 不用 react-weui 而直接用底层实现的原因是 react-weui 不能支持表单类型\nconst Button = ({\n text,\n size,\n type,\n contentSlot,\n formType,\n loading,\n disabled,\n events = emptyObject as Record<string, unknownFunction>,\n className,\n style,\n id,\n}: PropsType) => {\n const platform: string = usePlatform();\n const isH5: boolean = platform === 'h5';\n const cls = classNames({\n 'weda-ui': true,\n 'weda-button': true,\n 'weda-button-large': size === 'large',\n 'weda-button-mini': size === 'mini',\n 'weui-btn': isH5,\n 'weui-btn_mini': isH5 && size === 'mini',\n 'weui-btn_primary': isH5 && (type === 'primary' || type === 'wechat'),\n 'weui-btn_default': isH5 && type === 'default',\n 'weui-btn_warn': isH5 && type === 'warn',\n 'weui-btn_wechat': isH5 && type === 'wechat',\n 'weui-btn_disabled': isH5 && disabled,\n [className]: className,\n });\n const onClick = (e) => {\n if (events.tap) {\n events.tap({}, { originEvent: e });\n }\n };\n\n if (platform === 'h5') {\n return (\n <button\n className={cls}\n disabled={disabled}\n type={formType}\n style={style}\n id={id}\n onClick={onClick}\n >\n {loading && (\n <span className=\"weui-btn_loading\">\n <i className=\"weui-loading\" />\n </span>\n )}\n {text ? text : contentSlot}\n </button>\n );\n }\n\n return (\n <ConfigProvider classPrefix=\"wedatea2td\">\n <TeaButton\n loading={loading}\n onClick={onClick}\n disabled={disabled}\n htmlType={formType}\n type={toTeaButtonType(type)}\n style={style}\n className={cls}\n id={id}\n >\n {text ? text : contentSlot}\n </TeaButton>\n </ConfigProvider>\n );\n};\n\nfunction toTeaButtonType(type: PropsType['type']): ButtonProps['type'] {\n if (type === 'primary') return type;\n if (type === 'warn') return 'error';\n if (type === 'default') return 'primary';\n return 'primary';\n}\n\nexport interface PropsType extends CommonPropsType {\n /**\n * 内容\n */\n text?: string;\n /**\n * 样式类型\n */\n type?: 'primary' | 'warn' | 'wechat' | 'default';\n /**\n * 大小\n */\n size?: 'default' | 'mini' | 'large';\n /**\n * 是否禁用\n */\n disabled?: boolean;\n /**\n * 加载中\n */\n loading?: boolean;\n\n /**\n * 用于 form 类型\n */\n formType?: 'button' | 'submit' | 'reset';\n contentSlot?: string;\n}\n\nexport default Button;\n","import * as React from 'react';\nimport type { CommonPropsType } from '../../types';\nimport classNames from '../../utils/classnames';\nimport { emptyObject } from '../../utils/constant';\n\nexport default function Container({\n children,\n title,\n events = emptyObject,\n className,\n style,\n id,\n}: PropsType) {\n return (\n <div\n role=\"container\"\n id={id}\n style={style}\n className={classNames({ 'weda-ui': true, [className]: className })}\n title={title}\n onClick={(e) => events?.tap?.({}, { originEvent: e })}\n onContextMenu={(e) => events?.longpress?.({}, { originEvent: e })}\n onTouchStart={(e) => events?.touchstart?.({}, { originEvent: e })}\n onTouchMove={(e) => events?.touchmove?.({}, { originEvent: e })}\n onTouchCancel={(e) => events?.touchcancel?.({}, { originEvent: e })}\n onTouchEnd={(e) => events?.touchend?.({}, { originEvent: e })}\n >\n {children}\n </div>\n );\n}\n\nexport interface PropsType extends CommonPropsType {\n title?: string;\n}\n","import * as React from 'react';\nimport { ConfigProvider, Drawer, DrawerProps } from 'tea-component';\nimport type { CommonPropsType } from '../../types';\n\nconst TeaDrawer = ({\n size,\n title,\n style,\n events,\n visible,\n subtitle,\n showMask,\n className,\n placement,\n extraSlot,\n footerSlot,\n childrenSlot,\n disableCloseIcon,\n outerClickClosable,\n}: PropsType) => {\n const eventsList = {\n onClose: () => events?.onClose && events.onClose({}),\n onExited: () => events?.onExited && events.onExited({}),\n };\n return (\n <ConfigProvider classPrefix=\"wedatea2td\">\n <Drawer\n size={size}\n title={title}\n style={style}\n visible={visible}\n extra={extraSlot}\n footer={footerSlot}\n subtitle={subtitle}\n showMask={showMask}\n className={className}\n placement={placement}\n disableCloseIcon={disableCloseIcon}\n outerClickClosable={outerClickClosable}\n {...eventsList}\n >\n {childrenSlot}\n </Drawer>\n </ConfigProvider>\n );\n};\n\nexport interface PropsType\n extends CommonPropsType,\n Pick<\n DrawerProps,\n | 'size'\n | 'title'\n | 'showMask'\n | 'placement'\n | 'disableCloseIcon'\n | 'outerClickClosable'\n | 'subtitle'\n > {\n visible: boolean;\n title?: string;\n extraSlot?: React.ReactNode;\n footerSlot?: React.ReactNode;\n childrenSlot?: React.ReactNode;\n}\n\nexport default TeaDrawer;\nexport { TeaDrawer };\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (module.hot) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n\n var p;\n\n for (p in a) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (a[p] !== b[p]) {\n return false;\n }\n }\n\n for (p in b) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!a[p]) {\n return false;\n }\n }\n\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n \"!!../../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\",\n function () {\n content = require(\"!!../../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};","import * as React from 'react';\n\nimport classNames from '../../../utils/classnames';\nimport './index.css';\nimport { usePlatform } from '../../../utils/platform';\nimport { ConfigProvider, Form as TeaForm } from 'tea-component';\nimport type { CommonFormPropsType } from '../types';\n\nexport default function FormCell({\n className,\n style,\n label,\n layout,\n children,\n multiCell,\n requiredFlag,\n size,\n}: PropsType) {\n const platform = usePlatform();\n const isFlex = layout !== 'vertical';\n\n if (platform === 'pc') {\n return (\n <ConfigProvider classPrefix=\"wedatea2td\">\n <TeaForm.Item\n style={style}\n className={classNames({\n 'weda-ui': true,\n 'weui-cells_forms': !multiCell,\n 'weui-cells_checkbox': multiCell,\n 'weda-formcells__pc': !!label,\n 'weda-formcells__full-width': size === 'full',\n [layout]: layout,\n [className]: [className],\n })}\n label={label}\n required={requiredFlag}\n >\n {children}\n </TeaForm.Item>\n </ConfigProvider>\n );\n }\n return (\n <div className={className} style={style}>\n <div\n className={classNames({\n 'weda-formcells': true,\n 'weui-cells': true,\n 'weui-cells_forms': !multiCell,\n 'weui-cells_checkbox': multiCell,\n 'weui-flex': isFlex,\n })}\n >\n {label ? (\n <div\n className={classNames({\n 'weda-formcells__label': true,\n // 标题也采用使用weui-cell的样式\n 'weui-cell': true,\n })}\n >\n <label>{label}</label>\n {requiredFlag ? (\n <label className=\"weda-formcells__flag\">*</label>\n ) : null}\n </div>\n ) : null}\n <div\n className={classNames({\n 'weda-formcells__content': true,\n 'weui-flex__item': isFlex,\n })}\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nexport interface PropsType extends CommonFormPropsType {\n multiCell?: boolean;\n size?: string;\n}\n","import * as React from 'react';\nimport FormCell from './formcell';\n\n/**\n *\n * @returns {(props: any) => JSX.Element}\n */\nexport function renderDecorator<D = any>(\n filedNode: React.ReactNode,\n DecoratorComponent: React.FC<D> = FormCell\n) {\n if (!DecoratorComponent) {\n return function WedaFormField() {\n return <React.Fragment>{filedNode}</React.Fragment>;\n };\n }\n\n return function WedaFormFiled(decoratorProps) {\n if (Array.isArray(DecoratorComponent) && DecoratorComponent.length === 2) {\n decoratorProps = DecoratorComponent[1];\n DecoratorComponent = DecoratorComponent[0];\n }\n\n return (\n <DecoratorComponent {...decoratorProps}>{filedNode}</DecoratorComponent>\n );\n };\n}\n","import * as React from 'react';\nimport {\n Upload,\n Button,\n Icon,\n message,\n ErrorTip,\n ImagePreview,\n ConfigProvider,\n} from 'tea-component';\nimport classNames from '../../../utils/classnames';\nimport { getCloudInstance, getTempFileURL } from '../../../utils/tcb';\nimport { isCloudFileID, randomStr } from '../../../utils/platform';\nimport isObjectEqual from '../../../utils/isObjectEqual';\nimport { H5UploaderProps } from './uploader.h5';\nimport { emptyObject } from '../../../utils/constant';\n// 默认组件类前缀\nexport const CLASS_PREFIX = 'weda-uploader-pc';\n// 默认图片类型\nexport const IMAGE_TYPES = [\n 'image/jpg',\n 'image/png',\n 'image/tif',\n 'image/bmp',\n 'image/jpeg',\n 'image/tiff',\n];\n\n/**\n * 上传图片-官方组件\n */\n// eslint-disable-next-line react/prop-types\nexport function UploaderPC({\n layout,\n className,\n id,\n style,\n title,\n tips,\n ...props\n}) {\n const cls = classNames({\n 'weda-ui': true,\n [CLASS_PREFIX]: true,\n [layout]: layout,\n [className]: className,\n });\n return (\n <div className={cls} id={id} style={style}>\n <div className={`${CLASS_PREFIX}__header`}>\n {title && <div className={`${CLASS_PREFIX}__title`}>{title}</div>}\n {tips && (\n <div className={`${CLASS_PREFIX}__description`}>{tips || ''}</div>\n )}\n </div>\n <UploaderPCInner {...props} />\n </div>\n );\n}\n\nexport function UploaderPCInner(props) {\n const {\n tips = '',\n btnTitle = '上传图片',\n maxUploadCount = 9,\n maxSize = 10,\n value: defaultValue, // 需要兼容 cloud:和https: 协议,需要兼容 字符串和字符串数组\n acceptTypes = IMAGE_TYPES,\n uploadPath = 'weda-uploader',\n events = emptyObject,\n single = false,\n onChange,\n } = props;\n\n // 上传中\n const [uploading, setUploading] = React.useState(false);\n //上传进度\n const [progress, setProgress] = React.useState(0);\n // 文件列表\n const [fileIDList, setfileIDList] = React.useState([]);\n const fileRef = React.useRef<string[] | string>([]);\n React.useEffect(() => {\n let initialValue = []\n .concat(defaultValue)\n .filter((d) => typeof d === 'string' && d !== '');\n if (single) {\n initialValue = initialValue[0] ? [initialValue[0]] : [];\n }\n setfileIDList(initialValue);\n }, [defaultValue]);\n\n // 值变化事件\n React.useEffect(() => {\n if (!isObjectEqual(fileRef.current, fileIDList)) {\n if (single) {\n const file = fileIDList[0] || '';\n onChange && onChange(file);\n events.change && events.change({ value: file });\n } else {\n onChange && onChange(fileIDList);\n events.change && events.change({ value: fileIDList });\n }\n fileRef.current = fileIDList;\n }\n });\n\n // 方法:上传前,判断图片大小、数量是否满足,取消默认组件的上传事件,用自定义的 tcb 上传方法\n const beforeHandle = (file, fileList, isAccepted, error) => {\n if (!isAccepted) {\n try {\n const errorList = [];\n if (error.find((item) => item?.code === 'file-invalid-type')) {\n errorList.push('上传图片类型错误');\n }\n if (error.find((item) => item?.code === 'file-too-large')) {\n errorList.push(`上传图片大小不能超过${maxSize}M`);\n }\n message.error({ content: errorList.join(', ') });\n } catch (e) {}\n return false;\n }\n uploadTcb(file);\n return false;\n };\n\n // 自定义上传到 Tcb 的 COS\n const uploadTcb = (file) => {\n setUploading(true);\n getCloudInstance().then(async (tcb) => {\n try {\n const cloudPath = `${uploadPath}/${randomStr()}-${file?.name}`;\n const { fileID } = await tcb.uploadFile({\n cloudPath,\n filePath: file,\n onUploadProgress: onProgress,\n });\n fileID && setfileIDList((list) => [...list, fileID]);\n fileID && events.success && events.success({ value: fileID, file });\n } catch (err) {\n message.error({ content: `${err}` || '上传失败' });\n events.error && events.error(err);\n } finally {\n setUploading(false);\n setProgress(0);\n }\n });\n };\n\n // 计算上传进度\n const onProgress = (progressEvent) => {\n let percentCompleted = 0;\n try {\n percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total\n );\n percentCompleted < 100 ? percentCompleted : 100;\n } catch (e) {}\n setProgress(percentCompleted);\n };\n\n // 删除图片\n const deleteHandle = (fileID) => {\n setfileIDList((list) => list.filter((d) => d !== fileID));\n };\n\n // 转换后的属性\n const extraProps = {};\n extraProps['accept'] =\n acceptTypes.includes('image/*') || acceptTypes.length === 0\n ? IMAGE_TYPES\n : Array.from(new Set(acceptTypes));\n tips && (extraProps['title'] = tips);\n maxSize && (extraProps['maxSize'] = maxSize * 1024 * 1024);\n\n return (\n <ConfigProvider classPrefix=\"wedatea2td\">\n <div className=\"_weda-fn-upload-result\">\n {fileIDList.map((d) => (\n <div className=\"_weda-fn-upload-result__item\" key={d}>\n <TcbImage fileID={d} />\n <div className=\"_weda-fn-upload-result__op\">\n <Button\n onClick={() => deleteHandle(d)}\n className={`${CLASS_PREFIX}__btn`}\n >\n 删除\n </Button>\n </div>\n </div>\n ))}\n {uploading && (\n <div className=\"_weda-fn-upload-result__item\">\n <div className=\"_weda-fn-upload-result__status\" key=\"_place_image\">\n <Icon type=\"loading\" />\n {!!progress && (\n <span className=\"wedatea2td-mt-1n wedatea2td-text-label wedatea2td-fz-reset\">\n 上传{progress}%...\n </span>\n )}\n </div>\n </div>\n )}\n <div className={`${CLASS_PREFIX}__input-box`}>\n {((!single && fileIDList.length < maxUploadCount) ||\n (single && fileIDList.length < 1)) && ( // single 模式时,仅当数组为空时显示\n <Upload {...extraProps} beforeUpload={beforeHandle}>\n <li className=\"_weda-fn-upload-result__item _weda-fn-upload-result__item--upload\">\n <div className=\"_weda-fn-upload-result__status\">\n <i\n className=\"wedatea2td-icon wedatea2td-icon-plus\"\n role=\"img\"\n aria-label=\"plus\"\n ></i>\n <span className=\"wedatea2td-mt-1n wedatea2td-text-label wedatea2td-fz-reset\">\n {btnTitle}\n </span>\n </div>\n </li>\n </Upload>\n )}\n </div>\n </div>\n </ConfigProvider>\n );\n}\n\nexport interface TcbImageProps {\n fileID?: string; // 云存储id\n isZoom?: boolean; // 是否点击放大\n onError?: (e: unknown) => void; // 图片显示错误事件\n}\nexport const TcbImage = (props: TcbImageProps) => {\n const { fileID, isZoom, ...rest } = props;\n const [src, setSrc] = React.useState('');\n const [isError, setIsError] = React.useState(false);\n React.useEffect(() => {\n const getSrc = async () => {\n try {\n const _src = await getTempFileURL(fileID);\n _src ? setSrc(_src) : setIsError(true);\n } catch (e) {\n message.error({ content: '图片加载失败' });\n }\n };\n isCloudFileID(fileID) ? getSrc() : setSrc(fileID);\n }, [fileID]);\n\n return isError ? (\n <ErrorTip />\n ) : src ? (\n isZoom ? (\n <ImagePreview\n key={fileID}\n className={`${CLASS_PREFIX}__image`}\n {...rest}\n src={src}\n previewSrc={src}\n /** @ts-expect-error tea imagepreview onError */\n onError={(e) => {\n setIsError(true);\n props?.onError && props.onError(e);\n }}\n />\n ) : (\n <img\n key={fileID}\n className={`${CLASS_PREFIX}__image`}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n src={src}\n onError={(e) => {\n setIsError(true);\n props?.onError && props.onError(e);\n }}\n />\n )\n ) : null;\n};\n\nexport interface PropsType extends H5UploaderProps {\n tips?: string;\n value: string | string[];\n btnTitle?: string;\n uploadPath?: string;\n}\n","import * as React from 'react';\nimport weui from '../../../utils/weui';\nimport type { CommonFormPropsType } from '../types';\nimport isObjectEqual from '../../../utils/isObjectEqual';\nimport {\n ConfigProvider,\n Button,\n Icon,\n Text,\n List,\n Progress,\n Tooltip,\n} from 'tea-component';\nimport {\n filterStrList,\n isCloudFileID,\n isHttpFileID,\n transSize,\n downloadFile,\n transFileCloudidToName,\n randomStr,\n} from '../../../utils/platform';\nimport { getCloudInstance, getTempFileURL } from '../../../utils/tcb';\nimport classNames from '../../../utils/classnames';\nimport { renderDecorator } from '../renderDecorator';\nimport type { unknownFunction } from '../../../types';\nimport { emptyArray, emptyObject } from '../../../utils/constant';\n// 默认组件类前缀\nconst CLASS_PREFIX = 'weda-upload-file-mobile';\n// 默认图片类型\nexport const FILES_TYPES = [\n '.doc',\n '.docx',\n '.xml',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n];\n// 上传状态字典\nconst statusMap = {\n UPLOAD_STATUS_PENDING: { title: '等待上传', icon: 'pending' },\n UPLOAD_STATUS_LOADING: { title: '上传中', icon: 'loading' },\n UPLOAD_STATUS_SUCCESS: { title: '上传成功', icon: 'success' },\n UPLOAD_STATUS_ERROR: { title: '上传失败', icon: 'error' },\n};\n// 上传文件Context\nconst FileContext = React.createContext(null);\n/**\n * 上传文件 H5 版本\n */\nconst defaultStyle = { margin: '0,-5px' };\nexport function UploadFileH5({\n // 系统属性\n layout,\n id = '',\n style = defaultStyle,\n labelVisible = true,\n label = '上传文件',\n requiredFlag = false,\n disabled = false,\n className = '',\n acceptTypes = emptyArray,\n // 组件属性\n tips = '',\n btnTitle = '点击上传',\n maxUploadCount = 9,\n maxSize = 10,\n deleteVisible = true,\n downloadVisible = true,\n value = emptyArray, // 需要兼容 cloud:和https: 协议,需要兼容字符串和字符串数组\n events = emptyObject,\n defaultValue,\n uploadPath = 'weda-uploader',\n single = true,\n onChange = null,\n isEdit = true,\n}: IUploadFileH5) {\n const [fileIDList, setfileIDList] = React.useState(\n filterStrList([].concat(defaultValue, value))\n ); // 上传成功文件ID列表,fileID[]\n const [fileList, setFileList] = React.useState([]); // 上传中的文件列表,file[],file为原始文件 + uuid属性\n const [fileSizeObj, setFileSizeObj] = React.useState({}); // 管理上传文件大小 {uuid:size}\n // 两次默认值不同, 需要刷新\n const prevDefaultRef = React.useRef<any>([]);\n const fileRef = React.useRef(fileIDList);\n React.useMemo(() => {\n //有有效默认值时不刷新,解决初次渲染默认值不显示问题\n if (\n defaultValue &&\n !isObjectEqual(prevDefaultRef.current, defaultValue) &&\n (JSON.stringify(prevDefaultRef.current) == '[]' ||\n !prevDefaultRef.current)\n ) {\n prevDefaultRef.current = defaultValue;\n setfileIDList(filterStrList([].concat(defaultValue)));\n }\n }, [defaultValue]);\n React.useEffect(() => {\n // 外部 onChange 事件\n const pureFileIDList = fileIDList.filter(\n (d) => isCloudFileID(d) || isHttpFileID(d)\n );\n if (single) {\n const file = pureFileIDList[0] || '';\n file && onChange && onChange(file);\n events?.change?.({ value: file });\n } else {\n onChange && onChange(pureFileIDList);\n events?.change?.({ value: pureFileIDList });\n }\n if (!isObjectEqual(fileRef.current, fileIDList)) {\n events?.success?.({ value: pureFileIDList });\n fileRef.current = fileIDList;\n }\n }, [fileIDList]);\n\n // 外层组件类\n const cls = classNames({\n 'weda-ui': true,\n //'weui-cells': true,\n //'weui-cells_form': true,\n 'weui-cells_checkbox': true,\n [className]: className,\n });\n const accepts = React.useMemo(() => {\n return acceptTypes.includes('*') || acceptTypes.length === 0\n ? ['*']\n : Array.from(new Set(acceptTypes));\n }, [acceptTypes]);\n\n // 上传后文件列表 fileIDList 改变事件,'add'|'delete'\n const handleChange = ({ fileID, uuid, type, size }) => {\n // 上传时新增事件\n if (type === 'add') {\n fileID && setFileSizeObj((obj) => ({ ...obj, [fileID]: size }));\n fileID && setfileIDList([...fileIDList, fileID]);\n } else {\n fileID && setfileIDList(fileIDList.filter((f) => f !== fileID));\n }\n uuid && setFileList((list) => list.filter((item) => uuid !== item?._uuid));\n };\n\n // 上传组件属性\n const uploadProps = {\n multiple: !single,\n };\n tips && (uploadProps['label'] = tips);\n maxSize && (uploadProps['maxSize'] = maxSize * 1024 * 1024);\n const btnDisabled =\n fileIDList.length >= maxUploadCount ||\n (single && fileIDList.length > 0) ||\n disabled;\n\n return renderDecorator(\n <ConfigProvider classPrefix=\"wedatea2td\">\n <FileContext.Provider\n value={{\n uploadPath,\n downloadVisible,\n deleteVisible,\n onChange: handleChange,\n isEdit,\n events,\n fileSizeObj,\n }}\n >\n <div data-testid=\"uploadFileH5\" className={cls} id={id} style={style}>\n <div className={classNames(`${CLASS_PREFIX}`)}>\n {isEdit && (\n <div className={classNames(`${CLASS_PREFIX}__hd`, layout)}>\n <div>\n {btnDisabled ? (\n <Button\n type=\"weak\"\n className={classNames(`${CLASS_PREFIX}__btn--weak`)}\n disabled={btnDisabled}\n >\n {btnTitle}\n </Button>\n ) : (\n <div>\n <input\n id=\"uploaderInput\"\n type=\"file\"\n data-testid=\"button-up\"\n className=\"weui-uploader-mobile__input\"\n accept={accepts.join(',')}\n multiple={!single}\n onChange={(e) => {\n const fileList = [...e.target.files];\n if (single && fileList.length > 1) {\n weui.alert(`上传文件总数不能超过1个`);\n return false;\n }\n if (\n fileList.length + fileIDList.length >\n maxUploadCount\n ) {\n weui.alert(\n `上传文件总数不能超过${maxUploadCount}个`\n );\n return false;\n }\n if (\n maxSize &&\n fileList.some((f) => f.size > maxSize * 1024 * 1024)\n ) {\n weui.alert(`请上传不超过${maxSize}M的文件`);\n return false;\n }\n if (\n fileList.some((f) => f.size > 1024 * 1024 * 1024)\n ) {\n weui.alert(`请上传不超过1024M的文件`);\n return false;\n }\n fileList.forEach((f) => (f['_uuid'] = randomStr()));\n setFileList((list) => [...list, ...fileList]);\n }}\n />\n <a\n type=\"weak\"\n className=\"wedatea2td-btn wedatea2td-btn--weak\"\n style={{ fontSize: '1em' }}\n >\n 点击上传\n </a>\n {!single && (\n <Text className={`${CLASS_PREFIX}__tips`}>\n 支持批量上传\n </Text>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n <div className={`${CLASS_PREFIX}__bd`}>\n <List>\n {fileIDList.map((d) => (\n <List.Item key={d}>\n {\n <TcbFileEcho\n fileID={d}\n fileList={fileList}\n onChange={handleChange}\n deleteVisible={deleteVisible}\n downloadVisible={downloadVisible}\n />\n }\n </List.Item>\n ))}\n {fileList.map((item) => (\n <List.Item key={item?._uuid}>\n {\n <TcbFileUpload\n file={item}\n downloadVisible={downloadVisible}\n deleteVisible={deleteVisible}\n />\n }\n </List.Item>\n ))}\n </List>\n </div>\n </div>\n </div>\n </FileContext.Provider>\n </ConfigProvider>\n )({\n id,\n className: cls,\n style,\n label: labelVisible ? label : null,\n layout,\n multiCell: false,\n requiredFlag,\n });\n}\nexport interface IUploadFileH5 extends CommonFormPropsType {\n className?: string; // 传入类\n label?: string; // 官方属性:标题\n tips?: string; // 官方属性:提示\n btnTitle?: string; // 官方属性:上传按钮标题\n maxUploadCount?: number; // 官方属性:上传文件最大数量,作用于 数组,用 single 控制数组还是单个对象\n deleteVisible?: boolean;\n downloadVisible?: boolean;\n acceptTypes?: Readonly<string[] | string>;\n disabled?: boolean;\n defaultValue?: string | string[];\n maxSize?: number; // 官方属性:单个图片大小限制,单位是M\n value?: Readonly<string | string[]>; // 官方属性:值\n uploadPath?: string; // 上传路径\n single?: boolean; // 单张上传还是多张上传,对应 onChange 参数为字符串还是字符串数组,value 在处理过程统一转为字符串数组\n onChange?: (v: any) => void; // 配合 fomily 受控使用\n isEdit: boolean; // 当前是编辑态还是展示态,展示态会去掉删除等按钮\n}\n\n/**\n * 基于 FileID 文件回显组件\n */\nconst TcbFileEcho = ({ fileID }: ITcbFileEcho) => {\n const [src, setSrc] = React.useState('');\n const { fileSizeObj } = React.useContext(FileContext) || {};\n React.useEffect(() => {\n const fetchFileId = async (id) => {\n if (isCloudFileID(id)) {\n try {\n const fileSrc = await getTempFileURL(id);\n setSrc(fileSrc);\n } catch (e) {}\n } else {\n setSrc(id);\n }\n };\n fetchFileId(fileID);\n }, [fileID]);\n //上传文件名称\n const label = React.useMemo(() => {\n if (isCloudFileID(fileID)) {\n return transFileCloudidToName(fileID);\n } else {\n return fileID;\n }\n }, [fileID]);\n //上传文件列表展示\n return (\n <div className={`${CLASS_PREFIX}__item`}>\n <div className={`${CLASS_PREFIX}__item-left`}>\n <UploadFileStatus title={label} size={fileSizeObj[fileID] || '--'} />\n </div>\n <div className={`${CLASS_PREFIX}__btn-group`}>\n <UploadFileAction\n status=\"UPLOAD_STATUS_SUCCESS\"\n fileID={fileID}\n src={src}\n />\n </div>\n </div>\n );\n};\ninterface ITcbFileEcho {\n fileID?: string;\n fileList?: any;\n file?: any;\n onChange?: unknownFunction;\n deleteVisible?: boolean;\n downloadVisible?: boolean;\n}\ninterface ITcbFileUpload {\n file?: any;\n downloadVisible?: boolean;\n deleteVisible?: boolean;\n}\n/**\n * 基于 File 上传文件过程组件\n */\nconst TcbFileUpload = ({ file }: ITcbFileUpload) => {\n const { uploadPath, onChange, events } = React.useContext(FileContext) || {};\n const [percent, setPercent] = React.useState(0); // 上传进度\n const [status, setStatus] = React.useState('UPLOAD_STATUS_PENDING'); // 上传状态\n const cancleRef = React.useRef(''); // 取消的uuid\n\n // 上传文件相关属性\n const { size, title, uuid } = React.useMemo(() => {\n const size = transSize(file?.size);\n const title = file?.name || '';\n const uuid = file?._uuid;\n return { size, title, uuid };\n }, [file?._uuid]);\n\n React.useEffect(() => {\n handleUpload(file);\n }, [file?._uuid]);\n\n // 上传过程\n const handleUpload = async (file) => {\n const tcb = await getCloudInstance();\n try {\n setStatus('UPLOAD_STATUS_PENDING');\n const { fileID } = await tcb.uploadFile({\n cloudPath: `${uploadPath}/${randomStr()}-${file?.name}`,\n filePath: file,\n onUploadProgress: (progressEvent) => {\n let percent = 0;\n percent = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total\n );\n setStatus('UPLOAD_STATUS_LOADING');\n setPercent(percent < 100 ? percent : 100);\n },\n });\n !cancleRef.current && onChange?.({ fileID, type: 'add', uuid, size });\n setStatus('UPLOAD_STATUS_SUCCESS');\n } catch (err) {\n setStatus('UPLOAD_STATUS_ERROR');\n events?.error?.(err);\n }\n };\n\n return (\n <div className={`${CLASS_PREFIX}__item`} role=\"TcbFileUpload\">\n <div className={`${CLASS_PREFIX}__item-left`}>\n <UploadFileStatus\n status={status}\n percent={percent}\n size={size}\n title={title}\n percentSize={((file?.size / 1024) * percent) / 100}\n />\n </div>\n <div className={`${CLASS_PREFIX}__btn-group`}>\n <UploadFileAction\n file={file}\n uuid={file?._uuid}\n status={status}\n onCancel={(uuid) => {\n cancleRef.current = uuid;\n onChange?.({ type: 'delete', uuid });\n }}\n onReLoad={handleUpload}\n />\n </div>\n </div>\n );\n};\n\ninterface IUploadFileStatus {\n status?: string;\n percent?: number;\n size?: any;\n title?: string;\n percentSize?: number;\n}\n/**\n * 上传文件状态组件\n */\nconst UploadFileStatus = ({\n status = 'UPLOAD_STATUS_SUCCESS',\n percent = 0,\n size,\n title = null,\n percentSize = 0,\n}: IUploadFileStatus) => {\n const { isEdit } = React.useContext(FileContext) || {};\n //上传中、待上传状态\n if (\n status == 'UPLOAD_STATUS_LOADING' ||\n (status == 'UPLOAD_STATUS_PENDING' && percent)\n ) {\n return (\n <>\n <div className={`${CLASS_PREFIX}__file-detail`}>\n <Text className={`${CLASS_PREFIX}__file-name`}>{title}</Text>\n <div className={`${CLASS_PREFIX}__file-status`}>\n <div className={`${CLASS_PREFIX}__file-status`}>\n <Progress\n percent={percent}\n theme=\"default\"\n strokeColor={'#0052D9'}\n className={`${CLASS_PREFIX}__file-progress`}\n />\n </div>\n </div>\n </div>\n <div className={`${CLASS_PREFIX}__file-foot`}>\n <div>\n <Text>{`${Math.floor(percentSize)}K/`}</Text>\n\n <Text>{size}</Text>\n </div>\n <Text>\n {status === 'UPLOAD_STATUS_PENDING' ? '等待上传' : '上传中'}\n </Text>\n </div>\n </>\n );\n }\n\n return (\n <>\n <div className={`${CLASS_PREFIX}__file-detail`}>\n <Tooltip title={title}>\n <Text className={`${CLASS_PREFIX}__file-name`}>{title}</Text>\n </Tooltip>\n {isEdit && (\n <div className={`${CLASS_PREFIX}__file-status`}>\n <Icon\n type={\n statusMap[status]?.icon ||\n statusMap['UPLOAD_STATUS_PENDING'].icon\n }\n ></Icon>\n <Text className={`${CLASS_PREFIX}__file-status--msg`}>\n {statusMap[status]?.title ||\n statusMap['UPLOAD_STATUS_PENDING'].title}\n </Text>\n </div>\n )}\n </div>\n {isEdit && (\n <div className={`${CLASS_PREFIX}__file-foot`}>\n <div>\n <Text>{size}</Text>\n </div>\n </div>\n )}\n </>\n );\n};\n\ninterface IUploadFileAction {\n status?: string;\n fileID?: string;\n uuid?: string;\n src?: string;\n file?: any;\n onReLoad?: any;\n onCancel?: any;\n}\n\n/**\n * 操作列组件, onChange 从最外层 UploadFilePc 传进来\n * props: { status, fileID, uuid, src, onChange }\n */\nconst UploadFileAction = ({\n status = 'UPLOAD_STATUS_PENDING',\n fileID = '',\n uuid = '',\n src = '',\n file = null,\n onReLoad = null,\n onCancel = null,\n}: IUploadFileAction) => {\n const { onChange, downloadVisible, deleteVisible, isEdit } =\n React.useContext(FileContext) || {};\n // 操作列按钮-删除\n const renderDelete = () =>\n isEdit && (\n <Icon\n type=\"delete\"\n style={{ cursor: 'pointer' }}\n onClick={() => onChange?.({ fileID, uuid, type: 'delete' })}\n />\n );\n\n // 操作列按钮-取消\n const renderCancel = () =>\n isEdit && (\n <Icon\n type=\"dismiss\"\n style={{ cursor: 'pointer' }}\n onClick={() => onCancel?.(uuid)}\n />\n );\n\n // 操作列按钮-重新上传\n const renderReLoad = () =>\n isEdit && (\n <Icon\n type=\"refresh\"\n style={{ cursor: 'pointer' }}\n onClick={() => {\n onReLoad?.(file);\n }}\n />\n );\n\n // 操作列按钮-下载\n const renderDownLoad = () => (\n <Icon\n type=\"download\"\n style={{ cursor: 'pointer' }}\n onClick={() => downloadFile(src)}\n />\n );\n\n switch (status) {\n case 'UPLOAD_STATUS_PENDING':\n return renderCancel();\n case 'UPLOAD_STATUS_LOADING':\n return renderCancel();\n case 'UPLOAD_STATUS_SUCCESS':\n return (\n <>\n {deleteVisible && renderDelete()}{' '}\n {downloadVisible && renderDownLoad()}\n </>\n );\n case 'UPLOAD_STATUS_ERROR':\n return (\n <>\n {deleteVisible && renderDelete()} {renderReLoad()}\n </>\n );\n default:\n return null;\n }\n};\n","import * as React from 'react';\nimport {\n Upload,\n ConfigProvider,\n Button,\n message,\n Icon,\n Text,\n List,\n} from 'tea-component';\nimport {\n filterStrList,\n isCloudFileID,\n isHttpFileID,\n transSize,\n downloadFile,\n cutFileTitle,\n transFileCloudidToName,\n randomStr,\n} from '../../../utils/platform';\nimport { getCloudInstance, getTempFileURL } from '../../../utils/tcb';\nimport classNames from '../../../utils/classnames';\nimport { renderDecorator } from '../renderDecorator';\nimport type { CommonFormPropsType } from '../types';\nimport isObjectEqual from '../../../utils/isObjectEqual';\nimport type { unknownFunction } from '../../../types';\nimport { emptyArray, emptyObject } from '../../../utils/constant';\n\n// 默认组件类前缀\nconst CLASS_PREFIX = 'weda-upload-file-pc';\n\n// 上传状态字典\nconst statusMap = {\n 0: { title: '待上传', icon: 'pending-gray' },\n 1: { title: '上传 ...', icon: 'loading' },\n 2: { title: '上传成功', icon: 'success' },\n 3: { title: '上传失败', icon: 'error' },\n};\n\n// 上传文件Context\nconst FileContext = React.createContext(null);\n\n/**\n * 上传文件 PC 版本\n */\nexport function UploadFilePc({\n // 系统属性\n layout,\n id = '',\n style,\n labelVisible = true,\n label = '上传文件',\n requiredFlag = false,\n disabled = false,\n className = '',\n events = emptyObject,\n // 组件属性\n decorator,\n tips = '',\n btnTitle = '点击上传',\n maxUploadCount = 9,\n maxSize = 1024,\n single = true,\n defaultValue = emptyArray, // 组件默认初始化值\n value = emptyArray, // 用于模型组件中 formily 的值管理\n acceptTypes = emptyArray,\n downloadVisible = true,\n deleteVisible = true,\n uploadPath = 'weda-uploader',\n onChange = null,\n isEdit = true,\n}: IUploaderFilePc) {\n const [fileIDList, setfileIDList] = React.useState(\n filterStrList([].concat(defaultValue, value))\n ); // 上传成功文件ID列表,fileID[]\n const [fileList, setFileList] = React.useState([]); // 上传中的文件列表,file[],file为原始文件 + uuid属性\n const [fileSizeObj, setFileSizeObj] = React.useState({}); // 管理上传文件大小 {uuid:size}\n // 两次默认值不同, 需要刷新\n const prevDefaultRef = React.useRef<any>([]);\n const fileRef = React.useRef(fileIDList);\n React.useMemo(() => {\n //有有效默认值时不刷新,解决初次渲染默认值不显示问题\n if (\n defaultValue &&\n !isObjectEqual(prevDefaultRef.current, defaultValue) &&\n (JSON.stringify(prevDefaultRef.current) == '[]' ||\n !prevDefaultRef.current)\n ) {\n prevDefaultRef.current = defaultValue;\n setfileIDList(filterStrList([].concat(defaultValue)));\n }\n }, [defaultValue]);\n React.useEffect(() => {\n // 外部 onChange 事件\n const pureFileIDList = fileIDList.filter(\n (d) => isCloudFileID(d) || isHttpFileID(d)\n );\n if (single) {\n const file = pureFileIDList[0] || '';\n onChange?.(file);\n events?.change?.({ value: file });\n } else {\n onChange?.(pureFileIDList);\n events?.change?.({ value: pureFileIDList });\n }\n if (!isObjectEqual(fileRef.current, fileIDList)) {\n events?.success?.({ value: pureFileIDList });\n fileRef.current = fileIDList;\n }\n }, [fileIDList]);\n // 外层组件类\n const cls = classNames({\n 'weda-ui': true,\n [className]: className,\n });\n\n // 批量上传文件前置事件\n const handleBefore = (file, fileList, isAccepted, error) => {\n if (fileList.length + fileIDList.length > maxUploadCount) {\n message.warning({ content: `上传文件总数不能超过${maxUploadCount}个` });\n return false;\n }\n if (!isAccepted) {\n try {\n const errorList = [];\n if (error.find((item) => item?.code === 'file-invalid-type')) {\n errorList.push('上传文件类型错误');\n }\n if (error.find((item) => item?.code === 'file-too-large')) {\n errorList.push(`上传文件大小不能超过${maxSize}M`);\n }\n message.error({ content: errorList.join(', ') });\n } catch (e) {}\n return false;\n }\n file['_uuid'] = randomStr();\n setFileList((list) => [...list, file]);\n return false;\n };\n\n // 上传后文件列表 fileIDList 改变事件,'add'|'delete'\n const handleChange = ({ fileID, uuid, type, size }) => {\n // 上传时新增事件\n if (type === 'add') {\n fileID && setFileSizeObj((obj) => ({ ...obj, [fileID]: size }));\n fileID && setfileIDList((list) => [...list, fileID]);\n } else {\n fileID && setfileIDList((list) => list.filter((d) => d !== fileID));\n }\n uuid && setFileList((list) => list.filter((item) => uuid !== item?._uuid));\n };\n\n // 上传组件属性\n const uploadProps = { multiple: !single };\n if (\n !(\n !acceptTypes?.length ||\n acceptTypes?.includes('*') ||\n acceptTypes?.includes('')\n )\n ) {\n uploadProps['accept'] = Array.from(new Set(acceptTypes));\n }\n tips && (uploadProps['title'] = tips);\n maxSize && (uploadProps['maxSize'] = maxSize * 1024 * 1024);\n const btnDisabled =\n fileIDList.length >= maxUploadCount || (single && fileIDList.length > 0);\n\n return renderDecorator(\n <ConfigProvider classPrefix=\"wedatea2td\">\n <FileContext.Provider\n value={{\n uploadPath,\n downloadVisible,\n deleteVisible,\n onChange: handleChange,\n isEdit,\n events,\n fileSizeObj,\n }}\n >\n <div className={`${CLASS_PREFIX}`}>\n {isEdit && (\n <div className={`${CLASS_PREFIX}__input-box`}>\n {disabled || btnDisabled ? (\n <Button type=\"weak\" disabled={true}>\n {btnTitle}\n </Button>\n ) : (\n <Upload {...uploadProps} beforeUpload={handleBefore}>\n <Button type=\"weak\" className={`${CLASS_PREFIX}__btn--weak`}>\n {btnTitle}\n </Button>\n {!single && (\n <Text\n theme=\"weak\"\n className={`${CLASS_PREFIX}__btn-descripe`}\n >\n 支持批量上传\n </Text>\n )}\n </Upload>\n )}\n </div>\n )}\n <List split=\"divide\">\n <List.Item>\n <div\n className={`${CLASS_PREFIX}--item ${CLASS_PREFIX}--item-header`}\n >\n <div\n className={`${CLASS_PREFIX}--item-title ${CLASS_PREFIX}--item-label`}\n >\n 文件名\n </div>\n <div\n className={`${CLASS_PREFIX}--item-size ${CLASS_PREFIX}--item-label`}\n >\n 大小\n </div>\n <div\n className={`${CLASS_PREFIX}--item-status ${CLASS_PREFIX}--item-label`}\n >\n 状态\n </div>\n <div className={`${CLASS_PREFIX}--item-action`}>操作</div>\n </div>\n </List.Item>\n\n {fileIDList.map((d) => (\n <List.Item key={d}>{<TcbFileEcho fileID={d} />}</List.Item>\n ))}\n\n {fileList.map((item) => (\n <List.Item key={item?._uuid}>\n {<TcbFileUpload file={item} />}\n </List.Item>\n ))}\n\n {isEdit && fileIDList.length === 0 && fileList.length === 0 && (\n <List.Item className={`${CLASS_PREFIX}--item-empty`}>\n <div className={`${CLASS_PREFIX}--item`}>\n 点击上方“{btnTitle}”按钮\n </div>\n </List.Item>\n )}\n </List>\n </div>\n </FileContext.Provider>\n </ConfigProvider>,\n decorator\n )({\n id,\n className: cls,\n style,\n label: labelVisible ? label : null,\n layout,\n multiCell: false,\n requiredFlag,\n });\n}\n\nexport interface IUploaderFilePc extends CommonFormPropsType {\n btnTitle?: string;\n maxUploadCount?: number;\n downloadVisible?: boolean;\n deleteVisible?: boolean;\n defaultValue?: Readonly<string | string[]>;\n maxSize?: number;\n single?: boolean;\n acceptTypes?: Readonly<string[]>;\n tips?: string;\n value?: Readonly<string | string[]>;\n uploadPath?: string;\n isEdit?: boolean;\n onChange?: unknownFunction;\n}\n\ninterface ITcbFileEcho {\n fileID?: string;\n}\n\n/**\n * 基于 FileID 回显文件表格行组件\n */\nconst TcbFileEcho = ({ fileID }: ITcbFileEcho) => {\n const [src, setSrc] = React.useState('');\n const { fileSizeObj } = React.useContext(FileContext) || {};\n React.useEffect(() => {\n const fetchFileId = async (id) => {\n if (isCloudFileID(id)) {\n try {\n const fileSrc = await getTempFileURL(id);\n setSrc(fileSrc);\n } catch (e) {}\n } else {\n setSrc(id);\n }\n };\n fetchFileId(fileID);\n }, [fileID]);\n\n const title = React.useMemo(() => {\n if (isCloudFileID(fileID)) {\n return transFileCloudidToName(fileID);\n } else {\n return fileID;\n }\n }, [fileID]);\n\n return (\n <div className={`${CLASS_PREFIX}--item ${CLASS_PREFIX}--item-body`}>\n <div className={`${CLASS_PREFIX}--item-title`} title={title}>\n {cutFileTitle(title)}\n </div>\n <div className={`${CLASS_PREFIX}--item-size`}>\n {fileSizeObj[fileID] || '--'}\n </div>\n <div className={`${CLASS_PREFIX}--item-status`}>\n <UploadFileStatus />\n </div>\n <div className={`${CLASS_PREFIX}--item-action`}>\n <UploadFileAction status=\"2\" fileID={fileID} src={src} />\n </div>\n </div>\n );\n};\n\ninterface ITcbFileUpload {\n file?: {\n size: number | string;\n name: string;\n _uuid?: string;\n };\n}\n\n/**\n * 基于 File 上传文件过程表格行组件\n */\nconst TcbFileUpload = ({ file }: ITcbFileUpload) => {\n const { uploadPath, onChange, events } = React.useContext(FileContext) || {};\n const [percent, setPercent] = React.useState(0); // 上传进度\n const [status, setStatus] = React.useState('0'); // 上传状态\n const cancleRef = React.useRef(''); // 取消的uuid\n\n // 上传文件相关属性\n const { size, title, uuid } = React.useMemo(() => {\n const size = transSize(file?.size);\n const title = file?.name || '';\n const uuid = file?._uuid;\n return { size, title, uuid };\n }, [file?._uuid]);\n\n React.useEffect(() => {\n handleUpload(file);\n }, [file?._uuid]);\n\n // 上传过程\n const handleUpload = async (file) => {\n const tcb = await getCloudInstance();\n try {\n setStatus('0');\n const { fileID } = await tcb.uploadFile({\n cloudPath: `${uploadPath}/${randomStr()}-${file?.name}`,\n filePath: file,\n onUploadProgress: (progressEvent) => {\n let percent = 0;\n percent = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total\n );\n setStatus('1');\n setPercent(percent < 100 ? percent : 100);\n },\n });\n !cancleRef.current && onChange?.({ fileID, type: 'add', uuid, size });\n setStatus('2');\n } catch (e) {\n setStatus('3');\n events.error && events.error(e);\n }\n };\n\n return (\n <div className={`${CLASS_PREFIX}--item ${CLASS_PREFIX}--item-body`}>\n <div className={`${CLASS_PREFIX}--item-title`} title={title}>\n {cutFileTitle(title)}\n </div>\n <div className={`${CLASS_PREFIX}--item-size`}>{size}</div>\n <div className={`${CLASS_PREFIX}--item-status`}>\n <UploadFileStatus status={status} percent={percent} />\n </div>\n <div className={`${CLASS_PREFIX}--item-action`}>\n <UploadFileAction\n file={file}\n uuid={file?._uuid}\n status={status}\n onCancel={(uuid) => {\n cancleRef.current = uuid;\n onChange?.({ type: 'delete', uuid });\n }}\n onReLoad={handleUpload}\n />\n </div>\n </div>\n );\n};\n\ninterface IUploadFileStatus {\n status?: string;\n percent?: number;\n}\n\n/**\n * 上传文件状态组件\n */\nconst UploadFileStatus = ({ status = '2', percent = 0 }: IUploadFileStatus) => {\n if (status == '1' && percent) {\n return (\n <>\n <Icon type=\"loading\" />\n 上传{percent}% ...\n </>\n );\n }\n return (\n <>\n <Icon type={statusMap[status]?.icon || statusMap['0'].icon} />\n {statusMap[status]?.title || statusMap['0'].title}\n </>\n );\n};\n\ninterface IUploadFileAction {\n status?: string;\n fileID?: string;\n uuid?: string;\n src?: string;\n file?: any;\n onReLoad?: any;\n onCancel?: any;\n}\n\n/**\n * 操作列组件, onChange 从最外层 UploadFilePc 传进来\n * props: { status, fileID, uuid, src, onChange }\n */\nconst UploadFileAction = ({\n status = '0',\n fileID = '',\n uuid = '',\n src = '',\n file = null,\n onReLoad = null,\n onCancel = null,\n}: IUploadFileAction) => {\n const { onChange, downloadVisible, deleteVisible, isEdit } =\n React.useContext(FileContext) || {};\n\n // 操作列按钮-删除\n const renderDelete = () =>\n isEdit &&\n deleteVisible && (\n <Button\n type=\"link\"\n onClick={() => onChange?.({ fileID, uuid, type: 'delete' })}\n >\n 删除\n </Button>\n );\n\n // 操作列按钮-取消\n const renderCancel = () =>\n isEdit && (\n <Button onClick={() => onCancel?.(uuid)} type=\"link\">\n 取消\n </Button>\n );\n\n // 操作列按钮-重新上传\n const renderReLoad = () =>\n isEdit && (\n <Button\n type=\"link\"\n onClick={() => {\n onReLoad?.(file);\n }}\n >\n 重新上传\n </Button>\n );\n\n // 操作列按钮-下载\n const renderDownLoad = () =>\n downloadVisible && (\n <Button\n type=\"link\"\n title=\"点击下载文件\"\n onClick={() => downloadFile(src)}\n >\n 下载\n </Button>\n );\n\n switch (status) {\n case '0':\n return renderCancel();\n case '1':\n return renderCancel();\n case '2':\n return (\n <>\n {renderDelete()}\n {renderDownLoad()}\n </>\n );\n case '3':\n return (\n <>\n {renderDelete()}\n {renderReLoad()}\n </>\n );\n default:\n return null;\n }\n};\n","import '@tcwd/style-wedatheme/index.css';\n// import loadable from '@loadable/component';\n// import { fallback } from '../utils/loading-fallback';\n\n// export const Button = loadable(() => import('./button'), {fallback});\n// export const Text = loadable(() => import('./text'), {fallback});\n// export const Container = loadable(() => import('./container'), {fallback});\n// export const Image = loadable(() => import('./image'), {fallback});\n// export const Slot = loadable(() => import('./slot'), {fallback});\n// export const ScrollView = loadable(() => import('./scrollView'), {fallback});\n// export const Swiper = loadable(() => import('./swiper'), {fallback});\n// export const Modal = loadable(() => import('./modal'), {fallback});\n// export const RichText = loadable(() => import('./richText'), {fallback});\n// export const RichTextView = loadable(() => import('./richTextView'), {fallback});\n// export const Link = loadable(() => import('./link'), {fallback});\n// export const Drawer = loadable(() => import('./drawer'), {fallback});\n// export const UploaderView = loadable(() => import('./uploaderView'), {fallback});\n// // picker\n// export const Picker = loadable(() => import('./picker/picker'), {fallback});\n// export const DatePicker = loadable(() => import('./picker/datePicker'), {fallback});\n// export const TimePicker = loadable(() => import('./picker/timePicker'), {fallback});\n// // form\n// export const Form = loadable(() => import('./form/form'), {fallback});\n// export const Input = loadable(() => import('./form/input'), {fallback});\n// export const Textarea = loadable(() => import('./form/textarea'), {fallback});\n// export const Checkbox = loadable(() => import('./form/checkbox'), {fallback});\n// export const Radio = loadable(() => import('./form/radio'), {fallback});\n// export const Switch = loadable(() => import('./form/switch'), {fallback});\n// export const Select = loadable(() => import('./form/select'), {fallback});\n// export const Uploader = loadable(() => import('./form/uploader'), {fallback});\n// export const Tips = loadable(() => import('./form/tips'), {fallback});\n// export const EnumSelect = loadable(() => import('./form/enumSelect'), {fallback});\n// export const Tabs = loadable(() => import('./tabs'), {fallback});\n\nexport { default as Button } from './button';\nexport { default as Text } from './text';\nexport { default as Container } from './container';\n// export { default as Image } from './image';\n// export { default as Slot } from './slot';\n// export { default as ScrollView } from './scrollView';\n// export { default as Swiper } from './swiper';\n// export { default as Carousel } from './carousel';\n// export { default as Modal } from './modal';\nexport { default as RichText } from './richText';\nexport { default as RichTextView } from './richTextView';\nexport { default as Link } from './link';\nexport { default as Drawer } from './drawer';\nexport { default as UploaderView } from './uploaderView';\nexport { default as UploaderFileView } from './uploaderFileView';\n// export { default as WedaVideo } from './wedaVideo/index';\n\n// export { default as Picker } from './picker/picker';\n// export { default as DatePicker } from './picker/datePicker';\n// export { default as TimePicker } from './picker/timePicker';\n\n// form\n// export { default as Form } from './form/form';\n// export { default as Input } from './form/input';\n// export { default as Textarea } from './form/textarea';\n// export { default as Checkbox } from './form/checkbox';\n// export { default as Radio } from './form/radio';\n// export { default as Switch } from './form/switch';\n// export { default as Select } from './form/select';\n// export { default as Uploader } from './form/uploader';\n// export { default as UploaderFile } from './form/uploaderFile';\n// export { default as Tips } from './form/tips';\n// export { default as Tabs } from './tabs';\n\n// export { default as Location } from './form/location';\n\n// export { default as EnumSelect } from './form/enumSelect';\n// export { default as Calendar } from './calendar';\n// export { default as NavLayout } from './navLayout';\n\n// // Data Contaier\n// export { default as ListView } from './listView';\n// export { default as NavigationBar } from './navigationBar';\n// export { default as Line } from './chart/line';\n// export { default as Bar } from './chart/bar';\n// export { default as Pie } from './chart/pie';\n// export { default as DataView } from './dataView';\n\n// export { default as StatisticsCard } from './chart/statisticsCard';\n// export { default as GraphicCard } from './graphicCard';\n\n// export { default as UserInfo } from './userInfo';\n// export { default as Phone } from './phone';\n// export { default as PhoneCode } from './phoneCode';\n// export { default as Share } from './share';\n\n// export { default as Lottery } from './lottery';\n// open\n// import Auth from './auth';\n\nexport { default as RichTextEdit } from './richtextedit';\nimport 'weui/dist/style/weui.css';\nimport '../weda-ui.css';\n","var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (module.hot) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n\n var p;\n\n for (p in a) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (a[p] !== b[p]) {\n return false;\n }\n }\n\n for (p in b) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!a[p]) {\n return false;\n }\n }\n\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n \"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\",\n function () {\n content = require(\"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};","import * as React from 'react';\nimport type { CommonPropsType } from '../../types';\nimport classNames from '../../utils/classnames';\nimport { emptyArray, emptyObject } from '../../utils/constant';\nimport './index.css';\n\nexport interface PropsType extends CommonPropsType {\n /**\n * 内容\n */\n content?: string;\n /**\n * 链接地址\n */\n url?: string;\n /**\n * 参数\n */\n params?: Readonly<{ key: string; value: string }[]>;\n contentSlot?: React.ReactNode;\n isOpenInNewWindow: boolean;\n}\n\n// 所有绝对地址直接交由浏览器,新开窗口交由浏览器\n// 当前窗口相对地址交给平台\nexport default function Link({\n content,\n url = '',\n events = emptyObject,\n style,\n className,\n contentSlot,\n params = emptyArray, // TODO 格式定义,\n isOpenInNewWindow,\n}: PropsType) {\n url = url.trim();\n const cls = classNames({\n 'weda-link': true,\n 'weda-ui': true,\n [className]: className,\n });\n\n // URL 构造函数不支持 '//xxx.com' 的格式\n if (url.indexOf('//') === 0) {\n url = location.protocol + url;\n }\n\n // \"proto:\" 或 \"//\" 起头的是绝对路径\n let isAbosolutePath = /^(?:[a-z]+:)/i.test(url);\n\n let base,\n path,\n href,\n paramObj = {},\n urlObj;\n if (!isAbosolutePath) {\n // 相对地址使用站位域名,不实际使用\n base =\n location.origin && location.origin !== 'null'\n ? location.origin\n : 'https://we.da';\n }\n\n try {\n urlObj = new URL(url, base);\n params.forEach((x) => {\n urlObj.searchParams.append(x.key, x.value);\n });\n\n href = urlObj.href;\n path = urlObj.pathname;\n\n for (const [key, value] of urlObj.searchParams) {\n paramObj[key] = value;\n }\n\n // 相对地址去掉站位域名\n if (!isAbosolutePath) {\n href = urlObj.pathname + urlObj.search + urlObj.hash;\n href = href.replace(/^\\//, '');\n }\n } catch (e) {\n // 非法 url\n isAbosolutePath = true;\n href = url;\n path = '';\n paramObj = params.reduce((p, x) => {\n p[x.key] = x.value;\n return p;\n }, {});\n }\n\n return (\n <a\n style={{ ...style }}\n className={cls}\n target={isOpenInNewWindow ? '_blank' : '_self'}\n href={href}\n onClick={(e) => {\n events.tap && events.tap({}, { originEvent: e });\n\n if (!e.defaultPrevented) {\n if (!isAbosolutePath) {\n e.preventDefault();\n app.navigateTo({\n pageId: path,\n packageName: '',\n mode: 'weDa',\n params: paramObj,\n });\n }\n }\n }}\n rel=\"noopener noreferrer\"\n >\n {contentSlot && <div className=\"weda-link-slot\">{contentSlot}</div>}\n {content}\n </a>\n );\n}\n","// 默认加载失败图片\nexport const defaultBase64 =\n 'data:image/png;base64,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';\n","import React, { useEffect, useState } from 'react';\nimport { useSetState } from '../../utils/useSetState';\nimport classNames from '../../utils/classnames';\nimport Editor, { EditorState, convertEditorStateToHTML } from 'kedao';\n\nimport { ContentUtils } from 'kedao/lib/utils';\nimport { createStateFromContent } from 'kedao/lib/editor';\n\nimport { getCloudInstance, getTempFileURL } from '../../utils/tcb';\nimport {\n message,\n Button,\n Input,\n Modal,\n Progress,\n Upload,\n Text,\n} from 'tea-component';\nimport { v4 as uuidv4 } from 'uuid';\nimport { defaultBase64 } from './const';\n\nimport { renderDecorator } from '../form/renderDecorator';\nimport { usePlatform } from '../../utils/platform';\n\n// 默认图片类型\nconst IMAGE_TYPES = [\n 'image/jpeg',\n 'image/png',\n 'image/gif',\n 'image/bmp',\n 'image/tiff',\n 'image/svg+xml',\n];\n\nexport default function RichText({\n // 系统属性\n id,\n style,\n className,\n events,\n // 组件属性\n label,\n labelVisible,\n value: initialValue,\n readOnly,\n layout,\n requiredFlag,\n onChange,\n maxSize,\n acceptTypes,\n cloudPath,\n disabled,\n decorator,\n}) {\n const [editorState, setEditorState] = useState();\n\n const cls = classNames({\n 'weda-ui': true,\n 'weda-richText': true,\n [className]: className,\n });\n const platform = usePlatform();\n const isH5 = platform === 'h5';\n const subCls = classNames({\n 'weui-cell': isH5,\n 'weui-cell_active': isH5,\n 'weui-cell_form': isH5,\n 'weui-cell_disabled': isH5 && disabled,\n });\n\n const onDataChange = function (value) {\n events.change && events.change({ value: value === '<p></p>' ? '' : value });\n if (onChange) {\n if (value === '<p></p>') {\n onChange('');\n } else {\n onChange(value);\n }\n }\n };\n\n useEffect(() => {\n const state = createStateFromContent(initialValue, {});\n setEditorState(state);\n }, []);\n\n const extendControls = [\n {\n key: 'richtext-uploader',\n type: 'component',\n component: (\n <CustomUploader\n acceptTypes={acceptTypes}\n maxSize={maxSize}\n cloudPath={cloudPath}\n onChange={(url) => {\n const state = ContentUtils.insertMedias(editorState, [\n { type: 'IMAGE', url },\n ]);\n setEditorState(state);\n }}\n />\n ),\n },\n ];\n\n // 修改img显示逻辑\n const blockRenderFn = (contentBlock, { editor, editorState }) => {\n if (contentBlock.getType() === 'atomic') {\n const entity = editorState\n .getCurrentContent()\n .getEntity(contentBlock.getEntityAt(0));\n if (entity.getType() === 'IMAGE') {\n return {\n component: RichTextImg, // 替换img的组件\n editable: false, // editable并不代表组件内容实际可编辑,建议设置为false\n props: { editor, editorState }, // 传入的内容可以在组件中通过this.props.blockProps获取到\n };\n }\n }\n };\n\n const richTextEl = (\n <div className={subCls}>\n <div\n style={{\n border: '1px solid #d1d1d1',\n backgroundColor: '#fff',\n ...style,\n }}\n >\n <Editor\n key={id}\n value={editorState}\n readOnly={readOnly}\n language=\"zh\"\n blockRendererFn={blockRenderFn}\n onBlur={(s) => {\n setEditorState(s);\n const html = convertEditorStateToHTML(s, {});\n onDataChange(html);\n if (html.length > 32768) {\n message.warning({\n content: '富文本长度过长,可能导致保存失败',\n });\n }\n }}\n excludeControls={['media', 'fullscreen']}\n /** @ts-ignore jsx */\n extendControls={extendControls}\n handleKeyCommand={(command, editState) => {\n const newState = ContentUtils.handleKeyCommand(editState, command);\n console.log(newState, editState, command);\n if (newState) {\n setEditorState(newState);\n return true;\n }\n return false;\n }}\n />\n </div>\n </div>\n );\n return renderDecorator(\n richTextEl,\n decorator\n )({\n id,\n className: cls,\n style,\n label: labelVisible ? label : null,\n layout,\n multiCell: false,\n requiredFlag,\n });\n}\n\nexport const CustomUploader = (props) => {\n const { onChange = () => {}, acceptTypes, maxSize, cloudPath } = props;\n const [\n { fileList, percent, visible, uploading, inputUrl, previewImg },\n setState,\n ] = useSetState({\n fileList: [],\n percent: 0,\n visible: false,\n uploading: false,\n inputUrl: '',\n previewImg: defaultBase64,\n });\n\n // 获取base64\n const getBase64 = (file) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n /** @ts-ignore jsx */\n setState({ previewImg: reader.result });\n };\n reader.readAsDataURL(file);\n };\n\n // 计算上传进度\n const onProgress = (progressEvent) => {\n let percentCompleted = 0;\n try {\n percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total\n );\n percentCompleted < 100 ? percentCompleted : 100;\n } catch (e) {\n message.error({\n content: '上传图片失败',\n });\n }\n setState({ uploading: true, percent: percentCompleted });\n };\n return (\n <>\n <button\n role=\"richtext\"\n type=\"button\"\n data-title=\"媒体上传\"\n className=\"control-item button\"\n onClick={() => setState({ visible: true })}\n >\n <svg\n viewBox=\"64 64 896 896\"\n focusable=\"false\"\n data-icon=\"file-image\"\n width=\"1em\"\n height=\"1em\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm-134 50c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328.1c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0112.6 0l41.1 52.4 77.8-99.2a8.1 8.1 0 0112.7 0l136.5 174c4.1 5.2.4 12.9-6.3 12.9z\"\n fill=\"#e6f7ff\"\n ></path>\n <path\n d=\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z\"\n fill=\"#006eff\"\n ></path>\n <path\n d=\"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 00-12.6 0l-99.8 127.2a7.98 7.98 0 006.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 00-12.7 0zM360 442a40 40 0 1080 0 40 40 0 10-80 0z\"\n fill=\"#006eff\"\n ></path>\n </svg>\n </button>\n <Modal\n onClose={() => {\n setState({ visible: false });\n }}\n visible={visible}\n maskClosable={true}\n >\n <p>输入链接插入图片</p>\n <div className=\"richText-upload-link\">\n <Input\n value={inputUrl}\n placeholder=\"输入图片地址\"\n onChange={(value) => setState({ inputUrl: value })}\n />\n \n <Button\n type=\"primary\"\n onClick={() => {\n onChange(inputUrl);\n setState({ visible: false });\n }}\n >\n 确认\n </Button>\n </div>\n <p style={{ marginBottom: '16px' }}>或拖拽上传插入图片</p>\n <Upload\n accept={acceptTypes.join()}\n maxSize={1024 * 1024}\n beforeUpload={(file) => {\n getBase64(file);\n let typeRegex = new RegExp(\n `^((${acceptTypes.join(')|(').replace('+', '\\\\+')}))$`\n );\n if (acceptTypes.join().includes('*')) {\n typeRegex = new RegExp(`^image/.+$`);\n }\n if (!typeRegex.test(file.type)) {\n message.error({\n content: '文件格式不支持',\n });\n return false;\n }\n if (file.size > maxSize * 1024 * 1024) {\n message.error({\n content: `文件大小超过上限${maxSize}M`,\n });\n return false;\n }\n setState({\n uploading: true,\n percent: 0,\n fileList: [\n {\n name: file.name,\n },\n ],\n });\n getCloudInstance().then(async (tcb) => {\n try {\n const fileType = file.name.split('.').pop().toLowerCase();\n const path = `${cloudPath}/uploader-${uuidv4()}.${fileType}`;\n const { fileID } = await tcb.uploadFile({\n cloudPath: path,\n filePath: file,\n onUploadProgress: onProgress,\n });\n onChange(fileID);\n setState({\n visible: false,\n fileList: [],\n });\n } catch (e) {\n setState({\n fileList: [],\n });\n message.error({\n content: '上传图片失败',\n });\n } finally {\n setState({ uploading: false, percent: 100 });\n }\n });\n return false;\n }}\n >\n {({ open, isDragging }) => (\n <Upload.Dragger\n filename={fileList[0] && fileList[0].name}\n percent={percent}\n image={previewImg}\n className=\"richtext_upload_dragger\"\n >\n {isDragging ? (\n '释放鼠标'\n ) : (\n <>\n <a onClick={open}>点击上传</a>\n <Text theme=\"weak\">/拖拽到此区域</Text>\n </>\n )}\n </Upload.Dragger>\n )}\n </Upload>\n {uploading && (\n <Progress style={{ marginTop: '10px' }} percent={percent} />\n )}\n </Modal>\n </>\n );\n};\n\nexport const RichTextImg = ({ contentState, block }) => {\n const blockData = contentState.getEntity(block.getEntityAt(0)).getData();\n const { url } = blockData || {};\n const [src, setSrc] = React.useState('');\n const [width, setWidth] = React.useState('unset');\n\n useEffect(() => {\n const getSrc = async () => {\n try {\n if (url.includes('cloud://')) {\n const _src = await getTempFileURL(url);\n setSrc(_src || url);\n } else {\n setSrc(url);\n }\n } catch (e) {\n message.error({\n content: `显示图片失败:${e.message || '未知原因'}`,\n });\n }\n };\n getSrc();\n }, [url]);\n\n return (\n src && (\n <>\n <div className=\"bf-media\">\n <div draggable=\"true\" className=\"bf-image\" style={{ float: 'left' }}>\n <div style={{ position: 'relative', display: 'inline-block' }}>\n <img\n src={src}\n key={url + Math.random()}\n style={{ maxWidth: '100%', width }}\n onError={() => {\n setSrc(defaultBase64);\n setWidth('80px');\n }}\n />\n <div className=\"bf-pre-csize\"></div>\n </div>\n </div>\n <div\n style={{\n clear: 'both',\n height: '0px',\n lineHeight: 0,\n float: 'none',\n }}\n ></div>\n </div>\n </>\n )\n );\n};\n\nRichText.defaultProps = {\n // 系统属性\n events: {},\n style: { width: '100%' },\n // 组件属性\n label: '标题',\n labelVisible: true,\n name: 'formRichText',\n value: '',\n readOnly: false,\n layout: 'vertical',\n requiredFlag: false,\n maxSize: 10,\n acceptTypes: IMAGE_TYPES,\n cloudPath: 'weda-richtext-upload',\n};\n\nCustomUploader.defaultProps = {\n maxSize: 10,\n acceptTypes: IMAGE_TYPES,\n cloudPath: 'weda-richtext-upload',\n};\n","var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (module.hot) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n\n var p;\n\n for (p in a) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (a[p] !== b[p]) {\n return false;\n }\n }\n\n for (p in b) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!a[p]) {\n return false;\n }\n }\n\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n \"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\",\n function () {\n content = require(\"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};","import React, { useEffect, useState } from 'react';\nimport classNames from '../../utils/classnames';\nimport { getTempFileURL } from '../../utils/tcb';\nimport './index.css';\nimport { LOAD_ERR_IMG_BASE64 } from '../../utils/constant';\nimport type { CommonPropsType } from '../../types';\nimport destr from 'destr';\n\nexport interface PropsType extends CommonPropsType {\n value: string;\n}\n\nexport default function RichTextView({\n value = '',\n className,\n style,\n id,\n}: PropsType) {\n const parseValue = destr(value);\n const cls = classNames({\n 'weda-ui': true,\n 'weda-RichTextView': true,\n [className]: className,\n });\n const [displayValue, setDisplayValue] = useState('');\n const regex = new RegExp(/<img [^>]*src=\\\\*\"([^\"]*?)\\\\*\"/g);\n const iferror = `javascript:this.width='80';this.src='${LOAD_ERR_IMG_BASE64}';this.onerror=null`;\n\n let tempValue = parseValue\n .toString()\n .replace(/<img /g, `<img onerror=${iferror} style=\"max-width:100%\" `);\n\n const getSrc = async (img) => {\n const url = img.replace(regex, '$1');\n if (img.includes('cloud://')) {\n const newURL = await getTempFileURL(url);\n if (newURL) {\n tempValue = tempValue.replace(new RegExp(url, 'g'), newURL);\n setDisplayValue(tempValue);\n }\n }\n };\n\n useEffect(() => {\n setDisplayValue(tempValue);\n try {\n const imgs = parseValue.match(regex);\n if (imgs && imgs.length > 0) {\n imgs.forEach((img) => {\n getSrc(img);\n });\n }\n } catch (e) {}\n }, [value]);\n\n return (\n displayValue && (\n <div className={cls} style={style} id={id}>\n <div dangerouslySetInnerHTML={{ __html: displayValue }}></div>\n </div>\n )\n );\n}\n","import React, { useState } from 'react';\nimport Editor, { EditorState, convertEditorStateToHTML } from 'kedao';\n\nimport { ContentUtils } from 'kedao/lib/utils';\nimport { createStateFromContent } from 'kedao/lib/editor';\n\nexport default function RichTextEdit({ value }) {\n const [editorState, setEditorState] = useState(\n value ? createStateFromContent(value) : EditorState.createEmpty()\n );\n\n const handleChange = (newEditorState: EditorState) => {\n setEditorState(newEditorState);\n console.log('html', convertEditorStateToHTML(newEditorState, {}));\n };\n return (\n <div className=\"App\">\n <Editor\n excludeControls={['media', 'fullscreen']}\n value={editorState}\n onChange={handleChange}\n />\n </div>\n );\n}\n","var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (module.hot) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n\n var p;\n\n for (p in a) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (a[p] !== b[p]) {\n return false;\n }\n }\n\n for (p in b) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!a[p]) {\n return false;\n }\n }\n\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n \"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\",\n function () {\n content = require(\"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};","import * as React from 'react';\nimport classNames from '../../utils/classnames';\nimport type { CommonPropsType, unknownFunction } from '../../types';\nimport './index.css';\n\nexport interface PropsType extends CommonPropsType {\n text: string;\n level: string;\n maxLines: number;\n space: boolean;\n userSelect: boolean;\n contenteditable: HTMLParagraphElement['contentEditable'];\n onInput?: unknownFunction;\n onBlur?: unknownFunction;\n}\nexport default function Text({\n text,\n maxLines,\n space,\n userSelect,\n style,\n className,\n events,\n id,\n level,\n contenteditable,\n onInput,\n onBlur,\n}: PropsType) {\n const textStyle: React.CSSProperties = {\n WebkitLineClamp: maxLines,\n whiteSpace: space ? 'pre-wrap' : 'pre-line',\n };\n\n if (!userSelect) {\n textStyle.userSelect = 'none';\n }\n const levelName = level === '0' || !level ? '' : `level_${level}`;\n\n const inlineStyle = React.useMemo(\n () => ({ ...textStyle, ...style }),\n [textStyle, style]\n );\n return (\n <p\n //@ts-expect-error contentEditable type def sucks\n contentEditable={contenteditable}\n onInput={onInput}\n onBlur={onBlur}\n style={inlineStyle}\n className={classNames('weda-text', 'weda-ui', className, levelName)}\n id={id}\n onClick={(e) => events.tap({}, { originEvent: e })}\n >\n {text}\n </p>\n );\n}\n","var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (module.hot) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n\n var p;\n\n for (p in a) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (a[p] !== b[p]) {\n return false;\n }\n }\n\n for (p in b) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!a[p]) {\n return false;\n }\n }\n\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n \"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\",\n function () {\n content = require(\"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};","import * as React from 'react';\nimport { UploadFilePc } from '../form/uploaderFile/uploadFile.pc';\nimport { UploadFileH5 } from '../form/uploaderFile/uploadFile.h5';\nimport {\n filterStrList,\n isCloudFileID,\n downloadFile,\n usePlatform,\n transFileCloudidToName,\n} from '../../utils/platform';\nimport { getTempFileURL } from '../../utils/tcb';\nimport './index.css';\n\nconst CLASS_PREFIX = 'weda-uploader-file-view';\n\n/**\n * 上传文件回显,传showType强制展示某端样式,否则根据平台自动判断\n */\nexport default function UploaderFileView({\n value,\n className,\n single = true, // 展示为单行 a 标签\n showType, // 展示端为 pc 还是 h5 样式\n ...rest\n}) {\n const fileIDList = filterStrList(value);\n if (single) {\n return <FileView fileID={fileIDList[0]} />;\n } else {\n const platform = usePlatform();\n const showTypeMix = showType ? (showType === 'h5' ? 'h5' : 'pc') : platform;\n const uploadFileProps = {\n ...rest,\n className: `${CLASS_PREFIX} ${className}`,\n decorator: null,\n labelVisible: false,\n value: fileIDList,\n isEdit: false,\n };\n return showTypeMix === 'pc' ? (\n <UploadFilePc {...uploadFileProps} />\n ) : (\n <UploadFileH5 {...uploadFileProps} />\n );\n }\n}\n\n/**\n * 单个文件回显,用在表格里面\n */\nconst FileView = ({ fileID }) => {\n const [src, setSrc] = React.useState('');\n\n React.useEffect(() => {\n const fetchFileId = async (id) => {\n if (isCloudFileID(id)) {\n try {\n const fileSrc = await getTempFileURL(id);\n setSrc(fileSrc);\n } catch (e) {}\n } else {\n setSrc(id);\n }\n };\n fetchFileId(fileID);\n }, [fileID]);\n\n const title = React.useMemo(() => {\n if (isCloudFileID(fileID)) {\n return transFileCloudidToName(fileID);\n } else {\n return fileID;\n }\n }, [fileID]);\n return (\n <a\n title={title}\n onClick={() => downloadFile(src)}\n className={`${CLASS_PREFIX}__single`}\n >\n {title}\n </a>\n );\n};\n","var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (module.hot) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n\n var p;\n\n for (p in a) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (a[p] !== b[p]) {\n return false;\n }\n }\n\n for (p in b) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!a[p]) {\n return false;\n }\n }\n\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n \"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\",\n function () {\n content = require(\"!!../../../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/postcss-loader/src/index.js??postcss!./index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};","import * as React from 'react';\nimport { TcbImage } from '../form/uploader/uploader.pc';\nimport classNames from '../../utils/classnames';\nimport './index.css';\nimport type { CommonPropsType } from '../../types';\nimport { emptyObject } from '../../utils/constant';\n\nconst CLASS_PREFIX = 'g-uploader-view';\n\n/**\n * 图片上传-展示组件\n */\nexport default function UploaderView({\n srcList, // 兼容 cloud:和https: 协议,兼容 字符串和字符串数组\n alt = '[加载失败]',\n gutter = 8,\n height = 100,\n width = 100,\n events = emptyObject,\n isZoom = true,\n isEmptyPlace = true,\n className,\n id,\n style,\n}: PropsType) {\n const cls = classNames({\n [CLASS_PREFIX]: true,\n [className]: className,\n });\n\n // 成功事件,返回加载成功的链接\n const [successList, setSuccessList] = React.useState([]);\n // 失败事件,返回加载失败的链接\n const [errorList, setErrorList] = React.useState([]);\n\n React.useEffect(() => {\n events.load && events.load({ success: successList, error: errorList });\n }, [successList, errorList]);\n\n const boxStyle = {\n marginRight: gutter,\n marginBottom: gutter,\n height: height,\n width: width,\n };\n\n const values = []\n .concat(srcList)\n .filter((d) => typeof d === 'string' && d !== '');\n\n return (\n <div className={cls} id={id} style={style}>\n <div className={`${CLASS_PREFIX}__image-list`}>\n {values.map((d, i) => {\n const imgProps = {\n fileID: d,\n className: `${CLASS_PREFIX}__image`,\n alt: alt,\n isZoom,\n onLoad: () => setSuccessList((list) => [...list, d]),\n onError: () => setErrorList((list) => [...list, d]),\n };\n return (\n <div\n className={`${CLASS_PREFIX}__image-box`}\n key={`${d}-${i}`}\n style={boxStyle}\n title={d}\n >\n <TcbImage {...imgProps} />\n </div>\n );\n })}\n {values.length === 0 && isEmptyPlace && (\n <div className={`${CLASS_PREFIX}__image-box`} style={boxStyle}>\n <img className={`${CLASS_PREFIX}__image`} alt=\"暂无图片\" />\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport interface PropsType extends CommonPropsType {\n srcList?: string[] | string;\n alt?: string; // 替代文字\n isZoom?: boolean; // 能否点击放大\n gutter?: number; // 图片间距\n height?: number; // 图片最大高度\n width?: number; // 图片最大宽度\n isEmptyPlace?: boolean; // 是否显示空值\n}\n","import * as components from './components';\nimport * as actions from './actions';\n\nexport default { components, actions };\n","/* !\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\nfunction classNames(...args) {\n const classes = [];\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (!arg) continue;\n\n const argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n const inner = classes.push(classNames(...arg));\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n Object.keys(arg).forEach((key) => {\n arg[key] && classes.push(key);\n });\n } else {\n classes.push(arg.toString());\n }\n }\n }\n\n return classes.join(' ');\n}\n\nexport default classNames;\n","export const TitleType = {\n LEFT: 'left',\n TOP: 'top',\n NONE: 'none',\n} as const;\n\nexport const LOAD_ERR_IMG_BASE64 =\n 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMjUuMzIgMTYuMzU5N0MyNi4wNzY0IDE2LjM1OTcgMjYuODI1NCAxNi41MDg3IDI3LjUyNDMgMTYuNzk4MUMyOC4yMjMxIDE3LjA4NzYgMjguODU4MSAxNy41MTE5IDI5LjM5MjkgMTguMDQ2OEMyOS45Mjc4IDE4LjU4MTYgMzAuMzUyMSAxOS4yMTY2IDMwLjY0MTYgMTkuOTE1NEMzMC45MzEgMjAuNjE0MyAzMS4wOCAyMS4zNjMzIDMxLjA4IDIyLjExOTdDMzEuMDggMjIuODc2MSAzMC45MzEgMjMuNjI1MSAzMC42NDE2IDI0LjMyMzlDMzAuMzUyMSAyNS4wMjI4IDI5LjkyNzggMjUuNjU3OCAyOS4zOTI5IDI2LjE5MjZDMjguODU4MSAyNi43Mjc1IDI4LjIyMzEgMjcuMTUxOCAyNy41MjQzIDI3LjQ0MTJDMjYuODI1NCAyNy43MzA3IDI2LjA3NjQgMjcuODc5NyAyNS4zMiAyNy44Nzk3QzIzLjc5MjQgMjcuODc5NyAyMi4zMjczIDI3LjI3MjggMjEuMjQ3MSAyNi4xOTI2QzIwLjE2NjkgMjUuMTEyNCAxOS41NiAyMy42NDczIDE5LjU2IDIyLjExOTdDMTkuNTYgMjAuNTkyIDIwLjE2NjkgMTkuMTI3IDIxLjI0NzEgMTguMDQ2OEMyMi4zMjczIDE2Ljk2NjUgMjMuNzkyNCAxNi4zNTk3IDI1LjMyIDE2LjM1OTdaTTI4IDMuNTU5NjlWMTQuODc2OEMyNy4xNzc3IDE0LjU4NjYgMjYuMTkyIDE0LjQzODggMjUuMzIgMTQuNDM5N0MyNC4wMzEgMTQuNDM5NyAyMi44MTU3IDE0Ljc1NzEgMjEuNzQ4OCAxNS4zMTg0TDIwLjc5NTIgMTMuMTU5N0wxNi4wMjU5IDIwLjAyNzVMOC40NDU3NiAxNi40NDFMMy41NiAyMy4zOTk3SDE3Ljc0NjJDMTcuOTg2NyAyNC44MjkgMTguNjI4MiAyNi4xNjA2IDE5LjU5NTggMjcuMjM5N0gxVjMuNTU5NjlIMjhaTTI1Ljk2IDI0LjAzOTdIMjQuNjhWMjUuMzE5N0gyNS45NlYyNC4wMzk3Wk0yNS45NiAxOC45MTk3SDI0LjY4VjIzLjM5OTdIMjUuOTZWMTguOTE5N1pNNi4xMiAxMC41OTk3QzYuMTIgMTEuOTk4MSA3LjE5OTA0IDEzLjEwODUgOC42MDc2OCAxMy4xNTg0QzEwLjAyMDggMTMuMjA3NyAxMS4yNCAxMi4wNDggMTEuMjQgMTAuNTk5N0MxMS4yNCA5LjI0NjA5IDEwLjA2NDMgOC4wODU3NyA4Ljc1MjMyIDguMDQwOTdDNy4yOTU2OCA3Ljk5MTY5IDYuMTIgOS4xNTEzNyA2LjEyIDEwLjU5OTdaIiBmaWxsPSIjQkNDNEQwIj48L3BhdGg+Cjwvc3ZnPgo=' as const;\n\nexport const REL_DICT = {\n equal: 'eq', // 等于\n unequal: 'neq', // 不等于\n include: 'search', // 包含\n exclude: '_exclude', // 不包含\n begin_with: '_begin_with', // 开头是\n greater: 'gt', // 大于\n greater_or_equal: 'gte', // 大于等于\n bigger_or_equal: 'gte', //大于等于\n less: 'lt', // 小于\n less_or_equal: 'lte', // 小于等于\n in: 'in', // 多选值\n not_in: 'nin', // 不在多选值\n} as const;\n\nexport const emptyObject = {} as const;\nexport const emptyArray = [] as const;\n","import isEqual from 'lodash.isequal';\n\nexport function serde(a) {\n return JSON.parse(JSON.stringify(a));\n}\n\nconst isObj = (a) => typeof a === 'object' && a !== null;\n\nexport default function (a, b, shouldSerde = false) {\n if (shouldSerde && isObj(a) && isObj(b)) {\n // for Proxy created by mbox\n return isEqual(serde(a), serde(b));\n }\n return isEqual(a, b);\n}\n","import { useMediaQuery } from '@react-hookz/web';\nimport { REL_DICT } from './constant';\n\n/**\n * 当前环境是否为 H5 端\n */\nexport const isH5Platform = () => {\n if (window.matchMedia) {\n return window.matchMedia('(max-width: 1024px)')?.matches;\n } else {\n let is = false;\n try {\n const ua = navigator && navigator.userAgent;\n is = /Android|webOS|BlackBerry|iPhone|iPad|iPod|iOS/i.test(ua);\n } catch (e) {\n null;\n }\n return is;\n }\n};\n\n/**\n * 判断当前是否是 cloud 开头的文件协议\n */\nexport const isCloudFileID = (url) => {\n return /^cloud:\\/\\/.*/.test(url);\n};\n\n/**\n * 判断当前是否是 http/https 开头的文件协议\n */\nexport const isHttpFileID = (url) => {\n return /^http(s?):\\/\\/.*/.test(url);\n};\n\nexport function usePlatform() {\n const smallScreen = useMediaQuery('(max-width: 1024px)') ?? isH5Platform();\n const touchDevice = useMediaQuery('(pointer:coarse)') ?? smallScreen;\n return touchDevice || smallScreen ? 'h5' : 'pc';\n}\n\n/**\n * 在h5下,判断当前是否是移动浏览器\n */\nexport function inH5IsMobile() {\n try {\n // 区分h5是在编辑器还是移动浏览器\n let is_mobile_ua = false;\n const ua = navigator && navigator.userAgent;\n is_mobile_ua = /Android|webOS|BlackBerry|iPhone|iPad|iPod|iOS/i.test(ua);\n return is_mobile_ua;\n } catch (e) {\n console.log('isMobile err', e);\n }\n}\n\n/**\n * 过滤非字符串,返回字符串数组\n * 用于兼容单个组件和组件数组\n */\nexport const filterStrList = (value) => {\n return [].concat(value).filter((d) => typeof d === 'string' && d !== '');\n};\n\n/**\n * 文件字节转换\n */\nexport const transSize = (size) => {\n const b = parseInt(size) || 0;\n const getBig = (d) => Math.ceil(d / 1024) || 0;\n if (b < 1024) {\n return `${size}B`;\n }\n const k = getBig(size);\n if (k < 1024) {\n return `${k}K`;\n }\n const m = getBig(k);\n if (m < 1024) {\n return `${m}M`;\n }\n const g = getBig(m);\n return `${g}G`;\n};\n\n/**\n * 链接转换为下载\n */\nexport const downloadFile = (url) => {\n if (!url) {\n return;\n }\n const urlObj = new URL(url);\n urlObj.searchParams.append('response-content-disposition', 'attawchment');\n const urls = urlObj.toString();\n window.open(urls);\n setTimeout(() => {\n window.URL.revokeObjectURL(urls);\n }, 0);\n};\n\n/**\n * 文件名截取,保留后缀类型\n */\nexport const cutFileTitle = (str = '', count = 10) => {\n let [title, type] = [str, ''];\n const dotIndex = `${str}`.lastIndexOf('.');\n if (dotIndex > -1) {\n type = str.slice(dotIndex + 1);\n title = str.slice(0, dotIndex);\n }\n if (title.length > count) {\n title = `${title.slice(0, 7)}...${title.slice(-3)}`;\n }\n if (type) {\n title = `${title}.${type}`;\n }\n return title;\n};\n\n/**\n * 判断是否在 ide 中\n */\nexport const isInIde = () => !!window?.app?.cloud?.IS_WEDA_IDE;\n\n/**\n * 解析素材资源\n */\nexport const resolveStaticResourceUrl = (path) => {\n try {\n // eslint-disable-next-line no-unsafe-optional-chaining\n const resourceUrl =\n window?.app?.__internal__?.resolveStaticResourceUrl(path);\n return resourceUrl;\n } catch (error) {\n return '';\n }\n};\n\n/**\n * cloudid和文件名转换\n */\nexport const transFileCloudidToName = (fileID) => {\n const uuidReg = /(file-)?[0-9a-f]{8}((-)?[0-9a-f]{4}){3}(-)?[0-9a-f]{12}-/;\n const lastIndex = `${fileID}`.lastIndexOf('/');\n const name = `${fileID}`.slice(lastIndex + 1);\n const title = name.replace(uuidReg, '');\n return title;\n};\n\n/**\n * 判断是否是url\n */\nconst reg =\n // eslint-disable-next-line no-useless-escape\n /(((^https?:(?:\\/\\/)?)(?:[-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9.-]+(?::\\d+)?|(?:www.|[-;:&=\\+\\$,\\w]+@)[A-Za-z0-9.-]+)((?:\\/[\\+~%\\/.\\w-_]*)?\\??(?:[-\\+=&;%@.\\w_]*)#?(?:[\\w]*))?)$/;\n\nexport const isUrl = (path) => reg.test(path);\n\n/**\n * 生成随机数\n */\nexport const randomStr = (len = 32) => {\n const s = [];\n const hexDigits = '0123456789abcdef';\n const dictLen = hexDigits.length;\n for (var i = 0; i < len; i++) {\n const index = Math.floor(Math.random() * dictLen);\n s[i] = hexDigits[index];\n }\n const result = s.join('');\n return result;\n};\n\n/**\n * 根据编辑器传入数据筛选条件,转换接口参数条件\n */\nexport const getWhereList = (where) => {\n const result = [];\n Array.isArray(where) &&\n where.forEach((item1) => {\n if (item1?.groupLogic !== 'or' && Array.isArray(item1?.logicData)) {\n item1?.logicData.forEach((item2) => {\n let [rel, val] = [REL_DICT[item2?.rel], item2?.value];\n if ('_begin_with' === rel) {\n rel = 'regex';\n val = `^${val}`;\n }\n if ('_exclude' === rel) {\n rel = 'regex';\n val = `^((?!${val}).)*$`;\n }\n if (item2?.logic !== 'or' && item2?.key && rel && val !== undefined) {\n result.push({ key: item2.key, rel, val });\n }\n });\n }\n });\n return result;\n};\n","import { isInIde } from './platform';\n/**\n * 云存储/云函数相关\n */\n\n// cloudbase._useDefaultAdapter();\n// const tcb = cloudbase.init({\n// env: 'hole-2ggmiaj108259587',\n// });\n\n// export default app;\n\n// import cloudbase from '@cloudbase/js-sdk';\n\n// cloudbase._useDefaultAdapter();\n// const tcb = cloudbase.init({\n// env: 'hole-2ggmiaj108259587',\n// });\n\n// export function getNativeCloudInstance() {\n// return tcb;\n// }\n\nexport async function getCloudInstance() {\n const tcb = await window?.app?.cloud?.getCloudInstance();\n return tcb;\n}\n\n/**\n * 获取单个临时链接\n * 单个cos文件,返回字符串\n * 多个cos文件,返回 {fileID: src} 这样的对象\n */\nexport async function getTempFileURL(data) {\n if (window?.app?.cloud?.getTempFileURL) {\n return await window?.app?.cloud?.getTempFileURL(data);\n }\n}\n\n/**\n * 云函数获取数据\n */\nexport async function callDataSource(param) {\n const { params, dataSourceName, methodName } = param;\n try {\n const res = await window?.app?.cloud?.callDataSource?.({\n params,\n dataSourceName,\n methodName,\n });\n return res;\n } catch (error) {\n console.error('错误', error);\n return {};\n }\n}\n\n/**\n * 云API:获取用户自定义导航内容\n * param\n * WeAppId: string,\n * EnvId: string,\n * PublishType?: string,\n */\nexport async function getAppCustomNav() {\n try {\n const PublishType = isInIde() ? 'preview' : '';\n const WeAppId = window?.app?.id;\n const res = await callWedaApi({\n action: 'DescribeAppCustomNav',\n serviceType: 'lowcode',\n data: {\n WeAppId,\n PublishType,\n },\n });\n return res;\n } catch (error) {\n console.error('错误', error);\n return {};\n }\n}\n\nexport function callWedaApi(...args) {\n return window.app.cloud.callWedaApi(...args);\n}\n","import { useCallback, useState } from 'react';\n\nexport const useSetState = <T extends object>(\n initialState: T = {} as T\n): [T, (patch: Partial<T> | ((prevState: T) => Partial<T>)) => void] => {\n const [state, set] = useState<T>(initialState);\n const setState = useCallback((patch) => {\n set((prevState) =>\n Object.assign(\n {},\n prevState,\n patch instanceof Function ? patch(prevState) : patch\n )\n );\n }, []);\n\n return [state, setState];\n};\n","import * as weui from 'weui.js';\n\nexport default weui;\n","var api = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../node_modules/postcss-loader/src/index.js??postcss!./weda-ui.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (module.hot) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n\n var p;\n\n for (p in a) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (a[p] !== b[p]) {\n return false;\n }\n }\n\n for (p in b) {\n if (isNamedExport && p === 'default') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!a[p]) {\n return false;\n }\n }\n\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n \"!!../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../node_modules/postcss-loader/src/index.js??postcss!./weda-ui.css\",\n function () {\n content = require(\"!!../../node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../node_modules/postcss-loader/src/index.js??postcss!./weda-ui.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};"],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACNA;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;;;AAUA;AAGA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAfA;AAAA;AAAA;AACA;AAgBA;AACA;AAEA;AAEA;AACA;AAAA;AAGA;AACA;AAAA;AAAA;AAHA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AAAA;AAAA;AACA;;AADA;AAAA;AACA;AADA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAEA;AAFA;AAeA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AALA;AAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAPA;AAAA;AAAA;AAAA;AAAA;AAWA;AACA;AAAA;AAAA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AANA;AAAA;AAAA;AAAA;AAAA;AAXA;AAAA;AAAA;AAAA;AAAA;AAFA;AAyBA;AACA;AAAA;AAAA;AACA;AACA;AA/BA;AAiCA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AA7DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvDA;AAAA;AAAA;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjFA;AACA;AAKA;AACA;AAGA;AACA;AACA;;;AAEA;AAYA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AACA;AAaA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AANA;AASA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AATA;AAAA;AAAA;AAAA;AAAA;AAgBA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AAeA;AACA;AAxEA;AAaA;;;AAbA;AACA;AAwEA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5HA;AAEA;AACA;;AAEA;AAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAzBA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNA;AACA;;;AAGA;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAFA;AAIA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AAoBA;AACA;AA1CA;AA8DA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjFA;AAEA;AACA;AACA;AACA;;AAGA;AASA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AASA;AACA;AAZA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AAmBA;AACA;AAAA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AALA;AADA;AAWA;AACA;AACA;AACA;AAHA;AADA;AAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AATA;AAAA;AAAA;AAAA;AAAA;AAcA;AACA;AACA;AAFA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAvBA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AAmCA;AACA;AAxEA;AAUA;;;AAVA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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AAFA;AACA;AAUA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AAIA;AACA;AACA;AAAA;AACA;AAIA;AACA;AApBA;AAsBA;AACA;AAhFA;AACA;AADA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/bA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjFA;AAEA;AACA;AACA;;AAmBA;AACA;AACA;AASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAFA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AAIA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AARA;AAAA;AACA;AADA;AASA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAZA;AAAA;AAAA;AAAA;AAAA;AACA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AApBA;AAsBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtBA;AAAA;AAAA;AAAA;AAAA;AA0BA;AA9FA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AASA;AACA;AAEA;AACA;AACA;;;AAEA;AASA;AAmBA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAFA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAEA;AACA;AATA;AAAA;AAAA;AAAA;AAAA;AAJA;AACA;AAmBA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAJA;AAKA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAFA;AADA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AAjBA;AAkBA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AA3BA;AAAA;AAAA;AAAA;AAAA;AAPA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AACA;AAuCA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AACA;AA9IA;AA2BA;;;AA3BA;AA+IA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AANA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAWA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAGA;AACA;AACA;AACA;AADA;AAGA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AALA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AAUA;AACA;AAFA;AAAA;AAAA;AAAA;AAAA;AAKA;AACA;AAFA;AAAA;AAAA;AAAA;AAAA;AAKA;AACA;AAFA;AAAA;AAAA;AAAA;AAAA;AAjBA;AAAA;AAAA;AAAA;AAAA;AAPA;AAAA;AAAA;AAAA;AAAA;AA+BA;AACA;AAAA;AAAA;AACA;AACA;AACA;AALA;AAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAHA;AAAA;AAAA;AAAA;AAAA;AAOA;AACA;AACA;AACA;AAAA;AAAA;AACA;AALA;AAAA;AAAA;AAAA;AAAA;AAAA;AAPA;AAAA;AAAA;AAAA;AAAA;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AADA;AAGA;AACA;AACA;AAAA;AACA;AACA;AADA;AAGA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AADA;AAJA;AASA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AAHA;AAAA;AAKA;AACA;AACA;AAHA;AACA;AALA;AAAA;AAIA;AAKA;AACA;AACA;AACA;AAFA;AAVA;AAAA;AACA;AADA;AAAA;AAAA;AAeA;AACA;AADA;AAGA;AACA;AADA;AACA;AAnBA;AAAA;AAsBA;AAAA;AAAA;AAAA;AAtBA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAyBA;AACA;AA1DA;AA4DA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAJA;AASA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAFA;AATA;AAAA;AAAA;AAAA;AAAA;AADA;AA5DA;AAAA;AAAA;AAAA;AAAA;AA+EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAzGA;AAAA;AAAA;AAAA;AAAA;AA/BA;AA6IA;AACA;AAtLA;AAKA;;;AALA;AAuLA;AAAA;AACA;AADA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAGA;AACA;AAJA;AAAA;AACA;AADA;AAMA;AACA;AAPA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AASA;AACA;AADA;AACA;AAVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AACA;AAaA;AACA;AAEA;AAEA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAEA;AAEA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAPA;AAAA;AAAA;AAAA;AAAA;AASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAVA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AAeA;AACA;AACA;AACA;AACA;AAJA;AADA;AAAA;AAAA;AAAA;AAAA;AAfA;AAAA;AAAA;AAAA;AAAA;AADA;AA4BA;AACA;AAvDA;AACA;AADA;AAwDA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA;AAiBA;AACA;AACA;AACA;AAHA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AAEA;;AAMA;AAKA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAGA;AACA;AAAA;AACA;AACA;AACA;AACA;AARA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AACA;AAUA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AAKA;AACA;AAnDA;AACA;AADA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbA;AACA;AAGA;;AAEA;AAAA;AACA;AADA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAEA;AACA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AAQA;AACA;AAnBA;AACA;AADA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjFA;AACA;AAEA;;AAYA;AAaA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AARA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA;AACA;AA3CA;AACA;AADA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjFA;AACA;AACA;AACA;AAOA;AACA;;AAEA;AAEA;AACA;AACA;AACA;AAAA;AAMA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AANA;AACA;AAOA;AACA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAhCA;AAWA;;;AAXA;AACA;AA+BA;AAAA;AACA;AADA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AACA;AADA;AAGA;AACA;AAJA;AAAA;AACA;AADA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AACA;AADA;AAOA;AACA;AARA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AACA;AASA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA;AACA;AAlCA;AACA;AADA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjFA;AACA;AACA;AACA;AAEA;;AAEA;AAEA;AACA;AACA;AACA;AAAA;AAYA;AACA;AADA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAKA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAJA;AAOA;AAEA;AAAA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AANA;AAQA;AAEA;AAEA;AACA;AAJA;AAMA;AAAA;AAAA;AAAA;AANA;AAAA;AAAA;AAAA;AAAA;AASA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AAtBA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AA8BA;AACA;AAtEA;AACA;AADA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbA;AACA;AAEA;AAAA;AAAA;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA;AACA;AAEA;AAAA;AACA;AADA;AAwBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AAHA;AAMA;AAGA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AAbA;AAeA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AATA;AACA;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxMA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;;AAVA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AAUA;AAAA;AAAA;AAMA;AACA;AACA;AACA;;AATA;AAAA;AACA;AADA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AASA;AAAA;AAAA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAtBA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAIA;AACA;AACA;AAHA;AACA;AAJA;AAGA;AAHA;AACA;AADA;AAAA;AAAA;AAUA;AAVA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AAsBA;AAAA;AAAA;AACA;;AADA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AAHA;AAAA;AAKA;AACA;AACA;AACA;AACA;AAFA;AAHA;AACA;AALA;AAIA;AAJA;AACA;AADA;AAAA;AAAA;AAcA;AAdA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AAmBA;AAAA;AACA;AAAA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtFA;AAEA;AAEA;AACA;AADA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAOA;AAEA;AACA;AACA;AAhBA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;A","sourceRoot":""}
|