@yoka-ui/ui 1.0.10-test → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@Docs-yoka/exports.generated.md +68 -62
- package/LICENSE +21 -0
- package/README.md +40 -189
- package/dist/es/assets/image/skills.zip +0 -0
- package/dist/es/business/AiChat/aichat-logo.svg +1 -0
- package/dist/es/business/AiChat/index.d.ts +3 -3
- package/dist/es/business/AiChat/index.js +322 -137
- package/dist/es/business/AiChat/index.js.map +3 -3
- package/dist/es/business/AiChat/index.module.less +24 -0
- package/dist/es/business/AiChat/intentRecognizer.js.map +1 -1
- package/dist/es/business/AiChat/navigationManager.js +6 -6
- package/dist/es/business/AiChat/navigationManager.js.map +2 -2
- package/dist/es/business/AiChat/sse.d.ts +15 -0
- package/dist/es/business/AiChat/sse.js +118 -7
- package/dist/es/business/AiChat/sse.js.map +2 -2
- package/dist/es/business/AiChat/type.d.ts +22 -23
- package/dist/es/business/AiChat/useAiChat.js +105 -75
- package/dist/es/business/AiChat/useAiChat.js.map +3 -3
- package/dist/es/business/AiChat/useTaskWorkflow.d.ts +1 -2
- package/dist/es/business/AiChat/useTaskWorkflow.js +2 -36
- package/dist/es/business/AiChat/useTaskWorkflow.js.map +2 -2
- package/dist/es/business/DrawerPageInfo/index.js.map +1 -1
- package/dist/es/business/Editor/index.d.ts +1 -1
- package/dist/es/business/Editor/index.js.map +2 -2
- package/dist/es/business/Empty/index.js +1 -1
- package/dist/es/business/Empty/index.js.map +1 -1
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.js +2 -2
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.js.map +2 -2
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.js +3 -3
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.js.map +2 -2
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.js +2 -2
- package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.js.map +2 -2
- package/dist/es/business/ModCommonFilter/index.d.ts +1 -1
- package/dist/es/business/ModCommonFilter/index.js.map +2 -2
- package/dist/es/business/YkCharts/Area.d.ts +18 -0
- package/dist/es/business/YkCharts/Area.js +336 -0
- package/dist/es/business/YkCharts/Area.js.map +7 -0
- package/dist/es/business/YkCharts/Bar.d.ts +21 -0
- package/dist/es/business/YkCharts/Bar.js +316 -0
- package/dist/es/business/YkCharts/Bar.js.map +7 -0
- package/dist/es/business/YkCharts/BarProperty.d.ts +21 -0
- package/dist/es/business/YkCharts/BarProperty.js +357 -0
- package/dist/es/business/YkCharts/BarProperty.js.map +7 -0
- package/dist/es/business/YkCharts/BarTotal.d.ts +21 -0
- package/dist/es/business/YkCharts/BarTotal.js +292 -0
- package/dist/es/business/YkCharts/BarTotal.js.map +7 -0
- package/dist/es/business/YkCharts/Line.d.ts +21 -0
- package/dist/es/business/YkCharts/Line.js +342 -0
- package/dist/es/business/YkCharts/Line.js.map +7 -0
- package/dist/es/business/YkCharts/Pie.d.ts +19 -0
- package/dist/es/business/YkCharts/Pie.js +107 -0
- package/dist/es/business/YkCharts/Pie.js.map +7 -0
- package/dist/es/business/YkCharts/PieProperty.d.ts +18 -0
- package/dist/es/business/YkCharts/PieProperty.js +180 -0
- package/dist/es/business/YkCharts/PieProperty.js.map +7 -0
- package/dist/es/business/YkCharts/Pies.d.ts +26 -0
- package/dist/es/business/YkCharts/Pies.js +352 -0
- package/dist/es/business/YkCharts/Pies.js.map +7 -0
- package/dist/es/business/YkCharts/constants.d.ts +1 -0
- package/dist/es/business/YkCharts/constants.js +47 -0
- package/dist/es/business/YkCharts/constants.js.map +7 -0
- package/dist/es/business/YkCharts/hooks.d.ts +4 -0
- package/dist/es/business/YkCharts/hooks.js +37 -0
- package/dist/es/business/YkCharts/hooks.js.map +7 -0
- package/dist/es/business/YkCharts/index.d.ts +9 -0
- package/dist/es/business/YkCharts/index.js +20 -0
- package/dist/es/business/YkCharts/index.js.map +7 -0
- package/dist/es/business/YkCharts/index.module.less +164 -0
- package/dist/es/business/YkCharts/tooltip.less +92 -0
- package/dist/es/business/YkCharts/transformData.js +16 -0
- package/dist/es/business/YkCharts/transformData.js.map +7 -0
- package/dist/es/business/YkCharts/typing.d.ts +74 -0
- package/dist/es/business/YkCharts/typing.js +1 -0
- package/dist/es/business/YkCharts/typing.js.map +7 -0
- package/dist/es/business/YkCharts/utils.d.ts +4 -0
- package/dist/es/business/YkCharts/utils.js +109 -0
- package/dist/es/business/YkCharts/utils.js.map +7 -0
- package/dist/es/business/YkCharts/variables.less +13 -0
- package/dist/es/business/YkLoginModule/SmsLoginForm.d.ts +25 -0
- package/dist/es/business/YkLoginModule/SmsLoginForm.js +178 -0
- package/dist/es/business/YkLoginModule/SmsLoginForm.js.map +7 -0
- package/dist/es/business/YkLoginModule/index.d.ts +48 -0
- package/dist/es/business/YkLoginModule/index.js +198 -0
- package/dist/es/business/YkLoginModule/index.js.map +7 -0
- package/dist/es/business/YkLoginModule/styles.module.less +169 -0
- package/dist/es/business/YkPorjectSelect/index.d.ts +1 -1
- package/dist/es/business/YkPorjectSelect/index.js +2 -2
- package/dist/es/business/YkPorjectSelect/index.js.map +2 -2
- package/dist/es/business/YkSqlEdit/code-mirror-custom.module.less +154 -0
- package/dist/es/business/YkSqlEdit/index.d.ts +20 -0
- package/dist/es/business/YkSqlEdit/index.js +180 -0
- package/dist/es/business/YkSqlEdit/index.js.map +7 -0
- package/dist/es/business/YkSqlEdit/sql-language.d.ts +11 -0
- package/dist/es/business/YkSqlEdit/sql-language.js +1460 -0
- package/dist/es/business/YkSqlEdit/sql-language.js.map +7 -0
- package/dist/es/components/DebounceInput/index.js.map +2 -2
- package/dist/es/components/MultipleSelect/index.d.ts +14 -0
- package/dist/es/components/MultipleSelect/index.js +1 -1
- package/dist/es/components/MultipleSelect/index.js.map +2 -2
- package/dist/es/components/RefreshButton/index.js.map +2 -2
- package/dist/es/components/SearchWithHistory/index.js +1 -1
- package/dist/es/components/SearchWithHistory/index.js.map +2 -2
- package/dist/es/components/TextWithToolTip/index.d.ts +1 -1
- package/dist/es/components/TextWithToolTip/index.js.map +2 -2
- package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.d.ts +1 -24
- package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.js +2 -2
- package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.js.map +2 -2
- package/dist/es/components/TreeTransfer/index.d.ts +1 -24
- package/dist/es/components/TreeTransfer/index.js +8 -8
- package/dist/es/components/TreeTransfer/index.js.map +2 -2
- package/dist/es/components/TreeTransfer/utils/index.d.ts +1 -1
- package/dist/es/components/TreeTransfer/utils/index.js.map +2 -2
- package/dist/es/components/YKMarkdown/index.d.ts +11 -0
- package/dist/es/components/YKMarkdown/index.js +236 -0
- package/dist/es/components/YKMarkdown/index.js.map +7 -0
- package/dist/es/components/YKMarkdown/index.module.less +83 -0
- package/dist/es/components/YkDateRangePicker/YkDateRangePicker.mdx +194 -0
- package/dist/es/components/YkDateRangePicker/index.d.ts +9 -1
- package/dist/es/components/YkDateRangePicker/index.js +127 -61
- package/dist/es/components/YkDateRangePicker/index.js.map +2 -2
- package/dist/es/components/YkDateRangePicker/index.module.less +33 -9
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +1 -1
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +3 -2
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +2 -2
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +1 -1
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +23 -3
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +2 -2
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +1 -1
- package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +2 -2
- package/dist/es/components/YkRangeDateWithVS/index.d.ts +2 -2
- package/dist/es/components/YkRangeDateWithVS/index.js.map +2 -2
- package/dist/es/components/YkRangeDateWithVS/index.module.less +22 -4
- package/dist/es/components/YkRangeTimeWithRecent/index.d.ts +1 -1
- package/dist/es/components/YkRangeTimeWithRecent/index.js.map +2 -2
- package/dist/es/creative/ArcCheckbox/index.d.ts +12 -0
- package/dist/es/creative/ArcCheckbox/index.js +49 -0
- package/dist/es/creative/ArcCheckbox/index.js.map +7 -0
- package/dist/es/creative/ArcCheckbox/index.module.less +102 -0
- package/dist/es/creative/ButtonRadioWithInfo/index.js.map +1 -1
- package/dist/es/creative/ButtonWithProgress/index.d.ts +1 -1
- package/dist/es/creative/ButtonWithProgress/index.js.map +2 -2
- package/dist/es/creative/GlassSegmentedRadio/index.d.ts +24 -0
- package/dist/es/creative/GlassSegmentedRadio/index.js +75 -0
- package/dist/es/creative/GlassSegmentedRadio/index.js.map +7 -0
- package/dist/es/creative/GlassSegmentedRadio/index.module.less +241 -0
- package/dist/es/creative/SkillsWriter/index.d.ts +3 -0
- package/dist/es/creative/SkillsWriter/index.js +191 -0
- package/dist/es/creative/SkillsWriter/index.js.map +7 -0
- package/dist/es/creative/SkillsWriter/index.module.less +21 -0
- package/dist/es/index.d.ts +32 -24
- package/dist/es/index.js +90 -80
- package/dist/es/index.js.map +2 -2
- package/dist/es/index.less +45 -0
- package/dist/es/layout/FlexGrid/index.d.ts +1 -1
- package/dist/es/layout/FlexGrid/index.js.map +2 -2
- package/dist/es/layout/YkContainer/index.js.map +1 -1
- package/dist/es/layout/YkDrawer/index.d.ts +1 -1
- package/dist/es/layout/YkDrawer/index.js.map +2 -2
- package/dist/es/ui/LabelSelect/demo.js +1 -1
- package/dist/es/ui/LabelSelect/demo.js.map +2 -2
- package/dist/es/ui/LabelSelect/index.d.ts +1 -1
- package/dist/es/ui/LabelSelect/index.js +1 -1
- package/dist/es/ui/LabelSelect/index.js.map +2 -2
- package/dist/es/ui/LogicOperator/index.d.ts +1 -1
- package/dist/es/ui/LogicOperator/index.js.map +2 -2
- package/dist/es/ui/YkButton/index.d.ts +1 -1
- package/dist/es/ui/YkButton/index.js.map +2 -2
- package/dist/es/ui/YkCard/index.d.ts +1 -1
- package/dist/es/ui/YkCard/index.js +1 -1
- package/dist/es/ui/YkCard/index.js.map +2 -2
- package/dist/es/ui/YkCheckbox/index.d.ts +1 -1
- package/dist/es/ui/YkCheckbox/index.js.map +2 -2
- package/dist/es/ui/YkDescriptions/index.d.ts +1 -1
- package/dist/es/ui/YkDescriptions/index.js.map +2 -2
- package/dist/es/ui/YkPagination/index.d.ts +1 -1
- package/dist/es/ui/YkPagination/index.js.map +2 -2
- package/dist/es/ui/YkRadio/index.d.ts +1 -1
- package/dist/es/ui/YkRadio/index.js.map +2 -2
- package/dist/es/ui/YkSegmented/index.d.ts +1 -1
- package/dist/es/ui/YkSegmented/index.js.map +2 -2
- package/dist/es/ui/YkSelect/index.d.ts +1 -1
- package/dist/es/ui/YkSelect/index.js.map +2 -2
- package/dist/es/ui/YkSpin/index.d.ts +1 -1
- package/dist/es/ui/YkSpin/index.js.map +2 -2
- package/dist/es/ui/YkStatistic/index.d.ts +1 -1
- package/dist/es/ui/YkStatistic/index.js.map +2 -2
- package/dist/es/ui/YkSwitch/index.d.ts +1 -1
- package/dist/es/ui/YkSwitch/index.js.map +2 -2
- package/dist/es/ui/YkTabs/index.d.ts +1 -1
- package/dist/es/ui/YkTabs/index.js.map +2 -2
- package/dist/es/ui/YkTooltip/index.d.ts +1 -1
- package/dist/es/ui/YkTooltip/index.js.map +2 -2
- package/dist/es/utils/styleUtils.js.map +2 -2
- package/dist/es/utils/ykStorybookDoc.d.ts +15 -0
- package/dist/es/utils/ykStorybookDoc.js +24 -2
- package/dist/es/utils/ykStorybookDoc.js.map +2 -2
- package/dist/lib/assets/image/skills.zip +0 -0
- package/dist/lib/business/AiChat/aichat-logo.svg +1 -0
- package/dist/lib/business/AiChat/index.d.ts +3 -3
- package/dist/lib/business/AiChat/index.js +311 -129
- package/dist/lib/business/AiChat/index.js.map +3 -3
- package/dist/lib/business/AiChat/index.module.less +24 -0
- package/dist/lib/business/AiChat/intentRecognizer.js.map +1 -1
- package/dist/lib/business/AiChat/navigationManager.js +6 -6
- package/dist/lib/business/AiChat/navigationManager.js.map +2 -2
- package/dist/lib/business/AiChat/sse.d.ts +15 -0
- package/dist/lib/business/AiChat/sse.js +117 -7
- package/dist/lib/business/AiChat/sse.js.map +2 -2
- package/dist/lib/business/AiChat/type.d.ts +22 -23
- package/dist/lib/business/AiChat/type.js.map +1 -1
- package/dist/lib/business/AiChat/useAiChat.js +104 -74
- package/dist/lib/business/AiChat/useAiChat.js.map +3 -3
- package/dist/lib/business/AiChat/useTaskWorkflow.d.ts +1 -2
- package/dist/lib/business/AiChat/useTaskWorkflow.js +0 -34
- package/dist/lib/business/AiChat/useTaskWorkflow.js.map +2 -2
- package/dist/lib/business/DrawerPageInfo/index.js.map +1 -1
- package/dist/lib/business/Editor/index.d.ts +1 -1
- package/dist/lib/business/Editor/index.js.map +2 -2
- package/dist/lib/business/Empty/index.js +1 -1
- package/dist/lib/business/Empty/index.js.map +1 -1
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js +3 -3
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js.map +2 -2
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js +4 -4
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js.map +2 -2
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js +3 -3
- package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js.map +2 -2
- package/dist/lib/business/ModCommonFilter/index.d.ts +1 -1
- package/dist/lib/business/ModCommonFilter/index.js.map +2 -2
- package/dist/lib/business/YkCharts/Area.d.ts +18 -0
- package/dist/lib/business/YkCharts/Area.js +346 -0
- package/dist/lib/business/YkCharts/Area.js.map +7 -0
- package/dist/lib/business/YkCharts/Bar.d.ts +21 -0
- package/dist/lib/business/YkCharts/Bar.js +323 -0
- package/dist/lib/business/YkCharts/Bar.js.map +7 -0
- package/dist/lib/business/YkCharts/BarProperty.d.ts +21 -0
- package/dist/lib/business/YkCharts/BarProperty.js +370 -0
- package/dist/lib/business/YkCharts/BarProperty.js.map +7 -0
- package/dist/lib/business/YkCharts/BarTotal.d.ts +21 -0
- package/dist/lib/business/YkCharts/BarTotal.js +298 -0
- package/dist/lib/business/YkCharts/BarTotal.js.map +7 -0
- package/dist/lib/business/YkCharts/Line.d.ts +21 -0
- package/dist/lib/business/YkCharts/Line.js +349 -0
- package/dist/lib/business/YkCharts/Line.js.map +7 -0
- package/dist/lib/business/YkCharts/Pie.d.ts +19 -0
- package/dist/lib/business/YkCharts/Pie.js +117 -0
- package/dist/lib/business/YkCharts/Pie.js.map +7 -0
- package/dist/lib/business/YkCharts/PieProperty.d.ts +18 -0
- package/dist/lib/business/YkCharts/PieProperty.js +193 -0
- package/dist/lib/business/YkCharts/PieProperty.js.map +7 -0
- package/dist/lib/business/YkCharts/Pies.d.ts +26 -0
- package/dist/lib/business/YkCharts/Pies.js +341 -0
- package/dist/lib/business/YkCharts/Pies.js.map +7 -0
- package/dist/lib/business/YkCharts/constants.d.ts +1 -0
- package/dist/lib/business/YkCharts/constants.js +71 -0
- package/dist/lib/business/YkCharts/constants.js.map +7 -0
- package/dist/lib/business/YkCharts/hooks.d.ts +4 -0
- package/dist/lib/business/YkCharts/hooks.js +62 -0
- package/dist/lib/business/YkCharts/hooks.js.map +7 -0
- package/dist/lib/business/YkCharts/index.d.ts +9 -0
- package/dist/lib/business/YkCharts/index.js +61 -0
- package/dist/lib/business/YkCharts/index.js.map +7 -0
- package/dist/lib/business/YkCharts/index.module.less +164 -0
- package/dist/lib/business/YkCharts/tooltip.less +92 -0
- package/dist/lib/business/YkCharts/transformData.js +40 -0
- package/dist/lib/business/YkCharts/transformData.js.map +7 -0
- package/dist/lib/business/YkCharts/typing.d.ts +74 -0
- package/dist/lib/business/YkCharts/typing.js +18 -0
- package/dist/lib/business/YkCharts/typing.js.map +7 -0
- package/dist/lib/business/YkCharts/utils.d.ts +4 -0
- package/dist/lib/business/YkCharts/utils.js +143 -0
- package/dist/lib/business/YkCharts/utils.js.map +7 -0
- package/dist/lib/business/YkCharts/variables.less +13 -0
- package/dist/lib/business/YkLoginModule/SmsLoginForm.d.ts +25 -0
- package/dist/lib/business/YkLoginModule/SmsLoginForm.js +171 -0
- package/dist/lib/business/YkLoginModule/SmsLoginForm.js.map +7 -0
- package/dist/lib/business/YkLoginModule/index.d.ts +48 -0
- package/dist/lib/business/YkLoginModule/index.js +206 -0
- package/dist/lib/business/YkLoginModule/index.js.map +7 -0
- package/dist/lib/business/YkLoginModule/styles.module.less +169 -0
- package/dist/lib/business/YkPorjectSelect/index.d.ts +1 -1
- package/dist/lib/business/YkPorjectSelect/index.js +3 -3
- package/dist/lib/business/YkPorjectSelect/index.js.map +2 -2
- package/dist/lib/business/YkSqlEdit/code-mirror-custom.module.less +154 -0
- package/dist/lib/business/YkSqlEdit/index.d.ts +20 -0
- package/dist/lib/business/YkSqlEdit/index.js +202 -0
- package/dist/lib/business/YkSqlEdit/index.js.map +7 -0
- package/dist/lib/business/YkSqlEdit/sql-language.d.ts +11 -0
- package/dist/lib/business/YkSqlEdit/sql-language.js +1493 -0
- package/dist/lib/business/YkSqlEdit/sql-language.js.map +7 -0
- package/dist/lib/components/DebounceInput/index.js.map +2 -2
- package/dist/lib/components/MultipleSelect/index.d.ts +14 -0
- package/dist/lib/components/MultipleSelect/index.js +1 -1
- package/dist/lib/components/MultipleSelect/index.js.map +2 -2
- package/dist/lib/components/RefreshButton/index.js.map +2 -2
- package/dist/lib/components/SearchWithHistory/index.js +1 -1
- package/dist/lib/components/SearchWithHistory/index.js.map +2 -2
- package/dist/lib/components/TextWithToolTip/index.d.ts +1 -1
- package/dist/lib/components/TextWithToolTip/index.js.map +2 -2
- package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.d.ts +1 -24
- package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js +2 -2
- package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js.map +2 -2
- package/dist/lib/components/TreeTransfer/index.d.ts +1 -24
- package/dist/lib/components/TreeTransfer/index.js +3 -3
- package/dist/lib/components/TreeTransfer/index.js.map +2 -2
- package/dist/lib/components/TreeTransfer/utils/index.d.ts +1 -1
- package/dist/lib/components/TreeTransfer/utils/index.js.map +2 -2
- package/dist/lib/components/YKMarkdown/index.d.ts +11 -0
- package/dist/lib/components/YKMarkdown/index.js +188 -0
- package/dist/lib/components/YKMarkdown/index.js.map +7 -0
- package/dist/lib/components/YKMarkdown/index.module.less +83 -0
- package/dist/lib/components/YkDateRangePicker/YkDateRangePicker.mdx +194 -0
- package/dist/lib/components/YkDateRangePicker/index.d.ts +9 -1
- package/dist/lib/components/YkDateRangePicker/index.js +127 -61
- package/dist/lib/components/YkDateRangePicker/index.js.map +2 -2
- package/dist/lib/components/YkDateRangePicker/index.module.less +33 -9
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +1 -1
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +3 -2
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +2 -2
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +1 -1
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +22 -2
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +2 -2
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +1 -1
- package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +2 -2
- package/dist/lib/components/YkRangeDateWithVS/index.d.ts +2 -2
- package/dist/lib/components/YkRangeDateWithVS/index.js.map +2 -2
- package/dist/lib/components/YkRangeDateWithVS/index.module.less +22 -4
- package/dist/lib/components/YkRangeTimeWithRecent/index.d.ts +1 -1
- package/dist/lib/components/YkRangeTimeWithRecent/index.js.map +2 -2
- package/dist/lib/creative/ArcCheckbox/index.d.ts +12 -0
- package/dist/lib/creative/ArcCheckbox/index.js +50 -0
- package/dist/lib/creative/ArcCheckbox/index.js.map +7 -0
- package/dist/lib/creative/ArcCheckbox/index.module.less +102 -0
- package/dist/lib/creative/ButtonRadioWithInfo/index.js.map +1 -1
- package/dist/lib/creative/ButtonWithProgress/index.d.ts +1 -1
- package/dist/lib/creative/ButtonWithProgress/index.js.map +2 -2
- package/dist/lib/creative/GlassSegmentedRadio/index.d.ts +24 -0
- package/dist/lib/creative/GlassSegmentedRadio/index.js +78 -0
- package/dist/lib/creative/GlassSegmentedRadio/index.js.map +7 -0
- package/dist/lib/creative/GlassSegmentedRadio/index.module.less +241 -0
- package/dist/lib/creative/SkillsWriter/index.d.ts +3 -0
- package/dist/lib/creative/SkillsWriter/index.js +200 -0
- package/dist/lib/creative/SkillsWriter/index.js.map +7 -0
- package/dist/lib/creative/SkillsWriter/index.module.less +21 -0
- package/dist/lib/index.d.ts +32 -24
- package/dist/lib/index.js +39 -24
- package/dist/lib/index.js.map +2 -2
- package/dist/lib/index.less +45 -0
- package/dist/lib/layout/FlexGrid/index.d.ts +1 -1
- package/dist/lib/layout/FlexGrid/index.js.map +2 -2
- package/dist/lib/layout/YkContainer/index.js.map +1 -1
- package/dist/lib/layout/YkDrawer/index.d.ts +1 -1
- package/dist/lib/layout/YkDrawer/index.js.map +2 -2
- package/dist/lib/ui/LabelSelect/demo.js +1 -1
- package/dist/lib/ui/LabelSelect/demo.js.map +2 -2
- package/dist/lib/ui/LabelSelect/index.d.ts +1 -1
- package/dist/lib/ui/LabelSelect/index.js +1 -1
- package/dist/lib/ui/LabelSelect/index.js.map +2 -2
- package/dist/lib/ui/LogicOperator/index.d.ts +1 -1
- package/dist/lib/ui/LogicOperator/index.js.map +2 -2
- package/dist/lib/ui/YkButton/index.d.ts +1 -1
- package/dist/lib/ui/YkButton/index.js.map +2 -2
- package/dist/lib/ui/YkCard/index.d.ts +1 -1
- package/dist/lib/ui/YkCard/index.js.map +2 -2
- package/dist/lib/ui/YkCheckbox/index.d.ts +1 -1
- package/dist/lib/ui/YkCheckbox/index.js.map +2 -2
- package/dist/lib/ui/YkDescriptions/index.d.ts +1 -1
- package/dist/lib/ui/YkDescriptions/index.js.map +2 -2
- package/dist/lib/ui/YkPagination/index.d.ts +1 -1
- package/dist/lib/ui/YkPagination/index.js.map +2 -2
- package/dist/lib/ui/YkRadio/index.d.ts +1 -1
- package/dist/lib/ui/YkRadio/index.js.map +2 -2
- package/dist/lib/ui/YkSegmented/index.d.ts +1 -1
- package/dist/lib/ui/YkSegmented/index.js.map +2 -2
- package/dist/lib/ui/YkSelect/index.d.ts +1 -1
- package/dist/lib/ui/YkSelect/index.js.map +2 -2
- package/dist/lib/ui/YkSpin/index.d.ts +1 -1
- package/dist/lib/ui/YkSpin/index.js.map +2 -2
- package/dist/lib/ui/YkStatistic/index.d.ts +1 -1
- package/dist/lib/ui/YkStatistic/index.js.map +2 -2
- package/dist/lib/ui/YkSwitch/index.d.ts +1 -1
- package/dist/lib/ui/YkSwitch/index.js.map +2 -2
- package/dist/lib/ui/YkTabs/index.d.ts +1 -1
- package/dist/lib/ui/YkTabs/index.js.map +2 -2
- package/dist/lib/ui/YkTooltip/index.d.ts +1 -1
- package/dist/lib/ui/YkTooltip/index.js.map +2 -2
- package/dist/lib/utils/styleUtils.js.map +2 -2
- package/dist/lib/utils/ykStorybookDoc.d.ts +15 -0
- package/dist/lib/utils/ykStorybookDoc.js +23 -1
- package/dist/lib/utils/ykStorybookDoc.js.map +2 -2
- package/package.json +151 -144
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/business/YkCharts/utils.ts
|
|
30
|
+
var utils_exports = {};
|
|
31
|
+
__export(utils_exports, {
|
|
32
|
+
formatNumber: () => formatNumber,
|
|
33
|
+
formatValue: () => formatValue,
|
|
34
|
+
sqlFormat: () => sqlFormat
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(utils_exports);
|
|
37
|
+
var import_decimal = __toESM(require("decimal.js"));
|
|
38
|
+
var formatValue = (value, format) => {
|
|
39
|
+
if (value === null || value === void 0 || value === "-") {
|
|
40
|
+
return "-";
|
|
41
|
+
}
|
|
42
|
+
if (!format || format === null) {
|
|
43
|
+
return value.toString();
|
|
44
|
+
}
|
|
45
|
+
const numValue = Number(value);
|
|
46
|
+
if (format === "percent") {
|
|
47
|
+
return new import_decimal.default(numValue).mul(100).toFixed(2) + "%";
|
|
48
|
+
}
|
|
49
|
+
if (format === "decimal") {
|
|
50
|
+
return new import_decimal.default(numValue).toFixed(2);
|
|
51
|
+
}
|
|
52
|
+
if (format === "integer") {
|
|
53
|
+
return new Intl.NumberFormat().format(numValue);
|
|
54
|
+
}
|
|
55
|
+
return numValue.toString();
|
|
56
|
+
};
|
|
57
|
+
function formatNumber(num, isInteger = false) {
|
|
58
|
+
const numberValue = typeof num === "string" ? parseFloat(num) : num;
|
|
59
|
+
if (Number.isNaN(numberValue)) {
|
|
60
|
+
return [(num == null ? void 0 : num.toString()) || "", ""];
|
|
61
|
+
}
|
|
62
|
+
let result = "";
|
|
63
|
+
let unit = "";
|
|
64
|
+
function setFixed(v, dot) {
|
|
65
|
+
const multiplier = 10 ** dot;
|
|
66
|
+
return Math.floor(v * multiplier) / multiplier;
|
|
67
|
+
}
|
|
68
|
+
if (numberValue < 1e3) {
|
|
69
|
+
result = new import_decimal.default(numberValue).toFixed(1);
|
|
70
|
+
} else if (numberValue < 1e4) {
|
|
71
|
+
result = numberValue.toLocaleString("en-US", {
|
|
72
|
+
minimumFractionDigits: isInteger ? 0 : 1,
|
|
73
|
+
maximumFractionDigits: isInteger ? 0 : 1
|
|
74
|
+
});
|
|
75
|
+
} else if (numberValue < 1e8) {
|
|
76
|
+
const v = setFixed(numberValue / 1e4, 2);
|
|
77
|
+
result = v.toLocaleString("en-US", {
|
|
78
|
+
minimumFractionDigits: isInteger ? 1 : 2,
|
|
79
|
+
maximumFractionDigits: isInteger ? 1 : 2
|
|
80
|
+
});
|
|
81
|
+
unit = " 万";
|
|
82
|
+
} else {
|
|
83
|
+
const v = setFixed(numberValue / 1e8, 2);
|
|
84
|
+
result = v.toLocaleString("en-US", {
|
|
85
|
+
minimumFractionDigits: isInteger ? 1 : 2,
|
|
86
|
+
maximumFractionDigits: isInteger ? 1 : 2
|
|
87
|
+
});
|
|
88
|
+
unit = " 亿";
|
|
89
|
+
}
|
|
90
|
+
if (isInteger) {
|
|
91
|
+
result = result.replace(/\.0+(?=\D*$)/, "");
|
|
92
|
+
}
|
|
93
|
+
return [result, unit];
|
|
94
|
+
}
|
|
95
|
+
function sqlFormat(value, format) {
|
|
96
|
+
if (value === null || value === void 0 || value === "-") {
|
|
97
|
+
return "-";
|
|
98
|
+
}
|
|
99
|
+
if (!format) {
|
|
100
|
+
return value == null ? void 0 : value.toString();
|
|
101
|
+
}
|
|
102
|
+
if (typeof value === "boolean") {
|
|
103
|
+
return value == null ? void 0 : value.toString();
|
|
104
|
+
}
|
|
105
|
+
const { type, decimals = 0, thousand_separator = true, unit = 0, prefix = "", suffix = "" } = format;
|
|
106
|
+
switch (type) {
|
|
107
|
+
case "number": {
|
|
108
|
+
let result;
|
|
109
|
+
if (thousand_separator) {
|
|
110
|
+
result = value ? value == null ? void 0 : value.toLocaleString("en-US", {
|
|
111
|
+
minimumFractionDigits: decimals,
|
|
112
|
+
maximumFractionDigits: decimals
|
|
113
|
+
}) : "0";
|
|
114
|
+
} else {
|
|
115
|
+
result = new import_decimal.default(value || 0).toFixed(decimals);
|
|
116
|
+
}
|
|
117
|
+
return `${prefix}${result}${suffix}`;
|
|
118
|
+
}
|
|
119
|
+
case "percent": {
|
|
120
|
+
const result = new import_decimal.default(value || 0).mul(100).toFixed(decimals) + "%";
|
|
121
|
+
return `${prefix}${result}${suffix}`;
|
|
122
|
+
}
|
|
123
|
+
case "currency": {
|
|
124
|
+
const numericValue = new import_decimal.default(value || 0).div(10 ** unit).toNumber();
|
|
125
|
+
const unitValue = numericValue.toLocaleString("en-US", {
|
|
126
|
+
minimumFractionDigits: decimals,
|
|
127
|
+
maximumFractionDigits: decimals
|
|
128
|
+
});
|
|
129
|
+
const unitLabel = unit === 0 ? "" : unit === 4 ? "万" : unit === 8 ? "亿" : "";
|
|
130
|
+
return `${prefix}${unitValue}${unitLabel}${suffix}`;
|
|
131
|
+
}
|
|
132
|
+
case "normal":
|
|
133
|
+
default:
|
|
134
|
+
return (value == null ? void 0 : value.toString()) || "-";
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
138
|
+
0 && (module.exports = {
|
|
139
|
+
formatNumber,
|
|
140
|
+
formatValue,
|
|
141
|
+
sqlFormat
|
|
142
|
+
});
|
|
143
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/business/YkCharts/utils.ts"],
|
|
4
|
+
"sourcesContent": ["import Decimal from 'decimal.js';\nimport type { Format, SqlFormat } from './typing';\n\nexport const formatValue = (value: string | number, format: Format | undefined | null): string => {\n if (value === null || value === undefined || value === '-') {\n return '-';\n }\n if (!format || format === null) {\n return value.toString();\n }\n const numValue = Number(value);\n if (format === 'percent') {\n return new Decimal(numValue).mul(100).toFixed(2) + '%';\n }\n if (format === 'decimal') {\n return new Decimal(numValue).toFixed(2);\n }\n if (format === 'integer') {\n return new Intl.NumberFormat().format(numValue);\n }\n return numValue.toString();\n};\n\nexport function formatNumber(num: number | string, isInteger: boolean = false): [string, string] {\n const numberValue = typeof num === 'string' ? parseFloat(num) : num;\n if (Number.isNaN(numberValue)) {\n return [num?.toString() || '', ''];\n }\n let result: string = '';\n let unit: string = '';\n function setFixed(v: number, dot: number) {\n const multiplier = 10 ** dot;\n return Math.floor(v * multiplier) / multiplier;\n }\n if (numberValue < 1000) {\n result = new Decimal(numberValue).toFixed(1);\n } else if (numberValue < 10000) {\n result = numberValue.toLocaleString('en-US', {\n minimumFractionDigits: isInteger ? 0 : 1,\n maximumFractionDigits: isInteger ? 0 : 1,\n });\n } else if (numberValue < 100000000) {\n const v = setFixed(numberValue / 10000, 2);\n result = v.toLocaleString('en-US', {\n minimumFractionDigits: isInteger ? 1 : 2,\n maximumFractionDigits: isInteger ? 1 : 2,\n });\n unit = ' 万';\n } else {\n const v = setFixed(numberValue / 100000000, 2);\n result = v.toLocaleString('en-US', {\n minimumFractionDigits: isInteger ? 1 : 2,\n maximumFractionDigits: isInteger ? 1 : 2,\n });\n unit = ' 亿';\n }\n if (isInteger) {\n result = result.replace(/\\.0+(?=\\D*$)/, '');\n }\n return [result, unit];\n}\n\nexport function sqlFormat(value: string | number | boolean, format: SqlFormat | undefined | null): string {\n if (value === null || value === undefined || value === '-') {\n return '-';\n }\n if (!format) {\n return value?.toString();\n }\n if (typeof value === 'boolean') {\n return value?.toString();\n }\n const { type, decimals = 0, thousand_separator = true, unit = 0, prefix = '', suffix = '' } = format;\n switch (type) {\n case 'number': {\n let result: string;\n if (thousand_separator) {\n result = value\n ? value?.toLocaleString('en-US', {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n })\n : '0';\n } else {\n result = new Decimal(value || 0).toFixed(decimals);\n }\n return `${prefix}${result}${suffix}`;\n }\n case 'percent': {\n const result = new Decimal(value || 0).mul(100).toFixed(decimals) + '%';\n return `${prefix}${result}${suffix}`;\n }\n case 'currency': {\n const numericValue = new Decimal(value || 0).div(10 ** unit).toNumber();\n const unitValue = numericValue.toLocaleString('en-US', {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n });\n const unitLabel = unit === 0 ? '' : unit === 4 ? '万' : unit === 8 ? '亿' : '';\n return `${prefix}${unitValue}${unitLabel}${suffix}`;\n }\n case 'normal':\n default:\n return value?.toString() || '-';\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Decimal"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@primaryColor: #3b86f9;
|
|
2
|
+
@iconPrimaryColor: #0a6bfd;
|
|
3
|
+
@fontPrimaryColor: #0a6bfd;
|
|
4
|
+
@borderPrimaryColor: #b0cffe;
|
|
5
|
+
@globalBgColor: #edeff4;
|
|
6
|
+
|
|
7
|
+
@ykFontFamilySemibold: 'PingFangSC-Semibold', 'PingFang SC', 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial,
|
|
8
|
+
sans-serif;
|
|
9
|
+
@ykFontFamilyRegular: 'PingFangSC-Regular', 'PingFang SC', 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial,
|
|
10
|
+
sans-serif;
|
|
11
|
+
@ykFontFamilyMedium: 'PingFangSC-Medium', 'PingFang SC', 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial,
|
|
12
|
+
sans-serif;
|
|
13
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type SmsLoginFormApi = {
|
|
3
|
+
sendSms: (payload: Record<string, unknown>) => Promise<{
|
|
4
|
+
code: number;
|
|
5
|
+
msg: string;
|
|
6
|
+
}>;
|
|
7
|
+
};
|
|
8
|
+
declare global {
|
|
9
|
+
interface Window {
|
|
10
|
+
sliderVerify: (element: 'pop' | HTMLElement, success: (res: {
|
|
11
|
+
token: string;
|
|
12
|
+
captchaVerification: string;
|
|
13
|
+
}) => void, options: {
|
|
14
|
+
appKey: string;
|
|
15
|
+
locale?: string;
|
|
16
|
+
}) => void;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export type SmsLoginFormProps = {
|
|
20
|
+
inputClassName: string;
|
|
21
|
+
api: SmsLoginFormApi;
|
|
22
|
+
appKey: string;
|
|
23
|
+
};
|
|
24
|
+
declare const SmsLogin: React.FC<SmsLoginFormProps>;
|
|
25
|
+
export default SmsLogin;
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/business/YkLoginModule/SmsLoginForm.tsx
|
|
30
|
+
var SmsLoginForm_exports = {};
|
|
31
|
+
__export(SmsLoginForm_exports, {
|
|
32
|
+
default: () => SmsLoginForm_default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(SmsLoginForm_exports);
|
|
35
|
+
var import_icons = require("@ant-design/icons");
|
|
36
|
+
var import_pro_form = require("@ant-design/pro-form");
|
|
37
|
+
var import_antd = require("antd");
|
|
38
|
+
var import_react = __toESM(require("react"));
|
|
39
|
+
var import_styles_module = __toESM(require("./styles.module.less"));
|
|
40
|
+
var SmsLogin = ({ inputClassName, api, appKey }) => {
|
|
41
|
+
(0, import_react.useEffect)(() => {
|
|
42
|
+
const link = document.createElement("link");
|
|
43
|
+
link.href = "https://captchaoss.sanguosha.com/library/captcha/0.0.5/lib/index.css";
|
|
44
|
+
link.rel = "stylesheet";
|
|
45
|
+
document.head.appendChild(link);
|
|
46
|
+
const script = document.createElement("script");
|
|
47
|
+
script.src = "https://captchaoss.sanguosha.com/library/captcha/0.0.5/lib/index.js";
|
|
48
|
+
document.body.appendChild(script);
|
|
49
|
+
return () => {
|
|
50
|
+
document.head.removeChild(link);
|
|
51
|
+
document.body.removeChild(script);
|
|
52
|
+
};
|
|
53
|
+
}, []);
|
|
54
|
+
const [phone, setPhone] = (0, import_react.useState)("");
|
|
55
|
+
const [countdown, setCountdown] = (0, import_react.useState)(0);
|
|
56
|
+
const [sendStatus, setSendStatus] = (0, import_react.useState)(false);
|
|
57
|
+
const disableBtn = countdown > 0 || phone.length !== 11;
|
|
58
|
+
const sendVerificationCode = async () => {
|
|
59
|
+
try {
|
|
60
|
+
const phoneNumber = phone;
|
|
61
|
+
if (!phoneNumber) {
|
|
62
|
+
import_antd.message.error("请输入手机号");
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (!/^1\d{10}$/.test(phoneNumber)) {
|
|
66
|
+
import_antd.message.error("请输入正确的手机号格式");
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (!appKey) {
|
|
70
|
+
import_antd.message.error("验证码配置缺失,请联系管理员(appKey)");
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
window.sliderVerify(
|
|
74
|
+
"pop",
|
|
75
|
+
(captchaRes) => {
|
|
76
|
+
void api.sendSms({ phone: phoneNumber, ...captchaRes }).then((sendRes) => {
|
|
77
|
+
if (sendRes.code !== 200) {
|
|
78
|
+
import_antd.message.error(sendRes.msg);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
setSendStatus(true);
|
|
82
|
+
import_antd.message.success("验证码发送成功");
|
|
83
|
+
setCountdown(60);
|
|
84
|
+
const timer = setInterval(() => {
|
|
85
|
+
setCountdown((prevCountdown) => {
|
|
86
|
+
if (prevCountdown <= 1) {
|
|
87
|
+
clearInterval(timer);
|
|
88
|
+
return 0;
|
|
89
|
+
}
|
|
90
|
+
return prevCountdown - 1;
|
|
91
|
+
});
|
|
92
|
+
}, 1e3);
|
|
93
|
+
}).catch(() => {
|
|
94
|
+
import_antd.message.error("验证码发送失败,请稍后再试");
|
|
95
|
+
return;
|
|
96
|
+
});
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
appKey
|
|
100
|
+
}
|
|
101
|
+
);
|
|
102
|
+
} catch {
|
|
103
|
+
import_antd.message.error("发送验证码失败,请稍后再试");
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
|
|
107
|
+
import_pro_form.ProFormText,
|
|
108
|
+
{
|
|
109
|
+
className: inputClassName,
|
|
110
|
+
name: "phone",
|
|
111
|
+
fieldProps: {
|
|
112
|
+
size: "large",
|
|
113
|
+
prefix: /* @__PURE__ */ import_react.default.createElement(import_icons.MobileOutlined, null),
|
|
114
|
+
onChange: (e) => {
|
|
115
|
+
setPhone(e.target.value);
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
placeholder: "请输入手机号",
|
|
119
|
+
validateTrigger: "onBlur",
|
|
120
|
+
rules: [
|
|
121
|
+
{
|
|
122
|
+
required: true,
|
|
123
|
+
validator(rule, value, _callback) {
|
|
124
|
+
if (!value) {
|
|
125
|
+
return Promise.reject("手机号是必填项!");
|
|
126
|
+
}
|
|
127
|
+
if (!/^1\d{10}$/.test(value)) {
|
|
128
|
+
return Promise.reject("请输入正确的手机号格式");
|
|
129
|
+
}
|
|
130
|
+
return Promise.resolve();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
}
|
|
135
|
+
), /* @__PURE__ */ import_react.default.createElement(
|
|
136
|
+
import_pro_form.ProFormText,
|
|
137
|
+
{
|
|
138
|
+
className: inputClassName,
|
|
139
|
+
name: "code",
|
|
140
|
+
disabled: !sendStatus,
|
|
141
|
+
fieldProps: {
|
|
142
|
+
size: "large",
|
|
143
|
+
prefix: /* @__PURE__ */ import_react.default.createElement(import_icons.LockOutlined, null),
|
|
144
|
+
suffix: /* @__PURE__ */ import_react.default.createElement(
|
|
145
|
+
import_antd.Button,
|
|
146
|
+
{
|
|
147
|
+
className: import_styles_module.default.captchaBtn,
|
|
148
|
+
style: { fontSize: 16 },
|
|
149
|
+
onClick: (e) => {
|
|
150
|
+
e.preventDefault();
|
|
151
|
+
e.stopPropagation();
|
|
152
|
+
countdown === 0 && void sendVerificationCode();
|
|
153
|
+
},
|
|
154
|
+
type: "link",
|
|
155
|
+
disabled: disableBtn
|
|
156
|
+
},
|
|
157
|
+
countdown > 0 ? `${countdown}秒后重新获取` : "获取验证码"
|
|
158
|
+
)
|
|
159
|
+
},
|
|
160
|
+
placeholder: "请输入验证码",
|
|
161
|
+
rules: [
|
|
162
|
+
{
|
|
163
|
+
required: true,
|
|
164
|
+
message: "验证码是必填项!"
|
|
165
|
+
}
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
));
|
|
169
|
+
};
|
|
170
|
+
var SmsLoginForm_default = SmsLogin;
|
|
171
|
+
//# sourceMappingURL=SmsLoginForm.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/business/YkLoginModule/SmsLoginForm.tsx"],
|
|
4
|
+
"sourcesContent": ["import { LockOutlined, MobileOutlined } from '@ant-design/icons';\nimport { ProFormText } from '@ant-design/pro-form';\nimport { Button, message } from 'antd';\nimport React, { useEffect, useState } from 'react';\nimport styles from './styles.module.less';\n\nexport type SmsLoginFormApi = {\n sendSms: (payload: Record<string, unknown>) => Promise<{ code: number; msg: string }>;\n};\n\ndeclare global {\n interface Window {\n sliderVerify: (\n element: 'pop' | HTMLElement,\n success: (res: { token: string; captchaVerification: string }) => void,\n options: { appKey: string; locale?: string },\n ) => void;\n }\n}\n\nexport type SmsLoginFormProps = {\n inputClassName: string;\n api: SmsLoginFormApi;\n appKey: string;\n};\n\nconst SmsLogin: React.FC<SmsLoginFormProps> = ({ inputClassName, api, appKey }) => {\n useEffect(() => {\n const link = document.createElement('link');\n link.href = 'https://captchaoss.sanguosha.com/library/captcha/0.0.5/lib/index.css';\n link.rel = 'stylesheet';\n document.head.appendChild(link);\n\n const script = document.createElement('script');\n script.src = 'https://captchaoss.sanguosha.com/library/captcha/0.0.5/lib/index.js';\n document.body.appendChild(script);\n return () => {\n document.head.removeChild(link);\n document.body.removeChild(script);\n };\n }, []);\n\n const [phone, setPhone] = useState<string>('');\n const [countdown, setCountdown] = useState<number>(0);\n const [sendStatus, setSendStatus] = useState<boolean>(false);\n const disableBtn = countdown > 0 || phone.length !== 11;\n\n const sendVerificationCode = async () => {\n try {\n const phoneNumber = phone;\n if (!phoneNumber) {\n message.error('请输入手机号');\n return;\n }\n\n if (!/^1\\d{10}$/.test(phoneNumber)) {\n message.error('请输入正确的手机号格式');\n return;\n }\n if (!appKey) {\n message.error('验证码配置缺失,请联系管理员(appKey)');\n return;\n }\n window.sliderVerify(\n 'pop',\n (captchaRes: Record<string, unknown>) => {\n void api\n .sendSms({ phone: phoneNumber, ...captchaRes })\n .then((sendRes) => {\n if (sendRes.code !== 200) {\n message.error(sendRes.msg);\n return;\n }\n setSendStatus(true);\n message.success('验证码发送成功');\n setCountdown(60);\n const timer = setInterval(() => {\n setCountdown((prevCountdown) => {\n if (prevCountdown <= 1) {\n clearInterval(timer);\n return 0;\n }\n return prevCountdown - 1;\n });\n }, 1000);\n })\n .catch(() => {\n message.error('验证码发送失败,请稍后再试');\n return;\n });\n },\n {\n appKey,\n },\n );\n } catch {\n message.error('发送验证码失败,请稍后再试');\n }\n };\n\n return (\n <>\n <ProFormText\n className={inputClassName}\n name='phone'\n fieldProps={{\n size: 'large',\n prefix: <MobileOutlined />,\n onChange: (e) => {\n setPhone(e.target.value);\n },\n }}\n placeholder='请输入手机号'\n validateTrigger='onBlur'\n rules={[\n {\n required: true,\n validator(rule, value, _callback) {\n if (!value) {\n return Promise.reject('手机号是必填项!');\n }\n if (!/^1\\d{10}$/.test(value)) {\n return Promise.reject('请输入正确的手机号格式');\n }\n return Promise.resolve();\n },\n },\n ]}\n />\n <ProFormText\n className={inputClassName}\n name='code'\n disabled={!sendStatus}\n fieldProps={{\n size: 'large',\n prefix: <LockOutlined />,\n suffix: (\n <Button\n className={styles.captchaBtn}\n style={{ fontSize: 16 }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n countdown === 0 && void sendVerificationCode();\n }}\n type='link'\n disabled={disableBtn}\n >\n {countdown > 0 ? `${countdown}秒后重新获取` : '获取验证码'}\n </Button>\n ),\n }}\n placeholder='请输入验证码'\n rules={[\n {\n required: true,\n message: '验证码是必填项!',\n },\n ]}\n />\n </>\n );\n};\n\nexport default SmsLogin;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "styles"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type SmsLoginFormApi } from './SmsLoginForm';
|
|
3
|
+
export type LoginType = 'qrcode' | 'sms';
|
|
4
|
+
export type LoginTabItem = {
|
|
5
|
+
key: LoginType;
|
|
6
|
+
label: React.ReactNode;
|
|
7
|
+
};
|
|
8
|
+
export type QrcodeApi = {
|
|
9
|
+
getQrcode: () => Promise<{
|
|
10
|
+
qrcode: string;
|
|
11
|
+
url: string;
|
|
12
|
+
}>;
|
|
13
|
+
scanLogin: (qrcode: string) => Promise<{
|
|
14
|
+
code: number;
|
|
15
|
+
data?: {
|
|
16
|
+
status?: number;
|
|
17
|
+
msg?: string;
|
|
18
|
+
};
|
|
19
|
+
}>;
|
|
20
|
+
};
|
|
21
|
+
export type LoginModuleProps = {
|
|
22
|
+
title: React.ReactNode;
|
|
23
|
+
tabs: LoginTabItem[];
|
|
24
|
+
defaultLoginType: LoginType;
|
|
25
|
+
containerStyle?: React.CSSProperties;
|
|
26
|
+
actions?: React.ReactNode | ((loginType: LoginType) => React.ReactNode);
|
|
27
|
+
className?: string;
|
|
28
|
+
formClassName?: string;
|
|
29
|
+
tabsClassName?: string;
|
|
30
|
+
inputClassName?: string;
|
|
31
|
+
qrcodeClassName?: string;
|
|
32
|
+
qrcodeBoxClassName?: string;
|
|
33
|
+
onFinish: (values: Record<string, unknown>) => Promise<void>;
|
|
34
|
+
qrcode?: {
|
|
35
|
+
api: QrcodeApi;
|
|
36
|
+
icon: string;
|
|
37
|
+
iconSize?: number;
|
|
38
|
+
size?: number;
|
|
39
|
+
wrapStyle?: React.CSSProperties;
|
|
40
|
+
onSuccess: () => void | Promise<void>;
|
|
41
|
+
};
|
|
42
|
+
sms?: {
|
|
43
|
+
api: SmsLoginFormApi;
|
|
44
|
+
appKey: string;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
declare const LoginModule: React.FC<LoginModuleProps>;
|
|
48
|
+
export default LoginModule;
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/business/YkLoginModule/index.tsx
|
|
30
|
+
var YkLoginModule_exports = {};
|
|
31
|
+
__export(YkLoginModule_exports, {
|
|
32
|
+
default: () => YkLoginModule_default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(YkLoginModule_exports);
|
|
35
|
+
var import_pro_form = require("@ant-design/pro-form");
|
|
36
|
+
var import_antd = require("antd");
|
|
37
|
+
var import_react = __toESM(require("react"));
|
|
38
|
+
var import_SmsLoginForm = __toESM(require("./SmsLoginForm"));
|
|
39
|
+
var import_styles_module = __toESM(require("./styles.module.less"));
|
|
40
|
+
var DEFAULT_QRCODE_WRAP_STYLE = {
|
|
41
|
+
padding: 10,
|
|
42
|
+
display: "flex",
|
|
43
|
+
justifyContent: "center"
|
|
44
|
+
};
|
|
45
|
+
var LoginModule = (props) => {
|
|
46
|
+
const {
|
|
47
|
+
title,
|
|
48
|
+
tabs,
|
|
49
|
+
defaultLoginType,
|
|
50
|
+
containerStyle,
|
|
51
|
+
actions,
|
|
52
|
+
onFinish,
|
|
53
|
+
qrcode,
|
|
54
|
+
className = import_styles_module.default.root,
|
|
55
|
+
formClassName = import_styles_module.default.form,
|
|
56
|
+
tabsClassName = import_styles_module.default.tabs,
|
|
57
|
+
inputClassName,
|
|
58
|
+
qrcodeClassName = import_styles_module.default.qrcode,
|
|
59
|
+
qrcodeBoxClassName = import_styles_module.default.qrcodeBox,
|
|
60
|
+
sms
|
|
61
|
+
} = props;
|
|
62
|
+
const [loginType, setLoginType] = (0, import_react.useState)(defaultLoginType);
|
|
63
|
+
const [qrcodeStatus, setQrcodeStatus] = (0, import_react.useState)("active");
|
|
64
|
+
const [qrcodeUrl, setQrcodeUrl] = (0, import_react.useState)("-");
|
|
65
|
+
const [qrcodeValue, setQrcodeValue] = (0, import_react.useState)("");
|
|
66
|
+
const pollIntervalRef = (0, import_react.useRef)(null);
|
|
67
|
+
const pollTimeoutRef = (0, import_react.useRef)(null);
|
|
68
|
+
const shouldShowSubmitter = loginType !== "qrcode";
|
|
69
|
+
const resolvedActions = (0, import_react.useMemo)(() => {
|
|
70
|
+
if (!actions)
|
|
71
|
+
return void 0;
|
|
72
|
+
return typeof actions === "function" ? actions(loginType) : actions;
|
|
73
|
+
}, [actions, loginType]);
|
|
74
|
+
const safeClearTimers = (0, import_react.useCallback)(() => {
|
|
75
|
+
if (pollIntervalRef.current)
|
|
76
|
+
clearInterval(pollIntervalRef.current);
|
|
77
|
+
if (pollTimeoutRef.current)
|
|
78
|
+
clearTimeout(pollTimeoutRef.current);
|
|
79
|
+
pollIntervalRef.current = null;
|
|
80
|
+
pollTimeoutRef.current = null;
|
|
81
|
+
}, []);
|
|
82
|
+
const handleQrcodeRefresh = (0, import_react.useCallback)(async () => {
|
|
83
|
+
if (!qrcode)
|
|
84
|
+
return;
|
|
85
|
+
setQrcodeStatus("loading");
|
|
86
|
+
try {
|
|
87
|
+
const res = await qrcode.api.getQrcode();
|
|
88
|
+
setQrcodeUrl(res.url);
|
|
89
|
+
setQrcodeValue(res.qrcode);
|
|
90
|
+
setQrcodeStatus("active");
|
|
91
|
+
} catch {
|
|
92
|
+
setQrcodeStatus("expired");
|
|
93
|
+
import_antd.message.error("获取二维码失败,请稍后重试");
|
|
94
|
+
}
|
|
95
|
+
}, [qrcode]);
|
|
96
|
+
const enabledTabKeys = (0, import_react.useMemo)(() => new Set(tabs.map((t) => t.key)), [tabs]);
|
|
97
|
+
(0, import_react.useEffect)(() => {
|
|
98
|
+
var _a;
|
|
99
|
+
if (enabledTabKeys.has(defaultLoginType)) {
|
|
100
|
+
setLoginType(defaultLoginType);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const fallback = (_a = tabs[0]) == null ? void 0 : _a.key;
|
|
104
|
+
if (fallback)
|
|
105
|
+
setLoginType(fallback);
|
|
106
|
+
}, [defaultLoginType, enabledTabKeys, tabs]);
|
|
107
|
+
(0, import_react.useEffect)(() => {
|
|
108
|
+
var _a;
|
|
109
|
+
if (enabledTabKeys.has(loginType))
|
|
110
|
+
return;
|
|
111
|
+
const fallback = (_a = tabs[0]) == null ? void 0 : _a.key;
|
|
112
|
+
if (fallback)
|
|
113
|
+
setLoginType(fallback);
|
|
114
|
+
}, [enabledTabKeys, loginType, tabs]);
|
|
115
|
+
(0, import_react.useEffect)(() => {
|
|
116
|
+
safeClearTimers();
|
|
117
|
+
if (loginType !== "qrcode") {
|
|
118
|
+
setQrcodeStatus("expired");
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (!qrcode) {
|
|
122
|
+
setQrcodeStatus("expired");
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
void handleQrcodeRefresh();
|
|
126
|
+
return safeClearTimers;
|
|
127
|
+
}, [handleQrcodeRefresh, loginType, qrcode, safeClearTimers]);
|
|
128
|
+
(0, import_react.useEffect)(() => {
|
|
129
|
+
safeClearTimers();
|
|
130
|
+
if (!qrcode)
|
|
131
|
+
return;
|
|
132
|
+
if (loginType !== "qrcode")
|
|
133
|
+
return;
|
|
134
|
+
if (qrcodeStatus !== "active")
|
|
135
|
+
return;
|
|
136
|
+
if (!qrcodeValue)
|
|
137
|
+
return;
|
|
138
|
+
pollIntervalRef.current = setInterval(() => {
|
|
139
|
+
void qrcode.api.scanLogin(qrcodeValue).then((res) => {
|
|
140
|
+
var _a, _b;
|
|
141
|
+
if (res.code !== 200)
|
|
142
|
+
return;
|
|
143
|
+
const status = (_a = res.data) == null ? void 0 : _a.status;
|
|
144
|
+
const msg = ((_b = res.data) == null ? void 0 : _b.msg) ?? "扫码遇到问题,稍后重试";
|
|
145
|
+
if (status === -1)
|
|
146
|
+
return;
|
|
147
|
+
if (status !== 1) {
|
|
148
|
+
safeClearTimers();
|
|
149
|
+
setQrcodeStatus("expired");
|
|
150
|
+
import_antd.message.error(msg, 3);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
safeClearTimers();
|
|
154
|
+
void qrcode.onSuccess();
|
|
155
|
+
}).catch(() => {
|
|
156
|
+
});
|
|
157
|
+
}, 1e3);
|
|
158
|
+
pollTimeoutRef.current = setTimeout(() => {
|
|
159
|
+
setQrcodeStatus("expired");
|
|
160
|
+
safeClearTimers();
|
|
161
|
+
}, 3e4);
|
|
162
|
+
return safeClearTimers;
|
|
163
|
+
}, [loginType, qrcode, qrcodeStatus, qrcodeValue, safeClearTimers]);
|
|
164
|
+
const tabItems = (0, import_react.useMemo)(() => tabs.map((t) => ({ key: t.key, label: t.label })), [tabs]);
|
|
165
|
+
return /* @__PURE__ */ import_react.default.createElement("div", { className, style: { maxWidth: "500px" } }, /* @__PURE__ */ import_react.default.createElement(
|
|
166
|
+
import_pro_form.LoginForm,
|
|
167
|
+
{
|
|
168
|
+
className: formClassName,
|
|
169
|
+
onFinish: async (values) => {
|
|
170
|
+
await onFinish(values);
|
|
171
|
+
},
|
|
172
|
+
title: typeof title === "string" ? /* @__PURE__ */ import_react.default.createElement("div", { className: import_styles_module.default.title }, title) : title,
|
|
173
|
+
containerStyle,
|
|
174
|
+
submitter: shouldShowSubmitter ? void 0 : false,
|
|
175
|
+
actions: resolvedActions
|
|
176
|
+
},
|
|
177
|
+
/* @__PURE__ */ import_react.default.createElement(
|
|
178
|
+
import_antd.Tabs,
|
|
179
|
+
{
|
|
180
|
+
className: tabsClassName,
|
|
181
|
+
centered: true,
|
|
182
|
+
activeKey: loginType,
|
|
183
|
+
onChange: (activeKey) => {
|
|
184
|
+
const next = activeKey;
|
|
185
|
+
setLoginType(next);
|
|
186
|
+
},
|
|
187
|
+
items: tabItems
|
|
188
|
+
}
|
|
189
|
+
),
|
|
190
|
+
enabledTabKeys.has("qrcode") && loginType === "qrcode" && qrcode && /* @__PURE__ */ import_react.default.createElement("div", { style: qrcode.wrapStyle ?? DEFAULT_QRCODE_WRAP_STYLE }, /* @__PURE__ */ import_react.default.createElement("div", { className: qrcodeBoxClassName }, /* @__PURE__ */ import_react.default.createElement(import_antd.Flex, { justify: "center", align: "center" }, /* @__PURE__ */ import_react.default.createElement("i", { className: "iconfont icon-saoyisao", style: { color: "#999999", marginRight: 10, fontSize: 14 } }), "请使用", /* @__PURE__ */ import_react.default.createElement("span", { style: { color: "#0A6BFD" } }, "小闪扫码"), "登录"), /* @__PURE__ */ import_react.default.createElement(
|
|
191
|
+
import_antd.QRCode,
|
|
192
|
+
{
|
|
193
|
+
icon: qrcode.icon,
|
|
194
|
+
iconSize: qrcode.iconSize ?? 50,
|
|
195
|
+
className: qrcodeClassName,
|
|
196
|
+
size: qrcode.size ?? 240,
|
|
197
|
+
value: qrcodeUrl,
|
|
198
|
+
status: qrcodeStatus,
|
|
199
|
+
onRefresh: handleQrcodeRefresh
|
|
200
|
+
}
|
|
201
|
+
))),
|
|
202
|
+
enabledTabKeys.has("sms") && loginType === "sms" && sms && /* @__PURE__ */ import_react.default.createElement(import_SmsLoginForm.default, { inputClassName: inputClassName ?? "", api: sms.api, appKey: sms.appKey })
|
|
203
|
+
));
|
|
204
|
+
};
|
|
205
|
+
var YkLoginModule_default = LoginModule;
|
|
206
|
+
//# sourceMappingURL=index.js.map
|