Compare commits

...

1037 Commits

Author SHA1 Message Date
Argo-Lenovo
5aa1b39497 chore: bump version 6.5.0 2022-04-07 01:53:37 +08:00
Argo
3023af3bf1 !2621 fix(#I51EP5): Value incorrect when move right panel items to left panel
* doc: 更新文档
* doc: 更新示例
* chore: 更新资源文件
* fix: 修复右侧已选数据取消选择时 Value 不正确问题
2022-04-06 17:51:20 +00:00
Argo
acc7fc64bd !2620 feat(#I51EOA): add Speech component
* test: 更新单元测试
* refactor: 更新可为空判断逻辑
* chore: 重新打包
* doc: 移除语音识别菜单
* doc: 更新菜单名称
* chore: 更新服务注册代码
* chore: 更新 Issue 模板
* doc: 更新示例
* feat: 增加 Close 扩展方法
* chore: 脚本增加 close 方法
* refactor: 移除构造函数
* refactor: 更改方法名
* chore: 更新脚本
* doc: 更新示例
* feat: 增加 ISpeechProvider 服务
* refactor: 删除组件
* refactor: 增加 Invoke 方法
* refactor: 增加 ProviderOption
* fix: 修复警告信息
* refactor: 清理基类方法
* revert: 移除语音识别相关代码
* feat: 增加示例文档
* feat: 增加语音识别服务
* feat: 增加 Speech 工程
* doc: 删除空行
* feat: 增加 Speech 组件
* refactor: 消除警告信息
* refactor: 移除 WebAudio 组件
* Merge remote-tracking branch 'origin/main' into feat-webaudio
* doc: azure 示例
* feat: 添加 azure 语音识别
* feat: 配置 huboptions
* docs: 录音组件示例
* feat: 添加录音组件
* content: 添加录音js
* doc: 增加 WebAudio 示例
* feat: 增加 WebAudio 组件
2022-04-06 17:11:10 +00:00
Argo
5616452920 !2619 refactor(#I516CG): rename Image to ImageViewer
* chore: 更打包脚本
* chore: 菜单更改名称
* test: 单元测试更改名称
* doc: 示例更改名称
* refactor: 改名为 ImageViewer
2022-04-06 05:58:24 +00:00
Argo
9712468d1f !2618 feat(#I5153N): add image preview feature on CardUpload component
* chore: bump version 6.4.18
* test: 增加 CardUpload 单元测试
* refactor: 精简代码
* refactor: 增加单文件不显示左右切换按钮逻辑
* feat: Upload 组件增加 Zoom 功能
* feat: 拆分 Preview 组件
* feat: 增加全屏与恢复比例移除特效逻辑
2022-04-05 03:04:11 +00:00
Argo
8bee41567f !2617 feat(#I514V4): add doc/unit test for Image component
* chore: bump version 6.4.17
* test: 增加 ShowPreviewList 单元测试
* test: 增加 HandleError 单元测试
* test: 增加 OnLoad 单元测试
* test: 增加 PlaceHolder 单元测试
* test: 增加 Alt 单元测试
* doc: 更新 OnLoadAsync 参数文档
* feat: 增加 OnLoadAsync 回调
* doc: 更新文档
* feat: 增加 OnErrorAsync 回调方法
* test: 增加 ShowImage 单元测试
* doc: 更新文档
* doc: 格式化文档
* doc: 增加 FitMode 说明
* doc: 更新样式
* feat: 增加 OnError 不显示图片逻辑
* feat: 增加鼠标点击遮罩关闭功能
* feat: 增加切换图片关闭特效功能
* chore: 更新打包文件
* fix: 修复恢复比例问题
* feat: 更新全屏按钮功能
* feat: 支持键盘
* feat: 增加滚轮支持
* feat: 增加放大缩小与旋转功能
* doc: 更新大图预览示例
* feat: 增加大图预览关闭与上一张下一张功能
* doc: 增加 PreviewList 大图预览示例
* feat: 增加 PreviewList 参数
* doc: 更正锚点名称
2022-04-04 17:02:45 +00:00
Argo
cf8aac3213 !2616 feat(#I512OY): add HandleError feature on Image component
* doc: 增加加载错误模板示例
* feat: 增加加载失败模板功能
* doc: 更新占位模板示例
* refactor: 增加 HandleError 参数
2022-04-03 18:04:00 +00:00
Argo
e4740eb5ec !2615 feat(#I512OS): add PlaceHolderTemplate on Image component
* doc: 增加占位模板示例
* feat: 增加占位模板功能
2022-04-03 17:03:36 +00:00
Argo
90517c8cc1 !2614 feat(#I512B7): add Image component
* doc: 增加占位功能示例
* feat: 增加占位符功能
* chore: 增加搜索链接
* doc: 增加示例网页
* chore: 增加 Image 组件菜单
* feat: 增加 FitMode 参数
* doc: rename locator
* doc: 增加 Images 示例
* feat: 增加 Image 组件
2022-04-03 16:43:05 +00:00
Argo
5b4462b556 !2612 revert(#I5122Z): revert dialog extensions method
* chore: bump version 6.4.16
* refactor: 增加空判断
* Revert "!2610 feat(#I511PX): dialog extensions compatible prev version"
2022-04-03 07:19:02 +00:00
Argo
f608f58cf5 !2611 fix(#I511VH): can't delete one more in table component via dynamic datatable
* chore: bump version to 6.4.15
* fix: 修复动态表格二次删除问题
2022-04-03 05:09:56 +00:00
Argo
3e6dff357a !2610 feat(#I511PX): dialog extensions compatible prev version
* chore: bump version 6.4.14
* refactor: 增加重载方法兼容老代码
2022-04-03 02:46:44 +00:00
Argo
2339c956cf !2609 feat(#I50WSD): update style for scrolling modal body
* chore: bump version 6.4.13
* style: 适配弹窗内部滚动样式
2022-04-02 12:42:48 +00:00
j4587698
ff17c44363 !2607 feat(#I50UHM): add external method on Editor Markdown component
* test: 增加单元测试
* doc: 更新资源文件
* Merge remote-tracking branch 'origin/main' into dev-editor
* doc: 更新示例
* chore: 更新打包脚本
* chore: 恢复 ... 语法
* chore: bump version 6.0.2
* refactor: 移动方法位置
* chore: 更新 MD 脚本
* doc: use PlaceHolder
* revert: format document
* 添加外部操作Editor和Markdown编辑器的方法
2022-04-02 07:00:47 +00:00
Argo
47ca06ad9f !2608 feat(#I50XD6): add GetCheckedItems method on Tree
* refactor: rename GetCheckedItems
* feat: 增加 GetCheckItems 实例方法
2022-04-02 05:35:03 +00:00
Argo
eff31c4b3e !2606 revert(#I50SX7): restore ScrollingDialogContent default value to false
* chore: bumpversion 6.4.12
* doc: 格式化文档
* Revert "!2599 feat(#I50GIB): change the ShowMaximizeButton default val…
2022-04-01 09:14:35 +00:00
Argo
75088d95cc !2605 fix(#I50QYA): don't clear invalid message tooltip after pass async validator rule
* chore: bump version 6.4.11
* test: 增加异步验证单元测试
* test: 移除基类提高性能
* test: 增加 FormItemValidator 单元测试
* test: 增加异步 Rules 单元测试
* refactor: 移动 ErrorMessage 参数
* test: 更新单元测试
* doc: 更新注释
* fix: 修复异步验证导致 UI 不刷新问题
* doc: 精简代码
2022-04-01 06:38:49 +00:00
Argo
cad90db2e7 !2604 fix(#I50NJX): add FormatValueAsString method on RadioList
* doc: 格式化文档
* refactor: 增加格式化值方法
* fix: 增加 CurrentValueAsString 格式化方法
2022-03-31 16:47:33 +00:00
Argo
ba9c271568 !2603 test(#I50NJ3): add Validator unit test 2022-03-31 16:04:23 +00:00
Argo
d0d12c6f63 !2602 doc(#I50L8Q): update ValidateForm sample code
* chore: bump version 6.4.10
* test: 增加单元测试
* wip: submit test
* Merge branch 'main' into feat-form
* doc: 更新 ValidateForm 示例
* refactor: 精简代码
2022-03-31 08:23:51 +00:00
KellsoHP
0607272070 !2601 feat(#I50K6I): IValidator support async validate 2022-03-31 15:12:12 +08:00
Argo
d4b9fdfd13 !2600 doc(#I4UCAK): update card sample code
* doc: 更新示例
* style: 移除 card-title 样式
* chore: 更新模板
2022-03-30 16:34:45 +00:00
Argo
473819f044 !2599 feat(#I50GIB): change the ShowMaximizeButton default value to true and ScrollingDialogContent to true
* doc: 更新文档
* refactor: 弹窗默认内部出现滚动条
* refactor: 编辑搜索弹窗默认显示最大化按钮
2022-03-30 16:00:21 +00:00
Argo
34de83df39 !2598 test(#I50C1Y): improve code coverage for EditorItem
* test: 增加 Order 单元测试
* test: 补充 EditorItem 单元测试
2022-03-30 05:11:43 +00:00
Argo
ac619c7313 !2597 test(#I50BX0): add EditorItem ShowTooltip unit test
* test: 增加 ShowTooltip 单元测试
* refactor: 自动生成组件支持 ShowLabelTooltip 属性
* fix: 修复变量判断条件错误
2022-03-30 04:19:35 +00:00
Argo
93c1d003f2 !2596 test(#I507WN): improve code coverage for IPLocator
* test: 增加单元测试
* refactor: 改造 IPLocator
2022-03-30 01:15:22 +00:00
Argo
e3a0aac176 !2595 fix(#I506W3): min/max not work on MultiSelect
* feat:增加字符串分割方法
* chore: bump version beta01
* doc: 更新示例
* refactor: 重构 Max/Min 验证器
* feat: 增加 ElementCount 拉姆达表达式
2022-03-29 11:04:17 +00:00
Argo
cdcf55d767 !2594 feat(#I4Y0EB): fix footer on EditDialog/SearchDialog on Table
* chore: bump version 6.4.9
* doc: 更新示例
* refactor: 微调样式
* refactor: remove modal-footer class
* feat: 表格编辑搜索弹窗支持内部滚动
* refactor: 弹窗大小默认为 ExtraExtraLarge
2022-03-29 07:04:12 +00:00
Argo
81285a178c !2593 fix(#I500DE): throw exception when not set Value on DateTimeRange component
* test: 增加单元测试
* refactor: 增加 Value 空判断
2022-03-29 07:00:58 +00:00
Argo
4667cb4ac3 !2592 refactor(#I502E4): remove ViewModel to ViewMode
* doc: 更新示例
* refactor: Calendar ViewModel 更改为 Mode
* doc: 更新资源文件
* doc: 更新示例
* refactor: 重命名 Model 为 Mode
* refactor: 更改类名
2022-03-29 03:29:19 +00:00
Argo
6873b53859 !2591 fix(#I5021K): remove the duplicate class name on the button of InputUpload
* fix: 移除冗余 btn 样式
2022-03-29 02:42:19 +00:00
KellsoHP
2f3297d1da fix multiply class for upload input 2022-03-29 10:08:52 +08:00
Argo
d8cc31e71a !2590 test(#I501DL): add unit test of TimePicker
* test: 增加代码覆盖率
* test: 增加 TimeCell_Up 单元测试
* chore: 增加 Dialog 单元测试隔离
2022-03-29 02:01:30 +00:00
Argo
150c51bb40 !2589 test(#I500N7): add unit test for ClipboardService
* chore: bump version 6.4.8
* Merge branch 'main' into test-clip
* test: 增加 ClipboardService 单元测试
* test: 增加 FAIcon 单元测试
* feat: 精简 IconDialog 组件
* chore: 格式化文档
* refactor: 整理文档减少重复
* refactor: 移除 Icon 组件
* test: 增加 Cancel 单元测试
* test: 增加 Icon 单元测试
* test: 增加 IconList 单元测试
* test: 增加单元测试
* refactor: 增加 Cancel 逻辑
* refactor: 增加提示信息
2022-03-29 01:07:01 +00:00
Argo
1317d0e23e !2588 test(#I500MQ): add unit test for IconList
* test: 增加 FAIcon 单元测试
* feat: 精简 IconDialog 组件
* chore: 格式化文档
* refactor: 整理文档减少重复
* refactor: 移除 Icon 组件
* test: 增加 Cancel 单元测试
* test: 增加 Icon 单元测试
* test: 增加 IconList 单元测试
* test: 增加单元测试
* refactor: 增加 Cancel 逻辑
* refactor: 增加提示信息
2022-03-29 01:03:10 +00:00
Argo
c8f1214a80 !2587 doc(#I4ZXNM): update IsCollapsed doc of Tree
* doc: 更新属性参数说明
* doc: 更新 Tree 节点展开示例
* chore: 更新打包文件
2022-03-28 08:12:42 +00:00
j4587698
3d54efe7ab !2559 feat(#I4Z2SE): add FAIcon
* feat: 更改菜单顺序
* doc: 增加切换开关文字
* doc: 增加资源文件
* doc: 更新示例文字
* Merge branch 'main' into dev-icons
* Merge branch 'main' into dev-icons
* doc: 更新示例
* feat: 增加 ShowCopyDialog 参数
* refactor: 更新 DialogService 扩展方法
* refactor: Button 工具栏默认位置更改为 top
* doc: 增加 FAIcon 资源文件
* chore: 移动组件
* chore: 移动组件到 FontAwesome 包内
* Merge branch 'main' into dev-icons
* refactor: 增加 ShowCatalog 参数
* doc: 增加 Tips 说明
* refactor: 移除 NotNull 标签
* refactor: 增加触发条件为 hover
* refactor: 增加样式
* refactor: 更改触发条件为 hover
* refactor: 更新代码
* feat: 完善 Icon 组件点击拷贝逻辑
* feat: 增加弹窗基类精简代码
* chore: 杂项更新
* feat: 增加点击复制按钮逻辑
* feat: 增加显示/销毁 Tooltip 方法
* refactor: 增加拷贝服务功能
* refactor: 更新文件夹名称
* Merge branch 'main' into dev-icons
* style: 微调样式
* doc: 更新示例
* doc: 更新示例
* feat: 移动 IconList
* feat: 移除 table-modal-footer 样式复用 modal-footer
* doc: 更新示例
* refactor: 移动组件
* doc: 更新示例
* feat: FA 组件组增加 IconList 组件
* feat: 增加导航栏鼠标事件
* Revert "wip: 临时提交"
* wip: 临时提交
* Merge branch 'feat-clipboard' into dev-icons
* feat: 增加 Copy 方法
* refactor: 重构 Option 参数
* feat: 增加粘贴服务
* refactor: 移除 partial 关键字
* Merge branch 'main' into dev-icons
* chore: 更新依赖包
* Merge branch 'main' into dev-icons
* 增加图标库组件
2022-03-28 09:56:40 +08:00
Argo
f453563f0d !2586 refactor(#I4ZSO4): add callback on ClipboardService
* chore: 更新配置
* refactor: 更新粘贴板服务
* chore: 更新样式
* refactor: 更改提示框位置
2022-03-27 18:18:24 +00:00
Argo
af87cd0464 !2585 feat(#I4ZSNO): add Clipboard service
* refactor: 重构代码
* Merge branch 'main' into feat-clipboard
* feat: 增加 Copy 方法
* refactor: 重构 Option 参数
* feat: 增加粘贴服务
* refactor: 移除 partial 关键字
2022-03-27 18:06:07 +00:00
Argo
3b864d3a5c !2584 feat(#I4ZSNF): add ShowCloseDialog extension method
* test: 增加单元测试
* refactor: 更改为 ShowCloseDialog
* refactor: 更改触发条件为 hover
* style: 微调样式
* doc: 更新示例
* feat: 移除 table-modal-footer 样式复用 modal-footer
* refactor: 移除 partial 关键字
* chore: 更新依赖包
* Merge branch 'main' into feat-dialog
* refactor: 更新代码
* feat: 增加弹窗基类精简代码
2022-03-27 17:46:31 +00:00
Argo
cfd1d1fb09 !2583 feat(#I4ZSLV): add tooltip api on ButtonBase
* test: 增加单元测试
* feat: 增加显示/销毁 Tooltip 方法
2022-03-27 16:07:57 +00:00
Argo
5072fa7760 !2582 feat(#I4ZS5O): remove table-modal-footer style reuse modal-footer
* doc: 移除 table-modal-footer 样式
* style: 微调 footer 间隙
* chore: 更新打包文件
* style: 微调样式
* feat: 移除 table-modal-footer 样式复用 modal-footer
2022-03-27 10:52:05 +00:00
Argo
c49b4bc79c !2581 test(#I4ZRIP): add table search unit test
* test: 增加顶栏搜索单元测试
* test: 增加高级搜索单元测试
* test: 增加搜索单元测试
* test: 增加骨架屏单元测试
* test: 更改单元测试基类
* test: 修复报错单元测试
* chore: 增加 Table 单元测试隔离类
* test: 增加 TableColumns 单元测试
* test: 增加 Table 单元测试
2022-03-27 03:02:03 +00:00
alex_zou
d8cffb91df !2580 feat(##I4ZN9E): add SelectAll method on BootstrapInput
* test: 更新单元测试
* refactor: 重命名 js 脚本名称
* Update InputTest.cs
* !2580 (#I4ZN9E) Add IsSelectAllTextOnEnter and SelectAllTextAsync , an…
2022-03-25 16:32:10 +00:00
Argo
c238890617 !2579 test(#I4ZN23): increase code coverage
* test: 增加 FullScreenService 单元测试
* test: 增加代码覆盖率
* refactor: 移除过期属性
* test: 移除过期参数
* test: 修复测试失败问题
* test: 增加 ShowLabelTooltip 单元测试
* test: 增加 ShowLabelTooltip 单元测试
* test: 增加代码覆盖率
* test: 删除不使用的代码
2022-03-25 12:07:04 +00:00
Argo
a93942fd2f !2578 test(#I4ZMWB): add Authorize unit test
* test: 增加 Resource 单元测试
* test: 增加未授权单元测试
* test: 增加 AuthorizeView 单元测试
* test: 改造 View 组件
* test: 增加授权视图基类
* test: 修复单元测试
2022-03-25 11:14:06 +00:00
Argo
ace44f11ad !2577 fix(#I4Y6AR): not call OnQueryAsync in edit in cell mode
* chore: bump version 6.4.7
* fix: 修复 InCell 模式更新不刷新页面问题
2022-03-25 08:07:15 +00:00
Argo
b480ddb4ce !2576 test(#I4ZHTE): add Geolocation unit test
* test: 增加单元测试
* test: 增加单元测试
* test: 增加 GeoLocation 单元测试
2022-03-25 02:15:30 +00:00
Argo
f7bf2580b3 !2575 fix(#I4ZBA2): Incorrect search results
* fix: 修复搜索结果栏选中状态不正确问题
2022-03-24 09:18:30 +00:00
Argo
244d2bd10c !2574 test(#I4ZEUL): fix failed unit test
* test: 修复一些报错的单元测试
2022-03-24 08:36:31 +00:00
Argo
8ffdbd3730 !2573 test(#I4ZA0N): add Input unit test
* test: 增加代码覆盖率
* Merge branch 'main' into dev-test-input
* test: 补充 input 单元测试
2022-03-23 15:18:12 +00:00
Argo
bd44c95d93 !2572 test(#I4ZA05): add DropdownWidget unit test
* test: 精简代码
* test: 添加 dropdownwiget 组件单元测试
2022-03-23 15:05:04 +00:00
Argo
c998b3bf7d !2571 test(#I4Z9ZV): add FullScreen unit test
* test: 增加代码覆盖率
* test: 补充 fullscreen 组件单元测试
* test: 补充 FullScreen 组件单元测试
* test: 添加 FullScreen 组件单元测试
2022-03-23 15:01:32 +00:00
Argo
c94a731d2b !2570 test(#I4Z9XQ): add toast unit test
* test: add  IsAutoHide 单元测试
* test: 增加代码覆盖率
* test: 补充 Toast 组件单元测试
* test: 补充 ToastService 组件单元测试
2022-03-23 14:22:33 +00:00
Argo
cfb64d6c59 !2569 test(#I4Z9W7): add slider unit test
* test: 精简代码
* refactor: 重构代码
* test: 添加 slider 组件单元测试
2022-03-23 14:02:01 +00:00
Argo
100ad61bed !2568 test(#I4Z2WT): add Nav unit test
* test: 增加代码覆盖率
* refactor: 重构代码
* test: 添加 Nav 组件单元测试
2022-03-22 14:42:38 +00:00
Argo
b346991e88 !2567 test(#I4Z2WF): add Skeleton unit test
* refactor: 格式化代码
* Merge branch 'main' into dev-test-skeleton
* test: 添加骨架组件单元测试
2022-03-22 14:34:37 +00:00
Argo
34db68c5d0 !2566 test(#I4Z2W6): add hand written unit test
* refactor: 更新代码
* test: 添加 handwirtten 组件单元测试
2022-03-22 14:31:08 +00:00
Argo
9372868a6d !2565 test(#I4Z2VY): add IpLocator unit test
* test: 增加 BaiduIpLocator 单元测试
* test: 添加 IPLocator 组件单元测试
2022-03-22 14:27:54 +00:00
Argo
79131a4696 !2564 test(#I4Z2U3): add rate unit test
* test: 格式化代码
* refactor: 重构代码
* test: 添加 Rate 组件单元测试
2022-03-22 14:00:41 +00:00
Argo
858f5010d1 !2563 test(#I4Z2UI): add unit test for LogoutLink
* test: 增加断言
* test: 重构代码
* test: 添加 logoutLink 组件单元测试
2022-03-22 13:57:26 +00:00
Argo
2e72fd186e !2561 test(#I4Z2TQ): add unit test for Search
* test: 提高代码覆盖率
* test: 添加 SearchTest 组件单元测试
2022-03-22 13:43:06 +00:00
Argo
3006fef7bb !2560 test(#I4Z2SM): add textarea unit test
* test: 精简代码
* test: 添加 Textarea 组件单元测试
2022-03-22 13:25:19 +00:00
Argo
9e311d6049 !2558 test(#I4YYRX): add unit test for Collapse
* test: 增加 OnClick 单元测试
* test: 增加手风琴单元测试
* test: 增加 Icon 单元测试
* test: 增加 TitleColor 单元测试
* test: 增加 Item 单元测试
* test: 增加 Collapse 单元测试
* feat: 精简代码增加 Icon 支持
2022-03-22 05:12:32 +00:00
Argo
28336ac6ae !2557 feat(#I4YW36): AutoGenerateColumn support ShowLabelTooltop parameter
* chore: bump version beta02
* feat: 支持 ShowLabelTooltip 默认 false
2022-03-21 14:58:45 +00:00
Argo
ac23a6b5c6 !2556 feat(#I4YVGQ): add ShowValidateFormDialog extension method on Dialog component
* chore: bump version beta01
* test: 增加单元测试
* feat: 增加弹出验证表单扩展方法
2022-03-21 12:01:27 +00:00
Argo
342cc5b855 !2555 doc(#I4YUTT): move IpAddress into form menu
* doc: 更新组件菜单
* refactor: IpAddress 更改为表单组件
2022-03-21 09:59:23 +00:00
Argo
fbdfb04eb1 !2554 feat(#I4YNCG): add ShowLabelTooltip parameter on Form component
* chore: bump version 6.4.6
* refactor: 重构代码
* test: 增加 LookupService 单元测试
* test: 增加 ShowTooltip 单元测试
* Merge branch 'main' into feat-ShowToolTip
* refactor: 重构代码
* refactor: 更新代码
* feat: IEditor 接口增加 ShowLabelTooltip 参数
* doc: 更新呢 EditorForm/ValidateForm 文档
* doc: 更新  ValidateForm 示例
* refactor: 表单组件增加 BootstrapLabel 组件
* chore: 更新脚本
* doc: 更新示例文档
* feat: 增加 ShowLabelTooltip 级联逻辑
* refactor: 组件使用 Label 组件支持 ShowLabelTooltip 参数
* feat: 增加 BootstrapLabel 组件
* refactor: 精简代码
* doc: 更新资源文件
* feat: 组件增加 ShowLabelTooltip 参数
* test: 更新 IpAddress 组件值
* doc: 更新 IsTrim 说明文档
2022-03-21 06:54:11 +00:00
Argo
9f40e0d89d !2553 refactor(#I4YRMU): remove LookupService parameter on Utility extension class
* refactor: 扩展方法移除 LookupService 参数
2022-03-21 06:07:24 +00:00
Argo
d7166d45f7 !2552 refactor(#I4YRI0): remove showlabal parameter on CreateComponentByFieldType on Utility extension class 2022-03-21 05:58:22 +00:00
alex_zou
a65c71750d !2550 feat(#I4YMFK): add tooltip for form label
* doc: 更新 ValidateForm 文档
* doc: 更新资源文件
* Table 编辑框 添加 长字段鼠标悬停提示, IsShowLabel的控件也一样
2022-03-20 07:54:06 +00:00
Argo
335a49918f !2551 test(#I4YN9P): add IpAddress unit test
* test: 增加表单内使用单元测试
* test: 增加超范围值单元测试
* test: 增加 Null 值单元测试
* test: 增加默认设置单元测试
* test: 增加 IpAddress 单元测试
2022-03-20 07:28:13 +00:00
Argo
10a283e8d9 !2549 test(#I4YLKC): add ListView unit test
* test: 增加点击分页组件单元测试
* test: 增加分页异常单元测试
* test: 增加分页单元测试
* test: 增加项目点击单元测试
* doc: 格式化代码
* refactor: 重构代码
* test: 单元测试
* test: 增加单元测试
* test: 增加 ListView 单元测试
* test: 增加 MessageTestBase 类
2022-03-19 08:21:53 +00:00
Argo
a66a6beb1e !2548 test(#I4YL54): add unit test for message
* feat: 增加 OnDismiss 回调委托
* refactor: 重构代码
* test: add OnDismiss test
* test: add set placement test
* test: add test for message
2022-03-19 06:22:30 +00:00
Argo
d78c201eb3 !2547 feat(#I4YL4D): add OnDismiss callback on MessageOption
* feat: 增加 OnDismiss 回调委托
* refactor: 重构代码
2022-03-19 06:17:14 +00:00
Argo
57a971c831 !2546 test(#I4YJLL): add unit test for Download 2022-03-18 11:21:53 +00:00
Nine
2784a7c522 !2545 feat(#I4YEXU): layout component added an open accordion parameter
* test: 补充单元测试
* chore: bump version beta01
* feat: 添加菜单手风琴效果
2022-03-18 06:19:09 +00:00
Argo
7adcc93811 !2544 fix(#I4YDWI): excel mode throw exception cause by CanWrite
* chore: bump version 6.4.5
* fix: excel mode throw exception cause by CanWrite
2022-03-18 01:19:15 +00:00
Argo
9f90a659d0 !2543 test(#I4YD6Z): fix Editor unit test failed issue
* fix: 修复单元测试
2022-03-17 13:08:00 +00:00
Argo
3eaa162a7c !2542 test(#I4YD5R): add Editor unit test
* test: 增加 Button 单元测试
* test: 增加单元测试
* test: 增加单元测试
* refactor: 更新代码
* doc: 更新资源文件
* doc: 格式化文档
* refactor: 更新代码消除警告信息
2022-03-17 12:53:58 +00:00
alex_zou
c25c1fde1d !2541 feat(#I4Y6OH): add sensors watch location feature
* refactor: 格式化代码
* refactor: 更新地理位置示例代码
* 完善组件功能, 实现持续定位获取单次移动距离/总移动距离功能
2022-03-17 01:26:56 +00:00
Argo
ef355e4c64 !2540 feat(#I4Y3QG): full screen mode compatible extra extra large size
* doc: 更新注释
* feat: 更新始终全屏逻辑
* doc: 更新超超大全屏示例
* chore: 更新样式
2022-03-16 07:19:45 +00:00
Argo
67b1c98251 !2539 feat(#I4Y2KZ): dropdown support extra extra large size
* doc: 更新 Dropdown 示例
2022-03-16 05:23:34 +00:00
Argo
27bf0997ce !2538 feat(#I4Y2JH): button support extra extra large size
* feat: 按钮增加 xxl 样式
* doc: 更新超超大按钮文档
2022-03-16 05:17:02 +00:00
Argo
2d55759767 !2537 feat(#I4Y2BM): checkbox support xl xxl size
* doc: 更新示例文档
* chore: 增加大小样式
2022-03-16 03:58:55 +00:00
Argo
9c08789821 !2536 feat(#I4Y24F): avatar support xxl size
* doc: 更新文档
* doc: 增加超大示例
* chore: 增加 is-xxl 样式
2022-03-16 03:30:13 +00:00
Argo
66ab7a0e97 !2535 feat(#I4Y0FS): support extra extra large size
* doc: 更新示例文档增加超超大弹窗
* feat: 更新弹窗默认值为 xxl 大小
* chore: 增加 xxl 样式
* feat: 增加 xxl 样式
2022-03-16 03:18:39 +00:00
Argo
012f5dc39b !2534 fix(#I4XZDD): missing DisplayText when set IsDisabled on Switch component
* chore: bump version beta03
* fix: missing DisplayText when set IsDisabled on Switch component
2022-03-15 14:43:56 +00:00
Argo
3abbe89b71 !2533 feat(#I4Y023): change save callback parameter to nullable
* chore: bump version to beta02
* feat: ShowSaveDialog 参数可为空
* doc: 增加参数注释
2022-03-15 14:09:32 +00:00
Argo
6208392599 !2532 test(#I4XYP2): add unit test for cascade
* test: 增加 IsDisabled 单元测试
* refactor: 重构代码提高可读性
* refactor: 更新设置默认值逻辑
* test: 增加设置默认值单元测试
* test: 增加 Items 单元测试
* test: 增加 Color 单元测试
* test: 增加表单内单元测试
* refactor: 重构代码
* refactor: 格式化代码
* test: 增加单元测试
2022-03-15 09:35:49 +00:00
Argo
ba43ff1802 !2531 fix(#I4XVKU): Light component support custom class html attribute
* fix: Light 组件支持自定义 class 属性
2022-03-15 05:02:22 +00:00
Argo
04070c1ac5 !2530 fix(#I4XPYY): input can't auto focus when inside Modal
* chore: bump version beta01
* fix(#I4XPYY): 修复弹出窗内的 input 无法自动获得焦点问题
2022-03-14 07:47:08 +00:00
Argo
2856ef0bc5 !2529 test(#I4XPYV): add unit test for readonly property render to Display
* test: 增加只读属性单元测试
* test: 实现 LookupServiceKey 接口
2022-03-14 07:15:56 +00:00
william19941994
679dda9cc9 !2527 feat(#I4XOJE): add LookUpService
* doc: 更新 TableColumn 文档
* chore: bump version 6.4.4
* doc: 更新示例
* doc: 更新示例
* doc: 更新注释文档
* refactor: 重构示例 Lookup 服务位置
* refactor: 移除接口显式实现代码
* feat: Display 组件支持 LookupService
* refactor: LookupService 支持空键值
* refactor: 更改 EmptyLookupService 为 NullLookupService
* refactor: 更改服务名称
* Merge branch 'main' into dev-lookup
* !2525 增加了个LookUpService类
* 增加了个LookUpService类,通过AutoGenerateColumnAttribute中的LookUpServiceCatalog…
2022-03-14 06:54:07 +00:00
Argo
3174b4d620 !2528 test(#I4XOJ0): add Captcha unit test
* test: improve code coverage
* test: 更新单元测试
* test: 增加单元测试
* refactor: 精简代码
* refactor: 移除 set 属性
* refactor: 移除 Captcha 基类
2022-03-14 04:25:10 +00:00
Argo
2aa480dc55 !2526 doc(#I4XOHU): update ul-demo style for web site
* doc: 更新网站 UL 提示样式
2022-03-14 04:13:56 +00:00
Argo
8fffa6c5ed !2522 test(#I4XKX7): add unit test for camera
* test: 增加 AutoStart 单元测试
* test: 增加 Preview 单元测试
* test: 增加 Capture 单元测试
* test: 增加 Stop 单元测试
* test: 增加 Start 单元测试
* test: 增加 Error 单元测试
* test: 增加 Init 单元测试
* refactor: 更新销毁逻辑
* refactor: 移除无用的代码
* refactor: 增加 PlaceHolder 赋值
* refactor: Select 组件增加 PlaceHolder 支持
* test: 增加宽高单元测试
* test: 增加单元测试
* doc: 精简判断条件
* doc: 格式化代码
2022-03-13 05:13:19 +00:00
Argo
19b1775173 !2521 test(#I4XK56): improve code coverage
* test: 补充 Password 单元测试
* test: 补充 Readonly 单元测试
* feat: 更新单元测试
2022-03-12 12:03:04 +00:00
Nine
9080183667 !2520 fix(#I4XJ5M): fix IsDisable property of tablecellbutton component
* fix: 修复 tablecellbutton IsDisable 无效
2022-03-12 11:34:11 +00:00
Argo
8cddaf2092 !2519 feat(#I4XHT5): InputGroup compatibale with Select component
* chore: bump version beta04
* Merge branch 'main' into refactor-display
* doc: 增加 Select 组合示例
* doc: 重命名 Text 为 DisplayText
* style: 适配 Select 组件
* refactor: 弃用 Text 属性
* doc: 格式化文档
* fix: Group 支持 html 标签
* refactor: 设置 Text 与 DisplayText 同步
2022-03-11 16:51:17 +00:00
Argo
87f12037fb !2518 refactor(#I4XHT3): move Print method into extension class
* refactor: 拆分服务
* doc: 格式化代码
2022-03-11 16:44:53 +00:00
Argo
2ca65c31f9 !2517 feat(#I4U3DX): make the item visible in dropdown menu on Select component
* style: 更新样式
* feat: 增加脚本滚动下拉框
* doc: 代码格式化
2022-03-11 16:41:28 +00:00
Argo
c37236fd16 !2515 feat(#I4XGLY): BootstrapInputGroupLabel adopt ValidateForm
* doc: 增加示例
* refactor: GroupLabel 增加功能
* refactor: 更改类可见性
* feat: 表单组件基类增加对 InputGroup 组件兼容代码
* feat: 骨架屏组件支持自定义 html 属性
2022-03-11 09:43:02 +00:00
Argo
384467184d !2514 fix(#I4U9JM): improve skeleton tree for Tree component
* chore: bump version beta03
* test: 更新单元测试
* doc: 增加异步加载显示骨架屏示例代码
* doc: 更新资源文件
* feat: 增加额外样式处理
* fix: Tree 增加骨架屏支持
2022-03-11 04:58:25 +00:00
Argo
72ea67e99e !2513 feat(#I4XDLI): add SkeletonTree component
* doc: 增加 SkeletonTree 示例
* feat: 增加 SkeletonTree 组件
2022-03-11 04:35:34 +00:00
Argo
999d9a2b0f !2512 refactor(#I4XBU1): change device to enum type of WebClientInfo
* feat: 更改 DeviceType 为枚举类型
2022-03-11 01:25:09 +00:00
Argo
510024088c !2510 feat(#I4X9JC): add overflow datetime check
* chore: bump version beta01
* feat: 增加时间溢出样式
* feat: 增加时间溢出判断方法
* fix: 时间加减增加保护
* feat: 增加扩展方法
2022-03-10 11:53:48 +00:00
Argo
2bfe57a8fb !2509 feat(#I4X74N): CanWrite extension method support complex property name
* feat: CanWrite 支持复杂类型属性名
2022-03-10 05:04:03 +00:00
Argo
1117e4a74f !2508 feat(#I4WP77): table column support readonly property
* Merge branch 'main' into feat-table-column
* feat: 增加 CanWrite 扩展方法
* feat: Table Excel 模式支持只读属性
* feat: EditorForm 支持只读属性
* refactor: Display 组件移除 ValueChanged 回调委托
* feat: 增加 FieldName 参数支持只读属性
* refactor: 格式化代码使用 char 数据类型
2022-03-10 04:49:42 +00:00
Argo
5b41f22c15 !2507 feat(#I4X736): public extend method GenerateValueChanged
* feat: 公开 GenerateValueChanged 方法
2022-03-10 04:47:27 +00:00
Argo
d7477ca689 !2506 feat(#I4X3SG): add ButtonTemplate parameter on Tab component
* chore: bump beta01
* test: 增加 ButtonTemplate 单元测试
* feat: Tab 组件增加扩展按钮模板
2022-03-10 02:05:17 +00:00
Argo
45fc1c8206 !2505 refactor(#I4X43P): modify private to protected for IsAuthenticated on Layout component
* feat: IsAuthenticated 子类可赋值
2022-03-09 12:26:06 +00:00
Argo
1f1eb77657 !2504 refactor(#I4X3WW): update Filter/Sort lambda expression for complex bind field on TableColumn
* Merge branch 'main' into feat-filter
* refactor: 重构代码
* refactor: 重构 GetPropertyLambdaByName 方法
* refactor: 重构 QueryableOrderBy 方法
* refactor: 重构 EnumerableThenBy
* refactor: 重构 EnumerableOrderBy 方法
* refactor: 增加过滤条件支持复杂数据类型
2022-03-09 11:41:47 +00:00
szpeak
44c41ee268 !2502 feat(#I4X067): support Filter/Sort function when bind complex property
* 解决Table列复杂类型绑定过滤和排序问题
2022-03-09 04:13:43 +00:00
Argo
34735d83aa !2503 test(#I4X05H): add unit test for Dropdown
* refactor: 重构代码支持下拉框模板
* test: 更新单元测试覆盖率 100%
* test: 更新 OnValueChanged 单元测试
* test: 更新 OnSelectedItemChanged 单元测试
* test: 更新在验证表单内单元测试
* test: 更新 IsFixedButtonText 单元测试
* test: 更新对齐方式单元测试
* test: 更新弹出窗方向单元测试
* add  DropdownTest.cs 未完成。
2022-03-09 04:06:10 +00:00
Argo
62ba867a9d !2500 refactor(#I4WVXC): refine code for the value not in Items
* test: 补充单元测试
* chore: bump version 6.4.2
* refactor: 重构赋值逻辑
2022-03-08 08:50:10 +00:00
Argo
64021c348e !2499 refactor(#I4WVAB): remove HasKey property on TableTreeNode class
* refactor: 精简判断模型是否有 Key 标签逻辑
2022-03-08 08:12:45 +00:00
Argo
ca07795087 !2498 fix(#I4WV6R): edit/delete button in table toolbar enable when no row selected
* doc: 更新示例代码
* fix: 修复行编辑后导致工具栏编辑按钮仍然可用问题
* test: 增加单元测试
* feat: 增加缓存方法
* feat: 增加 Lambda 扩展方法获得 Key 标签属性值
* doc: 增加描述信息
* feat: 移除未实现的下载列表
2022-03-08 07:47:25 +00:00
Argo
60d625dab6 !2497 feat(#I4WV52): add GetKeyValue method on Utility extension class
* refactor: 合并单元测试
* test: 增加单元测试
* feat: 增加缓存方法
* feat: 增加 Lambda 扩展方法获得 Key 标签属性值
2022-03-08 07:44:11 +00:00
Argo
75838fdc98 !2496 revert(#I4WSL1): recover remove code in ValidateForm
* test: 补充占位符单元测试
* test: 增加 ValidateFormTestBase 类
* refactor: 支持占位符错误信息
* revert: 恢复删除代码
2022-03-08 03:46:50 +00:00
szpeak
09d447cd1d !2495 fix(#I4WSEI): update Value use UI data when value not in Items on Select component
* 解决Select初始化的时候界面自动选择了第一个,但是没有同步绑定的值,导致值和数据不同步
2022-03-08 02:26:13 +00:00
Argo
66e311d365 !2494 feat(#I4WM94): add IsLink parameter on PopConfirmButton component
* chore: bump version 6.4.1
* test: 增加 IsLink 相关单元测试
* doc: 增加 IsLink 参数说明
* doc: 增加超链接确认按钮示例
* refactor: 改用动态组件渲染确认按钮
* feat: 增加 IsLink 参数
2022-03-07 04:31:54 +00:00
Argo
d5f43e525d !2493 refactor(#I4WLN7): remove GenerateElement from DynamicElement component
* refactor: 移除 GenerateElement 参数
2022-03-07 03:24:18 +00:00
Argo
c28f31157d !2492 feat(#I4WLL7): add Obsolete on IsComplete parameter on SwalOption
* refactor: 相关组件适配调整移除对 IsConfirm 属性的引用
* feat: Swal 组件适配调整
* feat: IsConfirm 增加已弃用关键字
2022-03-07 03:21:25 +00:00
Argo
9e0cf3f5b2 !2491 refactor(#I4WI7K): move DialgService extension method into DialogExtensions file
* chore: bump version beta03
* refactor: 移动弹窗到扩展方法类中
2022-03-06 11:06:40 +00:00
Argo
f90a8e7ba5 !2490 fix(#I4WI7I): remove IsConfirm parameter on SwalOption
* test: 更新单元测试
* fix: 修复 ShowModal 需要手动设置 IsConfirm 参数
* refactor: 重构代码移动 ShowModal 到扩展类中
* refactor: 重构代码
2022-03-06 11:02:20 +00:00
Argo
09790adc59 !2489 test(#I4WHSZ): fix test run fail issue
* fix: 修复 Test 并发报错问题
2022-03-06 07:00:39 +00:00
Argo
bbf5ac338c !2488 fix(#I4WG4N): not show filename when bind value type is string on InputUpload component
* chore: bump version beta02
* fix: 修复 InputUpload 丢失文件名问题
2022-03-05 06:34:25 +00:00
Argo
9aa671f67f !2487 fix(#I4WFYV): can't inherit from PopConfirmButton
* chore: bump version beta01
* refactor: 移动 OnClick 回调到 Button 类中
* feat: ConfirmButton 移除 sealed 关键字
2022-03-05 05:50:14 +00:00
Argo
6024ce6b76 !2486 feat(#I4WFOW): add GetFieldByName static method
* feat: 增加 GetFieldByName 方法
2022-03-05 03:46:20 +00:00
alex_zou
9c9a520a82 !2485 test(#I4WF7Y): add unit test for Breadcrumb
* doc: 格式化代码
* BreadcrumbsTest
2022-03-05 03:43:19 +00:00
alex_zou
b080c06d66 !2484 test(#I4WF7U): add unit test for Split
* doc: 格式化代码
* Update SplitTest.cs
* Create SplitTest.cs
2022-03-05 03:39:46 +00:00
Argo
cb7c6f465a !2483 refactor(#I4WEZR): redesign complex property get/set function
* fix: 修复简单属性无法获取问题
* Merge branch 'main' into feat-multiple-property
* feat: TableColumn 支持多层次属性
* doc: 更新 ValidateForms 参数名称
* refactor: 优化获取级联参数方法
2022-03-04 13:57:46 +00:00
szpeak
46d3ce5416 !2479 feat(#I4WEZR): support complex property on TableColumn
* 增加对Table列的多级属性绑定
2022-03-04 13:37:23 +00:00
Argo
d4e7a173dd !2482 fix(#I4WAHK): remove fill mode on Camera component
* refactor: 移除 fill 特性
2022-03-04 04:04:49 +00:00
Argo
95a1243b25 !2481 doc(#I4WAFR): update document for Camera
* doc: 完成 Camera 组件翻译功能
* doc: 更新示例文档
* refactor: 更新 Camera 视频窗口大小
* fix: 修复失败的单元测试
2022-03-04 03:57:31 +00:00
szpeak
18a052c339 !2478 feat(#I4W9YF): provider width and height parameter on Camera component
* 修改支持设置摄像头分辨率VideoWidth,VideoHeight
2022-03-04 03:13:17 +00:00
Argo
4db1f69fed !2480 test(#I4W9WY): add unit test for ValidateForm
* test: 增加异步提交单元测试
* test: 增加资源文件
* test: 增加资源文件单元测试
* test: 增加本地化单元测试
* refactor: 移除冗余代码
* refactor: 移除冗余代码
* refactor: 重构代码
* test: 增加代码覆盖率
* test: 增加辅助代码
* test: 增加 Upload 组件单元测试
* test: 增加属性是类单元测试
* test: 增加 Metadata 单元测试
* refactor: 重构代码
* test: 增加代码覆盖率
* test: 增加 SetError 单元测试
* test: 增加 ShowLabel 单元测试
* test: 增加 必填项 单元测试
* test: 增加校验所有字段单元测试
* test: 增加 OnFieldChanged 单元测试
* test: 增加 Validate 单元测试
* refactor: 增加 NotNullWhen 标签
* refactor: 重构逻辑增加空判断
* refactor: 使用 TryAdd 方法
* test: 增加 Validator 单元测试
* refactor: 移除冗余代码
2022-03-04 03:10:11 +00:00
Argo
12a50f5139 !2477 test(#I4W48M): add unit test for EditorForm
* test: 增加 FieldChanged 单元测试
* test: 增加 EditorItem 自定义设置单元测试
* test: 增加只读设置单元测试
* test: 增加 EditTemplate 显式接口赋值单元测试
* test: 增加 DisplayName 方法单元测试
* test: 增加杂项单元测试
* test: 增加 EditorItem 单元测试
* test: 增加 EditorItem 单元测试
* refactor: 精简代码
* doc: 格式化代码
* test: 增加 Buttons 单元测试
* test: 增加 IsSearch 单元测试
* test: 增加 IsDisplay 单元测试
* test: 增加自动生成单元测试
* test: 增加  Items 单元测试
* test: 增加模型错误单元测试
* test: 增加级联参数单元测试
* test: 增加级联参数单元测试
* test: 增加单元测试
* refactor: 格式化代码
2022-03-03 06:13:56 +00:00
Argo-Tianyi
0dc4bdce09 chore: bump version 6.4.0 2022-03-03 10:46:11 +08:00
Argo-Tianyi
e9d843caea chore: bump version 6.3.4 2022-03-03 10:39:13 +08:00
Argo
68d0c28c17 !2476 test(I4VYDG): improve code coverage for InputNumber component
* test: 增加 Null 值单元测试
2022-03-02 06:51:55 +00:00
Argo
191023fb5e !2475 test(#I4VXYM): add unit test for BootstrapInputNumber
* test: 增加类型异常单元测试
* test: 增加验证错误信息单元测试
* test: 增加数据类型单元测试
* revert: 恢复单元测试
* test: 增加数据类型单元测试
* test: 增加 ShowButtons 单元测试
* test: 增加 Blur 单元测试
* doc: 更新文档
* Merge branch 'main' into test-input
* test: 增加表单验证单元测试
* test: 增加 int 单元测试
* test: 增加 double 单元测试
* test: 增加单元测试
* refactor: 移除静态构造函数
* doc: 格式化代码
2022-03-02 06:20:44 +00:00
Argo
49c26a9a6f !2474 doc(#I4VWDG): update cs file link
* doc: 重命名类
* doc: 重命名
2022-03-02 03:02:26 +00:00
Argo
134b9cedeb !2473 fix(#I4VUTF): update Edit/Delete button in table row shown condition
* chore: bump version beta04
* fix: 更新行内按钮显示逻辑与原有逻辑一致
2022-03-01 14:12:14 +00:00
ahmet kocadoğan
6aad0ec11c logout link text fix 2022-03-01 21:04:07 +08:00
Argo
4c5b8b7b87 !2472 test(#I4VUOL): add unit test for PopConfirmButton
* test: 更新 PopConfirmButton 单元测试
* chore: 增加 PopoverTestBase
* test: 增加 PopConfirmButton 单元测试
* doc: format code
2022-03-01 12:58:14 +00:00
Argo
3a972222bc !2470 test(#I4VUGM): add unit test for SwitchButton
* test: 增加 SwitchButton 单元测试
2022-03-01 11:44:09 +00:00
Argo
992122d619 !2469 doc(#I4VQAV): update document for table search feature
* doc: 更新文档修正自定义模型
* chore: 更新部署脚本增加 nopager 参数
2022-03-01 05:30:24 +00:00
Argo
5ad92870d9 !2468 chore(#I4VP0M): add script for development
* chore: 增加 Nginx 配置代码
* chore: 增加 blazor 服务脚本
* chore: 更新脚本
2022-03-01 02:25:31 +00:00
Argo
13bedf1f86 !2466 feat(#I4VIHR): add virtual key work on HandlerClick method on Button component
* chore: bump version beta03
* refactor: 重构 HandleClick 方法子类可更改
2022-02-28 03:23:08 +00:00
Argo
c76240c684 !2465 test(#I4VFGQ): improve unit test for DateTimeRange
* Merge branch 'dev-chore' into test-datetime-range
* Merge branch 'main' into test-datetime-range
* doc: 格式化文档
* doc: 格式化文档
* test: 增加上一月上一年单元测试
* chore: 更新配置文件
2022-02-27 06:11:25 +00:00
alex_zou
0649e5c79b !2449 doc(#I4UMV0): update font-awesome.min.css referenc
https://gitee.com/LongbowEnterprise/BootstrapBlazor/issues/I4UMV0
2022-02-27 10:00:57 +08:00
Argo
01f4546615 !2464 feat(#I4VEUV): add FontAwesome nuget package
* chore: 增加 FontAwesome 包脚本
* refactor: 重命名类名
* refactor: 重命名类
* chore: 排除 BB 资源文件
* chore: 增加 FontAwesome 项目
* chore: 增加资源文件
2022-02-26 14:05:17 +00:00
Argo
567217c21f !2463 test(#I4VAZG): add test for CardUpload support base64 format data string
* test: 补充 CardUpload 单元测试
2022-02-25 08:37:10 +00:00
Argo
c890433b42 !2462 fix(#I4VASV): table header missing
* chore: bump version beta02
* fix: 修复 Table 组件表头丢失问题
2022-02-25 08:18:45 +00:00
Argo
aa888a9b11 !2461 feat(#I4V7NE): CardUpload PrevUrl support base64 format data string
* chore: bump version to 6.3.4-beta01
* doc: 增加示例文档
* chore: 增加资源文件
* feat: 增加 Base64 格式内容字符串作为预览文件路径功能
2022-02-25 07:51:57 +00:00
Argo
ffbb038db2 !2460 feat(#I4V8Q9): add ShowMultiFilterHeader parameter on Table component
* doc: 增加参数说明文档
* doc: 更新示例
* feat: 增加 ShowMultiFilterHeader 参数
2022-02-25 07:24:21 +00:00
Lukas Gundermann
e288ed7c91 Added german language 2022-02-25 09:33:10 +08:00
Argo
1f3c28021c !2459 fix(#I4V6HA): throw exception when NullSwitch bind property has [Required] attribute
* chore: bump version 6.3.3
* chore: 更新打包文件
* fix: NullSwitch 报错问题
2022-02-24 14:00:50 +00:00
Argo
5190d3976e !2458 test(#I4V6DH): add unit test for Pagination
* Merge branch 'main' into test-pagination
* refactor: 更改 Pagination 参数为 int
* test: 增加 ShowPaginationInfo 单元测试
* test: 增加 MovePage 单元测试
* test: 增加 OnPageItemsChanged 单元测试
* doc: 格式化文档
* test: 增加 OnClick 单元测试
* test: 增加 Pagination 单元测试
* refactor: 重构代码移除基类
2022-02-24 12:56:26 +00:00
Argo
42d9dca18a !2457 feat(#I4V64R): TotalCount parameter on Pagination/ListView change long to int type
* refactor: 更改参数类型为 Int
2022-02-24 11:34:46 +00:00
Argo
64038a3720 !2456 fix(#I4V5MJ): invisibleColumns parameter not work in DataTableDynamicContext
* chore: bump version beta03
* fix: 修复 hiddenColumns 逻辑
2022-02-24 10:03:17 +00:00
Argo
010a2845e6 !2455 test(#I4TPYW): add DateTimePicker unit test
* refactor: 更新逻辑
* doc: 格式化代码
* refactor: 重构代码
* test: 增加 IsDisabled 单元测试
* test: 增加 Validate 单元测试
* test: 增加 TimeBody 单元测试
* test: 重构单元测试
* test: 增加 PlaceHolderString 单元测试
* test: 增加 Value 单元测试
* Revert "refactor: 更新 DateTimePicker 代码"
* Merge branch 'main' into dev-test-datetimepicker
* test: 增加代码覆盖率
* test: 增加 Now 按钮单元测试
* refactor: 重构代码
* refactor: 更新代码
* test: 提高代码覆盖率
* refactor: 更新设置值逻辑
* test: 提高代码覆盖率
* test: 增加月视图单元测试
* test: 增加 IsDisable 单元测试
* test: 增加报错单元测试
* test: 增加 ValidateForm 单元测试
* test: 增加 NullValue 单元测试
* refactor: 格式化代码
* refactor: 精简代码
* Merge branch 'main' into dev-test-datetimepicker
* refactor: 修改参数名称
* test: 补充 DateTimePicker 单元测试
* test: 添加 DateTimePicker 组件单元测试
2022-02-23 13:25:53 +00:00
Argo
876caef0c3 !2454 feat(#I4UZ8Y): control the button in table row
* doc: 更新参数文档
* chore: bump version beta02
* feat: 更新 ShowButtonCallback 逻辑
2022-02-23 09:43:27 +00:00
j4587698
f8bd17574d !2442 feat(#I4U8G2): support highlight on Markdown component
* Merge branch 'main' into dev-markdown
* chore: 更新配置文件
* revert: 更新项目依赖
* chore: 更新版本号
* chore: 微调配置文件顺序
* fix: 增加 tag 样式防止与 Tag 组件冲突
* Merge remote-tracking branch 'origin/dev-markdown' into dev-markdown
* 修复插件报错问题
* chore: 移动 Markdown 语法高亮相关资源到 Shared 工程
* style: 增加 switch 样式
* doc: 格式化文档
* chore: 更新资源文件
* revert: 撤销配置文件更改
* revert: 移除 Layout 文件脚本代码
* 1、升级tui.editor到3.13
2022-02-22 07:41:54 +00:00
Argo
d515a36faf !2453 test(#I4UQ4S): improve Tree unit test
* chore: bump version beta01
* test: 补全 Tree 单元测试
* test: 增加 ShowRadio 单元测试
* fix: 修复 Radio 模式选中逻辑
2022-02-22 06:29:01 +00:00
Argo
80a1434a3c !2451 test(#I4UPLE): improve Radio unit test
* test: 补充 Validate 单元测试
* test: 补充 ShowLabel 单元测试
* test: 补充 OnClick 单元测试
* refactor: 参数私有化
2022-02-22 05:32:28 +00:00
Argo
3240d0584c !2450 feat(#I4UPFT): add ShowRadio parameter on Tree component
* doc: 更新参数说明文档
* chore: bump version 6.3.2
* feat: 增加点击 TreeNode 选中 Radio 功能
* doc: 增加显示单选框示例文档
* revert: 撤销示例更改
* doc: 更新注释文档
* feat: Tree 增加 GroupName 参数赋值
* feat: 移除 GroupName 级联参数
* doc: 添加 Tree 单选示例
* feat: 树形组件添加单选功能
* refactor: 指定 Radio 组件泛型类型
* feat: Radio 改为泛型组件
2022-02-22 05:07:37 +00:00
Argo
0c5fc4c1a7 !2448 test(#I4UMS2): add CardUpload unit test
* test: 增加 File 检查单元测试
* refactor: 删除冗余代码 ValidateFile 导致触发两次客户端验证
* doc: 格式化代码
* fix: 修复单文件样式
* fix: 修复验证两次问题
* test: 增加 ValidateForm 单元测试
* refactor: 重构代码
* doc: 格式化文档
* test: 增加 Value 单元测试
* refactor: 更新代码逻辑
* refactor: 更新代码逻辑
* refactor: 移除 OnBrowser
* chore: 格式化代码
* test: 增加 Error 属性单元测试
* test: 增加 Accept 单元测试
* test: 增加 Reset 单元测试
* refactor: 格式化代码
* refactor: 精简代码
* test: 增加 CardUpload 在表单内的单元测试
* test: 增加 CardUpload 单元测试
* refactor: 重构 IsImage 方法修复 bug
2022-02-21 13:24:06 +00:00
Argo
b4c6e79fbf !2447 test(#I4UFDK): add ButtonUpload unit test
* test: 增加无扩展名格式单元测试
* test: 增加 Accept 单元测试
* test: 增加 Folder 单元测试
* test: 增加 FileFormat 单元测试
* test: 增加上传进度单元测试
* test: 增加 ButtonUpload 单元测试
* doc: 更新注释问答那个
2022-02-20 10:07:14 +00:00
Argo
628820ac02 !2446 test(#I4UF4J): add unit test for AvatarUpload
* test: 增加 AvatarUpload 单元测试
2022-02-20 07:48:32 +00:00
Argo
e42b2203f4 !2445 test(#I4UF29): add InputUpload unit test
* test: 增加 InputUpload 单元测试
* refactor: 移除 Upload 组件
2022-02-20 07:07:38 +00:00
Argo
adc1bdbe36 !2444 fix(#I4U22I): multiple dialog render layout incorrect
* chore: bump version 6.3.2-beta03
* fix: 增加 ShowLabel 标签参数赋值
* fix: 修复单元测试多一个 ModalDIalog 问题
* fix: 多级弹窗工作不正常
2022-02-20 05:49:19 +00:00
Argo
44594c9975 !2443 test(#I4UDO7): add TransferPanel unit test
* test: 增加 TransferPanel 单元测试
* refactor: 删除代码
2022-02-19 11:29:23 +00:00
alex_zou
c4ea74bda2 !2441 test(#I4TWJ6): add Transfer unit test
* test: 更新单元测试
* refactor: 更新代码
* test: 增加一些附加属性单元测试
* test: 增加 ValidateForm 内单元测试
* test: 增加 Int 值类型单元测试
* test: 增加 SelectedItem 值类型单元测试
* test: 增加 EnumerableString 值类型单元测试
* fix: 修复结果不正确问题
* test: 增加 按钮切换 单元测试
* test: 增加 Items 单元测试
* refactor: 重构代码修复 bug
* feat: 增加必填标签
* ValidateForm  @bind - Value 不会写, 先搁一下
* TransferPanel_Ok 100%覆盖
* e.Value == null 覆盖不到
* Update TransferTest.cs
* Create TransferTest.cs
2022-02-19 07:13:32 +00:00
Argo
db4885379d !2440 test(#I4TPZ2): add unit test for Tree
* test: 增加单元测试代码覆盖率
* feat: 增加级联复选框功能
* feat: 增加异步支持
* feat: 增加 SkeletonTree 组件
* test: 增加 HasChildNode 单元测试
* test:  增加展开单元测试
* test: 增加 Template 模板单元测试
* test: 增加 OnClick 单元测试
* refactor: 重构代码
* refactor: 更新组件代码
* refactor: 重构 Tree 层次化方法
* refactor: 重构代码准备重构组件
* doc: 格式化文档
* chore: 增加命名空间
* refactor: 增加 NodeItem 重构 MenuItem 与 TreeItem
* test: 增加 Tree 单元测试
* feat: 增加扩展方法
* doc: 更正源码链接地址
* doc: 格式化文档
2022-02-18 11:16:02 +00:00
Argo
59c07ab5f1 !2439 fix(#I4U963): advance search not clear string.Empty condition
* chore: bump version beta02
* fix: 修复高级搜索条件不正确问题
2022-02-18 05:07:35 +00:00
Argo
09dbf5d765 !2438 test(#I4U8Z3): add unit test for LookupFilter
* test: 增加 FilterLogicItem 单元测试
* test: 增加 SearchFilterAction 单元测试
* refactor: 格式化代码
* test: 增加 FilterKeyValueAction 单元测试
* refactor: 格式化代码
* test: 补全单元测试
* test: 增加 LookupFilter 单元测试
* refactor: 重构代码
2022-02-18 03:24:13 +00:00
Argo
972af30f02 !2437 doc(#I4U882): update doc for markdown
* fix: 修复文档描述错误
2022-02-18 02:30:33 +00:00
Argo
d5eea5b2e9 !2436 test(#I4U4QS): add unit test for Carousel
* test: 更新 Carousel 单元测试
* chore: 删除照片
* 增加走马灯单元测试
2022-02-17 07:51:12 +00:00
Argo
b8eff2be50 !2435 test(#I4U4GB): add EnumFilter unit test
* test: 更新 EnumFilter 单元测试
* refactor: 修复 Type 为空报错问题
* test: 增加单元测试
2022-02-17 07:31:38 +00:00
Nine
291114eb2f !2433 doc(#I4TPWK): fix the logout document error
* doc: 修复文档错误
2022-02-17 01:14:03 +00:00
Nine
10ba4c8d95 !2432 test(#I4TYXD): add console component unit tests
* test: 补充单元测试
* doc: 更新代码编写方式
* test: 完善单元测试
* test: add unit test of console component
2022-02-16 11:11:51 +00:00
Nine
5cb6d6f9d0 !2431 doc(#I4TXMT): add translation of title page
* doc: add translation of title sample page
2022-02-16 07:05:51 +00:00
Argo
94a395fda0 !2430 test(#I4TWCR): add unit test for StringFilter
* test: 增加单元测试
* refactor: 代码重构
2022-02-16 05:20:18 +00:00
Argo
a16759326e !2429 test(#I4TW9L): add unit test for NumberFilter
* doc: 增加注释
* refactor: 重构代码
* test: 增加代码覆盖率
* refactor: 重构代码
* test: 增加代码覆盖率
* test: 增加单元测试
* refactor: 格式化代码
* refactor: 重构代码
2022-02-16 05:03:59 +00:00
Argo
792391e6e9 !2428 test(#I4TW5C): add unit test for DateTimeFilter
* test: 增加多过滤条件单元测试
* test: 增加 DateTimeFilter 单元测试
* refactor: 重构代码
* refactor: 重命名 BoolFilter 单元测试
2022-02-16 04:05:29 +00:00
Argo
869bcf505d !2427 test(#I4TV55): add unit test for BoolFilter
* test: 增加 BoolFilter 单元测试代码覆盖率
* test: 增加 BoolFilter 单元测试
* refactor: 重构代码
2022-02-16 02:38:35 +00:00
Argo
6d5ace1963 !2426 test(#I4TUVC): add unit test for TableFilter
* doc: 格式化文档
* test: TableFilter 单元测试覆盖率 100%
* test: 增加 TableFilter 单元测试
* test: 增加辅助方法
* test: 增加 Filter 单元测试
* refactor: 重构代码
* doc: 格式化文档
2022-02-16 02:15:17 +00:00
Argo
2b9dddd309 !2425 feat(#I4TPWE): add download folder method on DownloadService
* Merge branch 'main' into dev-download-folder
* docs: 更新示例
* refactor: 重构代码优先判断文件夹不存在
* refactor: 重构代码
* doc: 修改文档
* refactor: 修改方法签名以及异常信息
* doc: 补充下载文档
* feat: 添加通过物理路径下载文件和文件夹压缩下载方法
2022-02-15 15:38:59 +00:00
Argo
64cdef9f4f !2424 feat(#I4TPVY): add physical file path override method on DownloadService
* revert: 移除 DownloadFolderAsync 方法
* docs: 更新示例
* refactor: 重构代码优先判断文件夹不存在
* refactor: 重构代码
* doc: 修改文档
* refactor: 修改方法签名以及异常信息
* doc: 补充下载文档
* feat: 添加通过物理路径下载文件和文件夹压缩下载方法
2022-02-15 15:35:43 +00:00
Argo
21635f0e98 !2423 fix(#I4TNP5): not initialize value on InputUpload component
* chore: bump version beta01
* fix: 修复 Upload 双向绑定无法初始化值问题
* refactor: 格式化代码
2022-02-14 15:22:41 +00:00
Argo
ce3bf8ad4c !2422 feat(#I4TLGT): add OnZoomAsync callback on CardUpload component
* feat: bump version 6.3.1
* feat: 增加 OnZoom 回调方法
2022-02-14 10:17:14 +00:00
Argo
fe696715ab !2421 test(#I4TJRC): update unit test for Transition
* test: 更新单元测试
2022-02-14 04:35:48 +00:00
alex_zou
f143b32550 !2418 test(#I4TJQM) add unit test for Transition
* Merge branch 'main' into Test_Transition
* Create TransitionTest.cs
2022-02-14 04:25:25 +00:00
alex_zou
4de807ba94 !2419 test(#I4TIMF): add Calendar unit test
* test: 更新单元测试代码覆盖率 100%
* fix: 合并基类修复周计算错误
* test: 更改单元测试基类
* refactor: 资源文件加载更改为同步初始化方法中
* Merge branch 'main' into Test_Calendar
* Create CalendarTest.cs
* Create TransitionTest.cs
2022-02-14 04:09:27 +00:00
j4587698
fa4da150f8 !2420 test(#I4TJ11): add unit test for Timeline
* test: 补充单元测试使代码覆盖率 100%
* refactor: 重构 Timeline 组件
* 添加TimeLine test
2022-02-14 03:07:41 +00:00
Argo
21e524ab6a !2417 fix(#I4TG7T): maximize dialog not work some times
* chore: bump version beta07
* chore: 更新脚本保证最大化成功
* chore: 临时提交
2022-02-12 16:32:01 +00:00
Argo
03ef8cd9c5 !2416 fix(#I4TG7O): missing button text on Edit/Search dialog Table component
* fix: 修复编辑/搜索弹窗按钮文本丢失问题
2022-02-12 16:27:06 +00:00
Argo
c9a0c32a0b !2415 feat(#I4TERI): edit/search dialog in Table support drag/maximize
* chore: bump version to beta06
* feat: 支持拖拽与垂直居中混合使用
* fix: 修复可拖动窗口自动居中问题
* chore: 修复可拖动脚本算法
* doc: 增加搜索弹窗最大化示例
* doc: 增加编辑弹窗最大化示例
* doc: 更新示例参数说明文档
* feat: table 组件编辑/搜索弹窗支持最大化按钮
2022-02-12 13:30:29 +00:00
Argo
f76ce14dee !2414 feat(#I4TERH): dialog support maximize button
* test: 提高代码覆盖率
* refactor: 格式化代码消除警告信息
* test: 增加 Dialog 单元测试
* doc: 更新示例文档
* feat: Dialog 组件增加 ShowMaximizeButton 参数
2022-02-12 12:40:24 +00:00
Argo
8619237cc8 !2413 feat(#I4TER4): add ShowMaximizeButton parameter on ModalDialog component
* test: 更新 Modal 单元测试
* test: 补全单元测试
* doc: 增加 ShowMaximizeButton 参数说明
* doc: 更新 Modal 弹窗最大化示例
* style: 增加最大化按钮样式
* feat: 增加 ShowMaximizeButton 参数
* doc: 移除通知图片设置
* chore: 更新资源文件
2022-02-12 11:22:49 +00:00
Argo
6a7898f7e4 !2412 feat(#I4T74I): edit/search dialog in table component support drag feature
* chore: bump version beta05
* doc: 更新编辑/搜索弹窗可拖拽
* doc: 更新说明文档
* chore: 更新打包脚本
* feat: 搜索弹窗与编辑弹窗支持可拖拽
2022-02-11 11:45:44 +00:00
Argo
0a52e7b8d6 !2411 fix(#I4TBEY): pagination info in table was wrong when render page
* chore: bump version beta04
* chore: 更新打包脚本文件
* style: 微调分页英文下的宽度
* fix: 修复页面按钮导致渲染组件后页面显示不正确问题
2022-02-11 10:09:42 +00:00
Argo
b285bc34f7 !2410 feat(#I4T5JG): add AutoClearSearchText parameter on Select
* chore: bump version 6.3.1-beta03
* test: 增加 AutoClearSearchText 单元测试
* doc: 增加 自动清空搜索文本 示例
* feat: 增加 AutoClearSearchText 属性
2022-02-11 05:31:48 +00:00
alex_zou
502f12e618 !2048 feat(#I4T7ZG): add BrowserNotification feature
* chore: bump version to 6.3.1-beta02
* chore: 增加格式化样式
* Merge branch 'main' into dev-notification
* chore: 更新资源文件
* doc: 更新示例
* chore: 更新打包文件
* feat: 更改为静态类
* chore: 删除不使用的类
* doc: 增加可为空设定
* refactor: 更改 Notification 服务为 BrowserNotification 静态类
* refactor: 更改 Geolocation 服务为静态类
* Update NotificationItem.cs
* 完成[通知点击后的回调]
* 语言资源以及bootstrap.blazor.min.js打包
* chore: 打包脚本
* doc: 更新菜单排序
* revert: 撤销菜单顺序更改
* revert: 撤销不需要的改动
* 添加组件 Notifications 通过浏览器API发送通知信息
2022-02-11 13:09:07 +08:00
Argo
9641edb93d !2409 fix(#I4SSN2): not keep selected rows states when use dynamic context in Table component
* chore: bump version 6.3.1-beta01
* fix: 修复 SelectedRows 被重置问题
2022-02-11 00:50:18 +00:00
Argo
a35694f7e3 !2407 test(#I4T736): add swal unit test
* Merge branch 'dev-wip' into dev-test-swal
* test: 增加单元测试 Order 功能
* refactor: 移除代码
* doc: 格式化文档
* test: 添加 swal 组件单元测试
2022-02-10 10:04:19 +00:00
Argo
887b0cdb48 !2406 doc(#I4T460): add dynamic update runtime feature on HemeLayout
* feat: 增加首页页脚计时器动态更新功能
2022-02-10 04:47:23 +00:00
william19941994
cf3f3e25c9 !2405 doc(#I4R77K): add sample code for InputGroup
* 增加InputGroup的文档
2022-02-10 04:28:21 +00:00
Nine
f086cbe972 !2404 test(#I4T2TK): add scroll component unit tests
* test: 添加 scroll 组件单元测试
2022-02-10 02:04:20 +00:00
Argo-Tianyi
521b5912da chore: bump version to 6.3.0 2022-02-10 00:17:51 +08:00
Argo
0c468eefa2 !2403 doc(#I4T0ZJ): update IPLocator sample code
* fix: 修复地理位置失效问题
* refactor: 移除 NET5 代码风格
2022-02-09 09:33:28 +00:00
Ashhhhhh520
18981b39fc feat(#I4SYY1): add OnFieldChanged on ValidateForm
close https://gitee.com/LongbowEnterprise/BootstrapBlazor/issues/I4SYY1
2022-02-09 14:28:52 +08:00
Argo
e0ce83f9b5 !2402 fix(#I4SYD6): throw exception when Items be set to Null
* Merge remote-tracking branch 'origin/dev-utility' into dev-select
* test: 增加空数据源单元测试
* fix: 修复 Select 组件 Items 设置 null 时报错问题
* refactor: 更新 builder 索引
2022-02-09 05:24:19 +00:00
Argo
632d0e6c03 !2401 test(#I4SWFH): fix test fail issue
* test: 修复测试失败问题
2022-02-08 17:18:20 +00:00
Argo
abb21abe5e !2400 test(#I4SWEF): add Timer unit test
* Merge branch 'main' into test-timer
* test: 增加 OnCancel 单元测试
* test: 增加 OnStar 单元测试
* test: 增加 IsVibrate 单元测试
* test: 增加 Progress 单元测试
* test: 增加 Color 单元测试
* test: 增加 Stroke 单元测试
* test: 增加 Width 单元测试
* test: 增加 Value 单元测试
* test: 增加 Timer 单元测试
* refactor: 更新 Timer 组件逻辑
* test: 增加代码覆盖率
* refactor: 更改参数验证逻辑到 OnParameterSet 中
* Revert "refactor: 合并 CircleBase 基类"
* refactor: 合并 CircleBase 基类
* test: 添加 circle 组件单元测试
2022-02-08 16:10:57 +00:00
Argo
69a36adb5a !2399 test(#I4SWEE): add Circle unit test
* test: 增加代码覆盖率
* refactor: 更改参数验证逻辑到 OnParameterSet 中
* Revert "refactor: 合并 CircleBase 基类"
* refactor: 合并 CircleBase 基类
* test: 添加 circle 组件单元测试
2022-02-08 16:09:18 +00:00
alex_zou
3e8d3966f1 !2398 doc(#I4SVE5): update TablesSelection sample codeSamples
* Samples 表格行选择页面清除按钮式样以及说明补全
2022-02-08 09:52:43 +00:00
alex_zou
14e8926602 !2396 feat(#I4SQKN): add GeolocationService
* Merge branch 'main' into dev-alex-geo
* doc: 更新地理位置信息服务示例
* chore: 更新打包文件
* doc: 格式化文档
* chore: 删除资源文件
* chore: 增加地理位置服务
* feat: 删除地理位置组件改用服务形式
* feat: 增加地理位置脚本调用方法
* doc: 更新示例文档
* chore: 调整位置
* revert: 删除图片
* chore: 更新菜单位置
* chore: 删除 nuevo_libs 组件库
* chore: 恢复配置
* chore: 更新配置
* chore: 移除 GenlocationItem 资源文件
* refactor: 恢复配置
* scripts: 打包脚本
* refactor: 继承 IDispose 接口
* refactor: 重命名符合命名规范
* refactor: 重命名 GeolocationItem
* refactor: 格式化代码
* refactor: 移除标签
* Merge branch 'main' into dev-alex-geo
* 提交地理定位/移动距离追踪组件[Desktop/Mobile 通用]
* Merge branch 'main' into dev-alex-geo
* Re-build bootstrap.blazor.bundle.min.js
* 合并 dev
* Merge branch 'dev' into dev-alex-geo
* 加入[停止追踪]功能, 正确放置 Geolocation.js ,移除host调试引用的js
* Geolocation 国际化
* 国际化
2022-02-08 07:16:07 +00:00
Argo
e9c26d3ac8 !2397 refactor(#I4SSM4): remove NotNullAttribute
* Merge branch 'main' into dev-wip
* refactor: 临时提交
2022-02-08 04:14:33 +00:00
j4587698
13ee6a2207 !2393 feat(#I4SNXQ): add DragDrop component
* Merge branch 'main' into dev-drop
* refactor: 更新拖拽组件菜单
* refactor: 格式化文档
* feat: 增加 IDispose 接口调用
* refactor: 格式代码
* 修复警告,添加文档
* 修复最后一个Item不执行OnDragEnd的问题
* Merge branch 'main' into dev-drop
* !2366 创建DragDrop组件
* 同步版本
* 解决一些bug
* 第一个版本
* 增加Card相关文档
2022-02-07 13:47:09 +00:00
Argo
2ac51a7520 !2395 test(#I4SOE4): add unit test for MultiSelect
* Merge branch 'main' into test-multi-select
* test: add ToggleMenu unit test
* test: add Validate unit test
* test: add ShowLabel unit test
* test: add ShowCloseButton unit test
* test: add DefaultButtons unit test
* test: add ToggleRow unit test
* test: add OnParameterSet unit test
* test: add OnSearchTextChanged unit test
* test: add ArrayValue unit test
* test: add ButtonTemplate unit test
* test: add EnumerableValue unit test
* test: add NullableEnumValue unit test
* test: add EnumValue unit test
* test: add Min/Max unit test
* refactor: 兼容 String 类型
* refactor: 精简逻辑
* refactor: MultiSelect 组件重构移除对 IDispose 接口继承
* test: 增加单元测试
2022-02-07 05:25:04 +00:00
Argo
86f1a7c691 !2394 refactor(#I4SODP): improve MultiSelect component
* refactor: 兼容 String 类型
* refactor: 精简逻辑
* refactor: MultiSelect 组件重构移除对 IDispose 接口继承
2022-02-07 05:22:35 +00:00
Nine
1c21fd9d1a !2392 doc(#I4SNTP): add english translation of search page
* doc: 添加 search 示例资源文件
2022-02-07 02:56:22 +00:00
Argo
3d50fcedd1 !2391 test(#I4SMS6): add Select unit test
* test: 增加 OnBeforeSelectedItemChange 单元测试
* test: 增加 ItemTemplate 单元测试
* test: 临时注销
* test: 增加 Validate 单元测试
* test: 增加 Color  单元测试
* test: 增加 OnSelectedItemChanged 单元测试
* refactor: 格式化文档
* refactor: 增加空判断
* refactor: 重构代码精简逻辑
* revert: 撤销更改
* test: 增加枚举值类型单元测试
* test: 增加 SelectOption 单元测试
* test: 增加 Options 模板单元测试
* test: 增加 OnSearchTextChanged 单元测试
* fix: 修复参数丢失问题
* refactor: 更改为可为空类型
* refactor: 更新注释文档
* refactor: 移除不使用的属性
* doc: 更新资源文件
* refactor: 移除 IsDisabled 条件判断
* refactor: 移除 Enum 自动生成候选项逻辑
* refactor: 精简 placeholder 逻辑
* test: 重构代码消除警告信息
* test: 增加 Select 单元测试
2022-02-07 04:03:58 +08:00
Argo
9a9d9001d0 !2390 test(#I4SMH6): add Dialog unit test
* Merge branch 'main' into test-dialog
* test: 增加 ShowSaveDialog 单元测试
* test: 恢复默认导航
* test: 提高代码覆盖率
* refactor: 重构 Tab 代码提高代码覆盖率
* test: 增加 ActiveTab 单元测试
* refactor: 增加代码覆盖率
* test: 增加代码覆盖率
* refactor: 重构逻辑
* test: 增加 Key 单元测试
* test: TabItem 代码覆盖率 100%
* test: 增加 ChildContent 单元测试
* test: 增加 Click 单元测试
* test: 增加 TabLink 单元测试
2022-02-05 16:11:44 +00:00
Argo
1073ac8c7f !2389 test(#I4SMH1): add TabLink unit test
* test: 恢复默认导航
* test: 提高代码覆盖率
* refactor: 重构 Tab 代码提高代码覆盖率
* test: 增加 ActiveTab 单元测试
* refactor: 增加代码覆盖率
* test: 增加代码覆盖率
* refactor: 重构逻辑
* test: 增加 Key 单元测试
* test: TabItem 代码覆盖率 100%
* test: 增加 ChildContent 单元测试
* test: 增加 Click 单元测试
* test: 增加 TabLink 单元测试
2022-02-05 16:09:18 +00:00
Argo
bfb2fc1d77 !2388 test(#I4SLZY): add unit test for Tab component
* test: 移除断言防止  Release 模式下报错
* refactor: 移除 DEBUG 模式逻辑
* test: add DefaultUrl 单元测试
* test: 增加 ExculdeUrls 单元测试
* test: 增加 AddTabByUrl 单元测试
* test: 增加 AddTab 单元测试
* test: 增加 ClickTab 单元测试
* test: 增加 Height 单元测试
* fix: 修复 InputTest 测试失败问题
* refactor: Tab 路由逻辑更正
* feat: 增加 Cat 测试页
* refactor: 重构逻辑
* test: 增加 IsBorderCard 单元测试
* test: 增加 IsCard 单元测试
* test: 增加 TabItem 单元测试
* test: 增加 Tab 单元测试
* refactor: 更新内部生成 ErrorLogger 逻辑
* refactor: 移除不使用的 SetText 方法
* refactor: 移除不使用的属性
2022-02-04 17:17:27 +00:00
Argo
ddb4f26ffc !2387 test(#I4SLZQ): add unit test for Layout component
* refactor: 重构代码
* test: 微软源码排除代码覆盖率
* test: 增加 OnUpdateAsync 单元测试
* test: 增加 NotAuthorized 单元测试
* test: 增加 Main 单元测试
* test: 增加 OnErrorHandleAsync 单元测试
* refactor: 移除未使用的属性
* test: 增加导航测试网页
* test: 增加 OnAuthorizing 单元测试
* test: 增加 IsSmallScreen 单元测试
* test: 增加 Layout 内部 Tab 单元测试
* doc: 重构代码
* refactor: 使用父类 NavigationManager 实例
* test: 增加 OnCollapsed 单元测试
* test: 增加 ShowToast 单元测试
* test: 增加 OnCollapsed 回调方法单元测试
* refactor: 更改 为异步销毁
* test: 增加 IsFixedHeader 单元测试
* test: 增加 UseTabSet 单元测试
* test: 增加 ShowCollapsedBar 单元测试
* test: 增加 IsFixedFooter 单元测试
* test: 增加 SideWidth 单元测试
* test: 增加  IsCollapsed 单元测试
* test: 增加 IsFullSide 单元测试
* test: 增加 IsPage 单元测试
* test: 增加 ShowFooter 单元测试
* doc: 更新注释文档
* doc: 格式化代码
* test: 增加 Layout 单元测试
2022-02-04 16:43:26 +00:00
Argo
0093f60492 !2386 doc(#I4SLTQ): update document of Ajax component
* test: 更新 Ajax 组件单元测试
* doc: 更新 ajax 示例
* refactor: 格式化代码
* refactor: 格式化文档
2022-02-04 05:45:40 +00:00
Argo
c0e4c410aa !2385 test(#I4SLOT): add unit test for Card
* test: 增加 Alignment 单元测试
* test: 增加 ChildContent 单元测试
* test: 增加 Vertical 单元测试
* test: 增加 TextIcon 单元测试
* test: 增加单元测试文件
* chore: 移除 DividerBase 基类
* test: 增加收缩单元测试
* test: 增加 HeaderText 单元测试
* test: 增加 IsShadow 单元测试
* refactor: 移除 ServiceProviderExtensions
2022-02-03 16:30:08 +00:00
Argo
c06413f1d4 !2384 test(#I4SLOS): add unit test for BarcodeReader
* Merge branch 'main' into test-barcode-reader
* test: 增加 OnDeviceChanged 单元测试
* doc: 更新 OnDeviceChanged 说明文档
* doc: 更新资源文件
* feat: 增加 OnDeviceChanged 回调方法
* test: 增加 AutoStop 单元测试
* refactor: 根据单元测试重构代码
* test: 增加 Close 单元测试
* test: 增加 Start 单元测试
* test: 增加 GetError 单元测试
* test: 增加 GetResult 单元测试
* test: 增加 InitDevices 单元测试
* test: 增加单元测试文件
2022-02-03 16:27:42 +00:00
Argo
f28347dc59 !2383 feat(#I4SLOR): add OnDeviceChanged parameter on BarcodeReader component
* doc: 更新 OnDeviceChanged 说明文档
* doc: 更新资源文件
* feat: 增加 OnDeviceChanged 回调方法
2022-02-03 16:24:06 +00:00
j4587698
3b180b956d !2382 fix(##I4RER0): update Ajax component
* 删除菜单中多余的Ajax菜单
* 添加Goto方法用于跳转
* 修复Ajax组件在失败时没有返回null,而是返回"null"字符串的BUG
2022-02-03 16:19:58 +00:00
Argo
6548b4827f !2381 test(#I4SLGG): add unit test for StringExtensions
* refactor: 格式化文档
* Merge branch 'main' into test-chore
* test: 增加性能测试注释
* refactor: 增加静态描述
* feat: 移除 StringExtesnions 扩展类
* refactor: IpAddress 使用 Split 移除 SpanSplit 引用
* test: 增加性能单元测试
* test: 增加无参 SplitAny 单元测试
* test: 增加 SpanSplitAny 单元测试
* test: 增加无参数单元测试
* test: 增加 SpanSplit 单元测试
* test: 增加 String 扩展方法单元测试
* refactor: String 扩展方法更改为公开静态方法
2022-02-03 07:12:21 +00:00
Argo
3cfc520585 !2380 chore(#I4SLG7): add frameworks props configuration file
* chore: wasm 增加配置文件导入
* chore: Middleware 工程增加 SourceLink
* chore: wasm 工程精简配置文件
* Merge branch 'main' into test-configure
* chore: 格式化配置文件
* chore: 增加对 Framework 配置引用
* chore: 增加 Framework.props 重构配置逻辑
* refactor: 优化代码消除警告信息
* chore: 更新项目配置文件
* chore: 更新代码文件精简命名空间
* chore: 更新 Server 工程配置
* chore: 移除 Blazor 组件工程中命名空间
* chore: 增加全局引用命名空间
* chore: 更新解决方案配置
* refactor: 精简代码
2022-02-03 06:48:38 +00:00
Argo
1edbe4c0a2 !2379 chore(#I4SLE2): add global using for solution
* refactor: 优化代码消除警告信息
* chore: 更新项目配置文件
* chore: 更新代码文件精简命名空间
* chore: 更新 Server 工程配置
* chore: 移除 Blazor 组件工程中命名空间
* chore: 增加全局引用命名空间
* chore: 更新解决方案配置
* refactor: 精简代码
2022-02-03 03:35:30 +00:00
Argo
a5e3ce5c1f !2378 feat(#I4SL49): add TypeResolver parameter on Display component
* doc: 增加 Display 组件 TypeResolver 说明文档
* doc: 更新 Display 组件资源文件
2022-02-02 05:22:07 +00:00
Argo
7516cb7da7 !2377 test(#I4SL47): add unit test for Display
* feat: Display 组件增加 TypeResolver 参数
* test: 增加可为空集合内部有空值单元测试
* test: 增加 TypeResolver 单元测试
* test: 增加泛型空方法单元测试
* test: 增加标签单元测试
* test: 增加空类型单元测试
* test: 增加 DateTime 类型单元测试
* test: 增加字符串值单元测试
* test: 增加泛型单元测试
* test: 增加集合单元测试
* test: 增加数组类型单元测试
* test: 增加枚举类型 单元测试
* test: 增加 Formatter 单元测试
* test: 增加 Display 单元测试
* refactor: 精简 Display 代码
* refactor: DisplayBase 移除宏定义
* refactor: AutoFill 单元测试消除警告信息
2022-02-02 05:09:33 +00:00
Argo
0e1b866955 !2376 doc(#I4SKWJ): update sample code for AutoFill
* doc: 更新 AutoFill 组件示例文档
2022-02-01 06:34:37 +00:00
Argo
abbdc4b931 !2375 doc(#I4SKWG): update AutoComplete sample code
* doc: 更新 AutoComplete 示例文档
* doc: 更新 AutoCompletes 组件资源文件
2022-02-01 06:30:06 +00:00
Argo
4818346b64 !2374 test(#I4SKW7): add unit test for AutoFill
* test: 增加集合项中有空值单元测试
* test: 增加 DisplayCount 单元测试
* refactor: 精简代码
* test: 增加 GetDisplayText 为空单元测试
* refactor: 重构代码精简逻辑
* test: 增加 OnSelectedItemChanged 单元测试
* test: 增加 Enter 按键测试
* test: 增加 Esc 按键单元测试
* refactor: 移除不需要的条件语句
* Revert "refactor: 移除 isShown 变量"
* test: 增加 Null Items 单元测试
* refactor: 移除 isShown 变量
* test: 增加 AutoFill 单元测试
* refactor: 更改 SkipEnter/SkipEsc 为参数
2022-02-01 06:15:13 +00:00
Argo
86656b632a !2373 chore(#I4SKR2): remove fontawesome cdn link
* chore: 更新 fontawesome 依赖包
* chore: 增加 fontawesome 依赖项
2022-01-31 08:42:30 +00:00
Argo
4d27c6d9a1 !2372 test(#I4SKQP): add unit test for AutoComplete
* test: 增加 ShowLabel 设置
* refactor: 移除 set 属性
2022-01-31 08:22:23 +00:00
Argo
707c1904dc !2371 test(#I4SKQA): add unit test for RadioList
* test: 增加 RadioList 单元测试
* refactor: 移除冗余代码
* refactor: 更新注释
* test: 增加 OnSelectedChanged 单元测试
* test: 增加值不在 Items 中的单元测试
* refactor: 移除不需要的代码
* test: 增加可为空单元测试
* test: 增加 Enum 类型单元测试
* fix: 重载 Value 检查方法
* Merge branch 'main' into dev-test-radiolist
* Merge branch 'main' into dev-test-radiolist
* chore: 移除配置文件
* refactor: 格式化代码
* Merge branch 'main' into dev-test-radiolist
* test: 添加 radiolist 单元测试
2022-01-31 07:43:41 +00:00
Argo
901c2032c5 !2370 fix(#I4SHOA): layout incorrect when TableColumn parameter Rows has value
* fix: 修复 Textarea 组件布局错位问题
2022-01-31 06:27:14 +00:00
Argo
3be452fbde !2369 test(#I4SKPA): add unit test for CheckboxList
* chore: 更新解决方案配置项
* test: 增加 CheckboxList 单元测试
* refactor: 重构 CheckboxList 组件逻辑
* test: 更新 CheckboxList 单元测试
2022-01-31 05:55:52 +00:00
Argo
34e449b294 !2368 doc(#I4SK3J): update sample for EditTemplate of CheckboxList<T>
* doc: 精简代码内置支持 CheckboxList 无需模板
2022-01-30 03:31:40 +00:00
Argo
97c3e181af !2367 fix(#I4SK0X): throw exception in EditorForm component cause by IsCheckboxList method
* chore: bump version beta10
* fix: 修复泛型类判断导致报异常错误
2022-01-30 02:53:34 +00:00
Argo
71ad4212fc !2365 fix(#I4SICI): throw exception when Value type is string and not set Items parameter
* chore: bump version to beta09
* fix: 修复CheckboxList 组件 Value 为 string 时报错问题
2022-01-28 23:38:52 +00:00
alex_zou
d25b31ec6d !2364 feat(#I4SFT5): table dynamic mode support CheckboxList<string> component
* chore: bump version beta08
* refactor: 更新判断 ChekboxList 逻辑
* 增加 CheckboxList 组件测试单元
* 增加手动设定 ComponentType 为 CheckboxList<string> 并且 Items 有值 自动生成组件
2022-01-28 13:04:15 +00:00
Argo
fe2d87ee81 !2361 refactor(#I4SD6E): rename OnUpdate to OnUpdateAsync on Layout component
* chore: bump version to beta07
* refactor: OnUpdate 更改为  OnUpdateAsync
2022-01-27 04:42:09 +00:00
Argo
dc84f9c3fe !2363 doc(#I4SDE0): update sample IsShadow/IsCollapsible for Card component
* doc: 更新示例
* doc: 更新资源文件
2022-01-27 04:40:39 +00:00
j4587698
c2ba4ed1cc !2362 doc(#I4SD6I): update doc for Card add IsCollapse/Shadow
* 增加Card相关文档
2022-01-27 03:41:34 +00:00
Argo
ba687fb0db !2360 test(#I4SAKJ): add unit test for ajax
* test: 增加 Ajax 单元测试
2022-01-26 08:14:28 +00:00
Argo
4df42641cd !2359 test(#I4SACC): remove net 5 framework from unit test project
* test: 更新测试脚本
* test: 更新单元测试文件
* test: 增加单元测试工程配置文件
* test: 移除不使用的属性
* chore: 移除 Nullable 配置
2022-01-26 07:52:19 +00:00
Argo
d19237f0ed !2358 test(#I4S9KU): update unit test for AutoComplete
* doc: 更改为 Display 组件
* test: 单元测试代码覆盖率 100%
* refactor: 根据单元测试精简代码
2022-01-26 06:21:42 +00:00
Argo
db3f664b8f !2357 test(#I4S78S): add test for auto complete
* test: 增加 AutoComplete 单元测试
* refactor: 重构代码
2022-01-25 12:59:33 +00:00
知足常乐
7b02a81683 !2356 doc(#I4S1KP): add ValidateRules doc of BootstrapInput
* doc: 增加 ValidateRules 文档
* doc: 更新资源文件
2022-01-25 17:21:57 +08:00
Argo
2f10e9b55d !2355 feat(#I4RYFY): add extensions method
* refactor: 更改默认配置
* feat: 增加 Json 本地化配置扩展方法
* feat: 增加 ConfigureBootstrapBlazorOption 配置扩展方法
* refactor: 更改配置方法名称
2022-01-24 02:57:30 +00:00
Argo
b8568a55d3 !2354 fix(#I4RYFC): DateTimeRange adopt form
* style: 时间范围选择组件更新样式适配 form-inline
2022-01-24 02:54:46 +00:00
Argo
7856e02471 !2353 feat(#I4RYCH): add OnUpdate parameter on Layout component
* chore: bump version beta05
* chore: bump preview02
* feat: Layout 组件增加 OnUpdate 回调参数
2022-01-24 02:47:17 +00:00
Argo
aeb656af8e !2352 fix(#I4RW6K): Edit/Delete button always show in CardVied mode on Table component
* chore: bump version to beta04
* fix: 修复 Table 组件 CardView 模式下编辑与删除按钮始终显示问题
2022-01-23 04:47:51 +00:00
Argo
52142b249f !2351 fix(#I4RW5K): update style for Skeleton component
* style: 更新骨架屏样式
2022-01-23 04:22:09 +00:00
Argo
1bd9ed1b58 !2350 fix(#I4RVX7): redesign the layout Search/Reset button on SearchTemplate
* fix: 修复顶部搜索栏搜索按钮与重置按钮顺序问题
2022-01-23 01:53:05 +00:00
Argo
4f680b5fe1 !2349 fix(#I4RVWZ): should not show CardHeader when CardHeader is null and not set HeaderText
* fix: 修复未设置 CardHeader 时就显示问题
2022-01-23 01:48:07 +00:00
Argo
ee1b40f8a8 !2348 fix(#I4RVGM): enumerable sort extension method not work
* chore: bump version to beta03
* fix: 修复集合多列排序未生效问题
2022-01-22 11:05:54 +00:00
Argo
ce5a055aec !2346 fix(#I4RV9J): the Edit/Delete button on toolbar can modify readonly row set by ShowEdit/DeleteCallback method
* feat: 增加提示信息初始化
* feat: 增加删除按钮提示无法删除数据
* doc: 更新资源文件增加无法删除提示信息
* feat: 增加选中项无法删除逻辑
* feat: 增加选中项无法编辑提示参数
* doc: 增加资源文件
2022-01-22 09:49:07 +00:00
Argo
a08252fc49 !2345 fix(#I4RULJ): update margin-left make dropdown align center
* doc: 更新示例
* style: 微调样式居中对齐
* Merge branch 'main' into dev-widget
* chore: 更新  Widget 样式
* doc: 更新文档修复丢失的 Header 内容
2022-01-22 06:33:26 +00:00
Argo
4b700378ef !2344 fix(#I4RUJ5): content be corp in Tab body
* fix: 修复 Tab 内容被裁减问题
2022-01-22 06:13:32 +00:00
刘江峰
00f3df8737 !2342 feat(#I4RUA6): add Title for DropdownWidgetItem
* 为DropdownWidgetItem项目增加悬浮提示信息,可为空,为空时无提示
2022-01-22 03:49:27 +00:00
Argo
2629130e39 !2343 feat(#I4RQG7): add SortString parameter on Table component
* doc: 更新 SortString 示例
* feat: 移除 SortList 改用 SortString
* refactor: 移除 SortList 使用 SortString 方便代码编写
* feat: 增加 SortListString 参数用于设置多列排序规则
2022-01-22 03:44:32 +00:00
Argo
e7fc250dcd !2341 fix(#I4RQEX): missing scroll bar when set RendMode is CardView
* chore: bump version to beta02
* fix: 修复卡片模式下固定表头时无滚动条问题
2022-01-21 04:43:59 +00:00
Argo
d7b443d024 !2340 doc(#I4RQ7S): update document for Ajax component
* doc: 更新示例文档
* doc: Ajax 组件文档格式化
* doc: 增加 Ajax 组件菜单
* doc: 更改 api 符合 restful 规范
2022-01-21 03:50:53 +00:00
痞子再
2901cbe769 !2339 feat(#I4RPKE): update Visible on TabItem
* 优化 TabItem显示/隐藏属性 !2339
* update Visible on TabItem
2022-01-21 02:41:20 +00:00
Argo
03916c8fda !2338 feat(#I4RKR2): add IsShow parameter on TableToolbarButton
* feat: 工具栏按钮增加 IsShow 参数用于控制是否显示
2022-01-20 06:09:24 +00:00
痞子再
0e064a7114 !2337 feat(#I4RGER): add Visible on TabItem
* 显示隐藏单个TabItem
2022-01-19 08:05:39 +00:00
Argo
b49bfb2695 !2336 feat(#I4RG4D): provider BaiduLocator by default
* feat: 公开内置地理位置定位服务
2022-01-19 07:33:52 +00:00
Argo
9bd5fc506f !2335 feat(#I4RFNP): add IServiceProvider parameter on LocatorFactory callback
* chore: bump version 6.2.8
* doc: 更新示例文档
* feat: 更新 LocatorFactory 参数增加 ServiceProvider 参数
2022-01-19 06:51:59 +00:00
Argo
2e5cbc014e !2334 doc(#I4RFGM): update document for IPLocatorProvider
* doc: 增加可为空标识消除警告信息
* doc: 移除 LocatorName 参数
2022-01-19 06:33:58 +00:00
Argo
f5ae665a25 !2333 feat(#I4RFA1): redesign IPLocator
* doc: 格式化文档
* refactor: 更新 IIPLocator 接口设计更合理
2022-01-19 06:22:25 +00:00
j4587698
eea43eb9c8 !2330 feat(#I4RER0 ): add Ajax component
* 修改冲突
* 增加Ajax组件
2022-01-19 06:19:24 +00:00
Argo
2e1cf136ce !2332 feat(#I4REU4): add ActiveItem on TreeItem
* feat: add ActiveItem on TreeItem
2022-01-19 05:14:28 +00:00
Argo
19756c5a3c !2331 refactor(#I4RET5): update table.js for calculate fix header logic
* refactor: 更新 Table 计算高度 js 移除 16px
2022-01-19 05:05:59 +00:00
alex_zou
878a26dcb5 !2329 feat(#I4RCYE): add CloseButtonText parameter
* Update Table.razor.Toolbar.cs
* add-Parameter-for-table-ShowEditDialog-CloseButtonText
2022-01-19 02:34:04 +00:00
Argo
26245c0db9 !2328 doc(#I4RCRW): update sample code for Dialog ShowEdit/Search/SaveDialog
* doc: 增加弹窗示例代码
* feat: 增加 DialogSaveDetail 组件
* refactor: 微调 Popover 脚本代码
* revert: 恢复配置
* doc: 格式化代码
2022-01-18 13:32:01 +00:00
Argo
17b9482304 !2327 refactor(#I4R9DA): update popover.js javascript
* refactor: 微调 Popover 脚本代码
* revert: 恢复配置
* doc: 格式化代码
2022-01-18 05:05:27 +00:00
Argo
9f3e1ef7df !2326 fix(#I4R70W): throw exception in javascript
* chore: bump  version beta01
* fix: 修复 AutoComplete 组件脚本报错问题
2022-01-17 14:42:55 +00:00
Argo
d73a1abe80 !2325 doc(#I4R6SO): update sample code
* chore: bump verson to 6.2.7
* doc: 更改拼写错误
2022-01-17 11:51:51 +00:00
Nine
fe30357d55 !2324 test(#I4R1L6): add alert component unit tests
* test: 添加 Toggle 组件单元测试
2022-01-17 02:27:05 +00:00
Argo
e13d8b4508 !2323 test(#I4QZC6): add AutoRedirect unit test
* test: 增加 AutoRedirect 单元测试
* doc: 微调 timeline 示例样式
* doc: 代码格式化
2022-01-16 04:12:58 +00:00
Argo
c5fa8efef0 !2322 doc(#I4QZ6Z): add IsShow document for RowButtonTemplate
* doc: 更新 OnColumnCreating 示例
* doc: 更新示例文档描述
2022-01-16 03:26:51 +00:00
Argo
cdbc35e1fd !2321 test(#I4QZ67): update unit test for Dialog
* test: 更新 Dialog 单元测试
* refactor: 精简代码
* feat: 增加是否拖动与保存成功是否自动关闭
2022-01-16 02:18:01 +00:00
alex_zou
8e9cec227a !2319 revert(#I4QWXW): revert code for row expand
* fix(#I4QWXW): redesign detail row expand condition for improve per… again
2022-01-16 02:08:26 +00:00
Argo
24525c5feb !2318 feat(#I4QYFE): dialog service support full screen popup window
* doc: 更新 Modal 组件文档
* doc: 更新 Dialog 组件文档
* chore: bump version beta09
* feat: dialog 组件支持全屏
2022-01-15 09:31:32 +00:00
Argo
df1bc8fe9c !2317 feat(#I4QXVD): add FullScreenSize parameter on Modal component
* doc: 更新文档
* doc: 增加全屏弹窗示例
* feat: 增加全屏弹窗功能
2022-01-15 06:46:06 +00:00
Argo
0cae85ad64 !2316 feat(#I4QXK9): add ClientInfo for WebClientService return value
* chore: bump version to beta08
* refactor: 根据最新更改 Locator 内部代码
* refactor: 增加 ClientInfo 实体类方便数据绑定
* doc: 更新资源文件
* refactor: 增加 ClientInfo 实体类用于存储客户端请求信息
2022-01-15 04:54:41 +00:00
alex_zou
8a69c1b9ac !2315 feat(#14QWY9): table support color picker
* chore: bump version to beta07
* feat: Table 组件内置支持 ColorPicker
* revert: 回滚 ColocPicker 组件更新
* 添加 是否显示颜色文字标签 参数, 用于行内显示时不显示标签
* Revert "修复DetailRowTemplate默认预先渲染,老版本懒加载效率比较高"
* Table组件生成 Row 单元格, 自动化处理 ColorPicker 组件
* 修复DetailRowTemplate默认预先渲染,老版本懒加载效率比较高
2022-01-15 02:58:36 +00:00
alex_zou
ba33550aca !2314 fix(#I4QWXW): redesign detail row expand condition for improve performance
* 修复DetailRowTemplate默认预先渲染,老版本懒加载效率比较高
2022-01-15 01:15:49 +00:00
Argo
2254209202 !2313 fix(#I4QT7M): set text align to center on select in pagination
* style: 微调导航条样式居中对齐
* chore: bump version beta06
2022-01-14 05:56:14 +00:00
Argo
0923bb171f !2312 fix(#I4QP5C): throw exception when enable double click table cell
* fix: 修复双击单元格报错问题
2022-01-14 04:02:09 +00:00
Argo
860aeb41ae !2311 fix(#I4QHL7): not show toast info when save/delete failed
* fix: 修复保存失败无提示问题
2022-01-14 04:00:19 +00:00
Argo
7e3b1cbe59 !2310 feat(#I4PQG5): add Reset method on Upload component
* feat: 增加 Reset 方法用于清空已上传列表
2022-01-13 11:59:42 +00:00
Argo
75792f5a29 !2309 feat(#I4QMF1): add AutoRedirect component
* chore: bump version to beta05
* feat: 增加 AutoRedirect 组件
2022-01-13 02:54:22 +00:00
Argo
3479a689a5 !2308 feat(#I4QH0N): auto show prefix label when dropdown component in validate form
* chore: bump version to beta03
* feat: dropdown 组件增加 label
* chore: 更新打包脚本
2022-01-12 04:19:35 +00:00
devhxj
de3a554fa8 !2307 fix(#I4PVTO): redesign fix body logic for top search box
* update src/BootstrapBlazor/Components/Table/Table.js.
2022-01-11 10:11:14 +00:00
Argo
0c435e5d0c !2306 doc(#I4Q910): update introduction page for Admin project
* doc: 更新 Admin 链接
* doc: 更新资源文件
2022-01-11 01:28:39 +00:00
Argo
a708ef6a0d !2305 doc(#I4Q8H7): update sample code for Block component
* doc: 修复 Block 示例报错问题
2022-01-11 01:07:35 +00:00
Argo
a03aa3466b !2304 feat(#I4Q8P3): add runtime info on website footer
* feat: 增加程序运行时间
* doc: 格式化文档
2022-01-10 17:45:37 +00:00
Argo
1cb4ce82ae !2303 feat(#I4Q0MF): add text align center style for the select in pagination component
* style: 增加居中样式
* chore: 更新资源文件
2022-01-09 16:17:55 +00:00
Argo
7b8366dbeb !2302 feat(#I4Q0IK): use route name as tab text if not provider TabItemOptionAttribute
* chore: bump version 6.2.7-beta02
* feat: 未设置标签页 Text 时使用路由名称
2022-01-09 16:07:50 +00:00
Argo
ce7dc4daa4 !2301 feat(#I4Q0CM): recover NavigateTo extension method
* chore: update release note
* doc: 格式化文档
* revert: 恢复 Navigation 扩展方法
2022-01-09 16:02:35 +00:00
Argo
e1bad7b1ad !2300 fix(#I4Q0DK): throw exception use Item as data source
* chore: bump version to 6.2.6
* fix: 修复移除 UseInjectDataService 导致使用 Items 时报错问题
* doc: 更新介绍文档修复资源文件错误
2022-01-09 12:53:42 +00:00
Argo
3b7d2d6695 !2299 doc(#I4Q071): add sample code for multiple column sort on Table component
* chore: bump version to 6.2.5
* doc: 增加 Table 多列排序示例
2022-01-09 10:28:01 +00:00
Argo
67cc577960 !2298 feat(#I4Q03I): add OnSort action on Table component
* refactor: 重构 Table 组件 OnSort 回调委托
* feat: 动态多列排序功能
2022-01-09 09:34:23 +00:00
Argo
386e2a4364 !2297 feat(#I4PZBR): remove UseInjectDataService parameter from Table component
* chore: bump version 6.2.4
* doc: 更新表格边距示例
* feat: 弃用 UseInjectDataService 参数
2022-01-09 03:32:25 +00:00
Argo
bae5b76c2c !2296 fix(#I4PKOC): throw exception when switch page that has Model component
* chore: bump version to 6.2.3
* revert: 修复Modal 组件切换页面导致报错问题
2022-01-08 06:33:39 +00:00
Argo
809808eb03 !2295 chore(#I4PXI0): add lang for docker image
* chore: dockerfile 镜像增加文化信息
2022-01-08 06:10:24 +00:00
alex_zou
ae70fd1ab0 !2294 fix(#I4PWKC): filter result incorrect when use more than one conditions
* 修复 issues/I4PWKC 数量列筛选点+号添加新筛选条件,新筛选条件绑定@Value1错误,应为@Value2
2022-01-08 05:00:36 +00:00
Argo
9f0328151d !2293 fix(#I4PSJO): advance search than has enum type property always has value even set CustomerSearchModel
* chore: bump version 6.2.2
* fix: 修复 SearchModel 包含枚举类型导致条件一直有默认值
2022-01-07 04:58:32 +00:00
Argo
2e4e96853c !2292 fix(#I4PM8I): DeleteAsync callback method not work on dynamic context Table component
* doc: 增加说明文档
* doc: 更新示例文档
* fix: 修复动态删除回调失效问题
* wip: 临时提交转移电脑
2022-01-06 16:36:43 +00:00
Argo
ff9a0cb50e !2291 fix(#I4PPY4): throw exception when datasource collection is empty on Table component
* chore: bump version 6.2.1
* doc: 更新示例
* fix: 修复集合为空时聚合函数报错
* feat: 更新 Empty 内部结构
2022-01-06 12:04:45 +00:00
Argo
b0cbe1da84 !2290 doc(#I4PPRR): update sample code for table footer
* doc: 更新 Footer 示例
2022-01-06 11:17:37 +00:00
Argo
22d74bbefb !2289 feat(#I4PPQ2): add IsHideFooterWhenNoData parameter on Table
* feat: 增加 IsHideFooterWhenNoData 参数
* feat: 无数据模板移动到 Body 内部
2022-01-06 11:08:43 +00:00
Argo
f7682ee0ab !2288 doc(#I4PNVD): update SearchTemplate sample code for table
* doc: 修复 SearchTemplate 模板查询示例
2022-01-06 08:21:32 +00:00
Argo-Tianyi
4b42220450 chore: bump version to 6.2.0 2022-01-06 11:04:21 +08:00
Argo
7f202574bb !2287 test(#I4PJME): add unit test for DateTimeRange
* test: 增加代码覆盖率
* refactor: 移除无法覆盖的代码
* test: 增加 UpdateValue 方法代码覆盖率
* test: 增加下月按钮点击事件单元测试
* test: 更新确认按钮单元测试
* test: 增加侧边栏点击事件单元测试
* doc: 格式化文档
* Merge branch 'main' into dev-test-datetimerange
* test: 添加 DateTimeRange 组件单元测试
2022-01-05 15:40:37 +00:00
Argo
e59096592a !2286 feat(#I4PBOF): add AdvanceSearchs on QueryOptions for Table component
* test: 移除不需要的单元测试
* feat: bump version to beta13
* feat: Table 组件增加 AdvanceSearchs 条件集合
2022-01-04 09:04:02 +00:00
Argo
df09bf8389 !2285 feat(#I4P9YK): add Sort<TModel> extension method support EFCore
* chore: bump version beta12
* feat: 增加多列排序 Sort 拉姆达表达式
2022-01-04 06:56:15 +00:00
Argo
9c20038fb2 !2284 feat(#I4P8MS): add SortList parameter on Table component support multiple column sort
* chore: bump version beta11
* feat: 更新多列排序 Lambda 表达式
* feat QueryPageOptions 增加多列排序参数
* feat: 增加 GetSortList lambda 表达式方法
* style: 更新重连遮罩 z-index 为 2000
2022-01-04 04:44:23 +00:00
Argo
da71fbaa23 !2283 fix(#I4P1LQ): row checked after click extensions button
* chore: bump version to beta10
* fix: 修复点击扩展按钮导致正行被选中问题
* style: 微调 Tag 组件在其他组件内时高度
2022-01-03 12:29:32 +00:00
Argo
e02782376f !2282 feat(#I4P0X5): add LogoutLink component
* chore: bump version to beat09
* doc: 更新文档
* doc: 更新 Table 文档
* doc: 增加资源文件
* feat: 增加 LogoutLink 组件
2022-01-03 05:56:55 +00:00
Argo
43229c6f9e !2281 feat(#I4P0U6): update Empty in Table component
* chore: bump version beta08
* feat: 增加渲染 Empty 组件方法
* wip: 更新 Empty 组件
2022-01-03 04:50:19 +00:00
Argo
23d3f6837d !2280 feat(#I4P0MT): increment width of label
* feat: 更改标签宽度默认为 6 个汉字长度
2022-01-03 02:49:32 +00:00
Argo
322b9f6411 !2278 refactor(#I4P0JW): update Card header style
* chore: bump version to beta07
* style: 微调 motronic 样式
2022-01-03 01:53:04 +00:00
Argo
91c60edace !2277 feat(#I4P0H1): support ShowToolbar parameter SkeletonTable in Table component
* feat: 行内扩展编辑删除按钮逻辑更新
* doc: 格式化文档
* feat: 骨架屏增加 ShowToolbar 参数联动
* doc: format document
* refactor: 格式化文档
2022-01-02 18:35:29 +00:00
刘江峰
18d8de8326 !2275 feat(#I4P03T): add Size parameter on Table
* 增加编辑对话框、搜索对话框的弹出窗口自定义大小设置
2022-01-02 09:37:28 +00:00
Argo
14dc58290b !2274 fix(#I4OZWN): trigger logger twice in ErrorLogger
* refactor: 重构 ErrorLogger 内部逻辑
* doc: format document
* refactor: 格式化文档
2022-01-02 06:55:34 +00:00
Argo
c905c557a0 !2271 refactor(#I4OZ32): remove TabItemTextDictionary from Tab component
* refactor: Layout 组件移除 TabItemTextDictionary 参数
* refactor: 移除 TabItemTextDictionary 参数
2022-01-01 04:35:00 +00:00
Argo
fde3ce8a61 !2270 feat(#I4OXMZ): add IsShadow on Card component
* chore: bump version to beta06
* feat: Card 组件增加 IsShadow 参数
* doc: 更新示例代码使用 Readonly
2021-12-31 08:41:36 +00:00
Argo
2ebdf61773 !2269 doc(#I4OWJT): update namespace segment
* doc: 格式化文档
* doc: 格式化文档
* doc: 更改命名空间新写法
* doc: 格式化文档
* doc: 移除 NavigateTo 扩展方法调用
* doc: 格式化代码
2021-12-31 06:39:41 +00:00
Nine
2d73651004 !2268 test(#I4OV1A): add empty component unit tests
* test: Empty 组件单元测试
2021-12-31 02:33:30 +00:00
Argo
c402e1523a !2267 feat(#I4OTDY): remove NavigateTo from NavigationManager extension method
* feat: 弃用 NavigateTo 方法
* doc: 文档格式化
2021-12-30 10:51:48 +00:00
Argo
e69873a09b !2266 feat(#I4OROX): add IsShow parameter on TableCellButton
* feat: 行内扩展按钮增加 IsShow 参数
* doc: 格式化文档
2021-12-30 07:59:32 +00:00
Argo
2f4dce7a09 !2265 feat(#I4OQMH): add parameters on Pagination component
* chore: bump version to beta05
* doc: 更新说明文档
* feat: 分页组件公开标签参数可自定义显示文本
* doc: 格式化文档
* doc: 删除 OnSortAsync 回调文档内部方法
2021-12-30 06:29:21 +00:00
Argo
ba10803160 !2264 feat(#I4OJT2): add Shadow effect on Dropdown component
* feat: Dropdown 组件下拉框增加阴影效果
2021-12-29 05:05:59 +00:00
Argo
d9c5f0cfbe !2263 refactor(#I4OJRD): redesign Tab component
* doc: 格式化文档
* refactor: 更新 TabLink 内部逻辑
2021-12-29 04:44:06 +00:00
Argo
4278593c31 !2262 fix(#I4OEBG): PopconfirmButton in Column no Text
* chore: bump verson to beta04
* fix: 修复工具栏与扩展弹窗按钮二次弹出时丢失文字问题
* feat: PopconfirmButton 增加对选中行功能支持
* feat: 扩展按钮增加是否自动刷新表格功能
* refactor: 增加选中检查
2021-12-28 07:34:26 +00:00
Argo
19f5db4ad1 !2261 test(#I4ODUT): add Toast unit test
* test: add unit test for Toast
* test: add Toast unit test
* test: refactor GetSortFunc test
* doc: format document
2021-12-28 04:55:58 +00:00
Argo
82ff0fd8a5 !2260 test: increment unit test code coverage percent
* refactor: 增加断言关键字
* test: 增加 Text 单元测试
* revert: 恢复代码修改
* revert: 恢复代码修改
* refactor: 格式化文档
* refactor: 格式化文档
* refactor: 格式化文档
2021-12-28 04:16:20 +00:00
Argo
d23c047a00 !2259 doc(#I4OBAA): add doc for ErrorLogger inside Layout
* doc: 增加 Layout 组件配合使用说明
* doc: 更新资源文件
* doc: 格式化文档
2021-12-27 12:13:19 +00:00
Argo
f97b7b2e30 !2258 fix(#I4O26C): OnCellRender not work in mobile mode
* chore: bump version beta03
* fix: 修复单元格 OnCellRender 回调在移动端不生效问题
2021-12-27 10:44:52 +00:00
Nine
9dd58b9589 !2257 doc(#I44KDH): add english translation of timeline page
* doc: 添加 TimeLines 页面资源文件
2021-12-27 08:18:54 +00:00
Nine
0a28cbad90 !2256 doc(#I4O8WT): add english translation of tag page
* doc: 添加 Tags 页面资源文件
2021-12-27 07:26:20 +00:00
Argo
fc3489a9ff !2255 feat(#I4O3RX): add Readonly parameter on BootstrapInput
* refactor: format document
* feat: 增加 Readonly 属性
2021-12-26 05:06:29 +00:00
Argo
0243feaf10 !2254 feat(#I4O3RS): add IsCollapsible on Card
* feat: Card 组件增加 IsCollapsible 参数
2021-12-26 05:01:49 +00:00
Argo
931f2df30b !2253 feat(#I4O30Z): remove margin from CardUpload when set IsSingle to true
* chore: bump version to beta01
* style: 更新 Card 组件样式
* feat: 微调单文件上传组件样式
* doc: 更新注释
2021-12-25 09:48:40 +00:00
Argo
d6226c75f8 !2252 feat(#I4O30L): Display support auto show Label when inside ValidateForm
* feat: Display 组件支持嵌套表单内自动显示 Text 特性
2021-12-25 09:42:30 +00:00
Argo
6323954ec4 !2251 feat(#I4NYAZ): table edit dialog auto use lookup as select items parameter
* feat: 编辑模板增加对 Lookup 自动识别支持
2021-12-24 05:19:18 +00:00
Argo
d55f6ea731 !2250 feat(#I4NY9A): bind-Value support private property of Model
* test: 更新单元测试支持绑定私有属性
* refactor: 增加扩展方法 GetPropertyByName
2021-12-24 05:04:58 +00:00
Argo
132677f9d0 !2249 test(#I4NWBH): add unit test for AmbiguousMatchException
* chore:  bump version to 6.1.1
* test: 增加二义性异常单元测试
* fix: 增加数据类型判断
* fix: 兼容子类 new 复写父类属性情况
* test: 增加子类使用 new 重写父类属性单元测试
* fix: 修复子类使用 new 导致属性二义性异常
* refactor: 重构代码
2021-12-23 17:27:37 +00:00
Argo
5f777a2b06 !2248 fix(#I3HWSW): throw AmbiguousMatchException when subclass use new override inherit class
* fix: 增加数据类型判断
* fix: 兼容子类 new 复写父类属性情况
* test: 增加子类使用 new 重写父类属性单元测试
* fix: 修复子类使用 new 导致属性二义性异常
* refactor: 重构代码
2021-12-23 17:20:54 +00:00
Argo
1be0a04934 !2247 test(#I4NW9R): add TitleService unit test
* test: 增加  TitleService 单元测试
* refactor: 更新代码移除 set  属性
2021-12-23 15:58:25 +00:00
Argo
0419089fba !2246 fix(#I4N9U1): button set IsAsync to True can't restore state when throw exception in callback
* fix: 修复 Button 异步出错后按钮未恢复状态问题
2021-12-23 14:13:00 +00:00
Argo
e5ba1bd7b2 !2245 doc(#I4NTRJ): update Skeleton document
* doc: 增加骨架屏文档
* feat: Table 骨架屏增加 Toolbar
* style: 微调树状结构小箭头动画
2021-12-23 07:20:47 +00:00
Argo
9be739b5bb !2244 test(#I4NNYJ): add unit test for Logout
* test: 增加 Logout 单元测试
* test: 重构代码消除警告
* refactor: 移除不使用的 IsShow 变量
* doc: 增加 Logout 组件总览截图
2021-12-22 07:46:40 +00:00
Argo
608fc84eeb !2243 doc(#I4NNK5): update Logout document
* doc: 增加示例
* style: 支持 class 参数
* doc: 增加登出菜单
* doc: 增加登出菜单
* doc: 设计菜单文件
2021-12-22 07:11:18 +00:00
Argo
211ada6486 !2242 feat(#I4NMID): add Logout component
* chore: bump version beta12
* feat: 增加多语言支持
* style: 增加 Logout 组件样式
* feat: 增加 Logout 组件
2021-12-22 04:51:48 +00:00
Argo
f5b5483a60 !2241 fix(#I4NMI4): OnIncrement/OnDecrement not work on InputNumber
* fix: 修复回调方法未生效问题
2021-12-22 04:50:08 +00:00
Argo
6aa4e51f35 !2240 feat(#I4NK5N): add flex style for template on TreeItem
* chore: bump version to beta11
* style: Tree 组件更新样式支持模板默认 flex 布局
2021-12-21 18:04:16 +00:00
Argo
6054cae710 !2239 feat(#I4NK5M): add configure callback on ShowSaveDialog method
* feat: ShowSaveDialog 方法增加配置回调委托
2021-12-21 18:00:45 +00:00
Argo
b5c32689f6 !2238 feat(#I4NK18): add OnTreeItemChecked callback on Tree component
* chore: bump version to beta10
* fix: 选中节点包括自身
* revert: 弃用条件参数
* refactor:  format doc
* Merge branch 'main' into dev-tree
* refactor:  修复Tree 选取节点问题
* wip: 临时提交
* doc: 更新文档
* refactor: 合并选中复选框回调方法
* feat: Tree 组件增加级联获得选中项方法
* doc: 添加 Tree 获取所有选中节点示例
* feat: Tree 获取所有选中节点
* refactor: 重构代码
2021-12-21 15:27:41 +00:00
Argo
1cab0a1bb6 !2237 fix(#I4NK0M): filter not work when set IsTree to true on Table component
* fix: 修复 IsTree 开启后过滤器失效问题
2021-12-21 15:04:16 +00:00
Argo
ce41be1903 !2236 feat(#I4NK0F): add Lookup Filter on Table component
* test: 增加 ChangeType 单元测试
* feat: 弃用 Lookup 过滤器
* feat: 增加  Lookup 过滤
2021-12-21 14:59:19 +00:00
Argo
53057efced !2235 feat(#I4NHCY): add TreeIcon parameter on Table component
* chore: bump version to beta09
* doc: 增加更改图标示例
* feat: 增加树形结构小箭头图标参数
* doc: 更新说明提示
* feat: 微调 Tree 样式
2021-12-21 06:58:34 +00:00
Argo
e28890232e !2234 feat(#I4NBWG): allow parameter null on BootstrapDynamicComponent
* chore: bump version to beta08
* feat: BootstrapDynamicComponent 静态方法参数可为空
2021-12-20 08:29:18 +00:00
Argo
66e381a6ca !2233 feat(#I4NBUK): add ShowSaveDialog method on Dialog service
* feat: 增加 ShowSaveDialog 弹窗方法
2021-12-20 08:16:00 +00:00
Argo
0370861b97 !2232 test(#I4NATF): add ModalDialog of OnSaveAsync unit test
* test: 增加单元测试 OnSaveAsync
2021-12-20 06:53:30 +00:00
Argo
2171aa55c5 !2231 feat(#I4NAQ4): change parameter to IDictionary<string, object?>
* doc: 更新参数类型
* refactor: BootstrapDynamicComponent 组件参数定义更新
2021-12-20 06:49:45 +00:00
Argo
1e87c54cdb !2230 feat(#I4NAN8): add Save button in footer on Dialog component
* refactor: 更改 OnSaveAsync 方法为 OnEditAsync
* refactor: 移动资源文件设置显示文本到组件内部
* feat: Dialog 组件参数重构支持保存按钮事件回调
* feat: ModalDialog 内置保存按钮
* chore: 更新资源文件
2021-12-20 06:42:40 +00:00
Argo
5eb097888f !2229 doc(#I4N6JR): update IDispatchService demo
* doc: 更新消息分发示例
2021-12-19 09:33:52 +00:00
Argo
0ec7cda59d !2228 test(#I4N6IB): add LinkButton unit test
* test: 移除 Task 单元测试
* test: 增加 LinkButton 单元测试
2021-12-19 09:17:25 +00:00
Argo
760e19c7e3 !2227 doc(#I4N6H2): add LinkButton document
* doc: 组件集合中增加 LinkButton
* doc: 增加 LinkButton 示例
* doc: 增加注释文本
* doc: 格式化代码
* doc: 增加组件列表描述信息
* doc: 增加 LinkButton 菜单
* doc: 增加 LinkButons 文档链接
2021-12-19 08:57:42 +00:00
Morcom
a350217d98 !2224 feat(#I4N5NM): add ShowSearchTextTooltip on Table component
* Merge branch 'main' into dev-table-tooltip
* refactor: 重命名 ShowSearchTextTooltip
* revert: 重置样式
* Merge branch 'feat-morcom' of https://gitee.com/morcom/BootstrapBlazor…
* 表格搜索框添加一个选项,用于是否显示tooltip
* Revert "表格搜索功能添加一个选项,用于不显示tooltip。因为有时候感觉挺影响视觉效果。"
* 表格搜索功能添加一个选项,用于不显示tooltip。因为有时候感觉挺影响视觉效果。
* 固定表头且自适应高度时,自后一条记录没有底部边框的问题
2021-12-18 23:11:55 +08:00
Argo
e3cd8978a2 !2223 test(#I4N5N6): add Block unit test
* test: 增加授权单元测试
* refactor: 更新代码逻辑
* test: 增加  Condition 单元测试
* refactor: 移除 AuthenticationState 级联参数
* test: 移除 IsGroup 单元测试
* test: 增加 Name 参数单元测试
* refactor: 移除 IsGroup 参数单元测试
* chore: bump version to beta06
* refactor: 增加注释
* refactor: 更新代码消除错误
2021-12-18 15:00:45 +00:00
Argo
16c351e866 !2222 feat(#I4MZDX): add SwitchButton component
* feat: 增加 SwitchButton 组件
2021-12-17 05:06:34 +00:00
Argo
e87adbfd17 !2221 feat(#I4MZCQ): add Redirect component
* refactor: 更新组件名称
* feat: 增加 RedirectTo 组件
2021-12-17 04:45:21 +00:00
Argo
f13f262da7 !2220 feat(#I4MZCE): add LinkButton component
* feat: 增加 LinkButton 组件
2021-12-17 04:37:16 +00:00
Argo
45c441fb7d !2219 feat(#I4MYK6): redesign Divider component add wrap node
* refactor: span 更改为 i
* refactor: Divider 增加 wrap 样式防止被干扰
* refactor: 更改 Id 为小写
2021-12-17 02:54:30 +00:00
Argo
da1e694505 !2218 feat(#I4MWDG): add OnAuthorizing callback on Layout component
* feat: Layout 增加授权认证回调方法配合权限管理框架
* refactor: 更新注释
2021-12-16 12:03:06 +00:00
Argo
148dd2a27e !2217 feat(#I4MSIJ): add BootstrapInputGroup component
* feat: 增加 BootstrapInputGroup 组件
2021-12-16 04:12:07 +00:00
Argo
f474a3c316 !2216 feat(#I4MSHK): Block add Condition parameter
* feat: Block 组件增加 Condition 参数用于直接赋值
* refactor: 增加弃用说明
2021-12-16 04:02:30 +00:00
Argo
2fc3a78ae8 !2215 feat(#I4MP2F): redesign BeforeRowButtonTemplate in Table component
* chore: bump version to beta05
* doc: 更新示例
* feat: 增加 TableCellPopconfirmButton 组件
* Revert "feat: 增加 ShowInRow 参数"
* Revert "feat: 弹窗确认组件增加 ShowInRow 参数"
* feat: 弹窗确认组件增加 ShowInRow 参数
* feat: 增加 ShowInRow 参数
* doc: 更新示例移除 SelectedRows 赋值
* feat: 改造 TableCellButton 支持自动选中本行功能
* feat: 增加 TableExtensionButton 组件扩展行内按钮
* refactor: 格式化文档
2021-12-15 10:12:55 +00:00
Argo
a10e0ee3d0 !2214 feat(#I4MMZ2): add IsEnableWhenSelectedOneRow on Button in Toolbar
* feat: 工具栏按钮增加 IsEnableWhenSelectedOnRow 属性
* refactor: 重构代码
2021-12-15 07:23:23 +00:00
Argo
ccacc88ccf !2213 feat(#I4MLL7): add shadow effects of dropdown menu on Tab
* feat: Tab 关闭所有标签页下拉框增加阴影效果
2021-12-15 05:20:33 +00:00
Argo
c4636ac256 !2210 feat(#I4M8V8): support IsActive parameter on Tree component
* chore: bump verson to 6.1.1-beta04
* doc: revert  demo
* feat: 增加 ActiveItem 节点查找逻辑
* refactor: 重构 TreeItem 增加 IsActive 属性
* refactor: 重构 ValidateBase 代码
2021-12-14 01:57:33 +00:00
Argo
21e5b02015 !2209 feat(#I4M8X7): redesign popup window layout in Root component
* refactor: 微调弹窗组件顺序
2021-12-13 07:08:31 +00:00
Argo
76677e7f48 !2208 feat(#I4M8W5): filter lambda expresson support enum type
* feat: 扩展表达式树内置支持枚举类型查询
2021-12-13 07:05:43 +00:00
Argo
995718af53 !2207 feat(#I4M7KC): add ErrorLogger in Layout component
* refactor: 增加 Layout 传递参数给 Tab 组件
* refactor: 更改 ErrorLogger 作用域
* fix: 更新 TabItem 生成逻辑增加 ErrorLogger 组件
* refactor: 重构 IErrorLogger 接口
2021-12-13 04:10:03 +00:00
Argo
22e92f163a !2206 fix(#I4M57S): not set CascadingValue of ErrorLogger in Layout
* fix: 修复 Layout 组件开启多标签页时未级联 ErrorLogger 问题
2021-12-12 19:07:36 +00:00
Argo
37ce485481 !2205 feat(#I4M353): adjust style for Menu in sidebar
* Merge branch 'main' into dev-menu
* chore: bump version beta03
* style: 微调侧边栏菜单样式
2021-12-11 08:23:10 +00:00
Argo
b240f6cf29 !2204 feat(#I4M345): add IQueryableExtensions for EFCore
* chore: bump version to 6.1.1-beta02
* feat: 增加 IQueryable 扩展方法
2021-12-11 08:13:33 +00:00
Argo
1da71108a7 !2203 feat(#I4M1SI): add Id/ParentId property on MenuItem
* chore: bump version to 6.1.1-beta01
* feat: MenuItem 增加 Id ParentId
2021-12-10 16:14:24 +00:00
Argo
8725519725 !2202 feat(#I4M1SL): add PageItemSource default value
* refactor: 重构分页设置提供默认值
2021-12-10 16:11:56 +00:00
Argo
2b10e50345 !2201 test(#I4LVVL): add Drawer unit test
* test: 增加代码覆盖率
* test: 添加 Drawer 组件单元测试
2021-12-09 16:45:50 +00:00
Argo
3b0f43def1 !2200 fix(#I4LVVG): SearchText input box show label when Table shown in EditDialog
* fix: 修复 SearchText 内置表单后显示 Label 问题
2021-12-09 16:33:52 +00:00
Argo
1452a32561 !2199 test(#I4LVVF): add Utility unit test
* test: 移除单元测试
* test: 增加动态类测试辅助类
* test: 增加 MockTableColumn 测试类
* test: 增加 Utility 单元测试
2021-12-09 16:29:04 +00:00
Argo
500df3d2a6 !2198 test(#I4LVV7): add Switch unit test
* test: 增加 CssBuilder 单元测试
* test: 增加 Modal 代码覆盖率
* refactor: 移除 Dispose 延时
* refactor: 更新 ModalDialog 代码逻辑
* test: 增加 Color.None 单元测试
2021-12-09 16:25:52 +00:00
Argo-Tianyi
262331e418 chore: bump version to 6.1.0 2021-12-09 09:56:53 +08:00
Argo
9bc7579581 !2197 test(#I4LPGB): add NullSwitch unit test
* Merge branch 'main' into dev-test-nullswitch
* test: 补充单元测试
* test: 补充单元测试
* test: 添加 NullSwitch 组件单元测试
2021-12-08 17:27:03 +00:00
Argo
f34247f3a4 !2196 test(#I4LPGA): add Switch unit test
* Merge remote-tracking branch 'origin/main' into dev-test-switch
* refactor: 更新点击事件
* refactor: 整理命名空间
* test: 补充单元测试
* test: 添加 Switch 组件单元测试
* test: 添加 Tag 组件单元测试
2021-12-08 17:22:12 +00:00
Argo
1e902c17c6 !2195 test(#I4LPFS): add Tag unit test
* test: 格式化代码
* test: 添加 Tag 组件单元测试
2021-12-08 16:35:17 +00:00
Argo
d013d76dd6 !2194 test(#I4LPFF): add Menu unit test
* test: 增加单元测试
* refactor: 重构代码
* test: 更新 Menu 单元测试增加代码覆盖率
* refactor: MenuItem Component 参数更改
* test: 增加未设置父 Menu 组件单元测试
* refactor: 重构菜单点击事件
* test: 增加 GetAllSubItems 方法测试
* refactor: 重构代码
* test: 增加导航栏测试
* test: 增加 Menu 单元测试
* doc: 更新注释文档
* style: 微调样式
* test: remove namespace
2021-12-08 16:18:15 +00:00
Argo
378375ed60 !2193 test(#I4LPFE): add ColorPicker unit test
* test: update unit test
* refactor: 移除 Placeholder
* refactor: 消除警告信息
* test: 添加 ColorPicker 组件单元测试
* test: 添加 ColorPicker 组件单元测试
2021-12-08 16:15:52 +00:00
Argo
5425c5d159 !2192 fix(#I4LLC1): not trigger OnClick event callback on TopMenu component
* chore: bump version to 6.0.18
* fix: 修复顶栏一级菜单点击不正确问题
* fix: 修复顶栏菜单 OnClick 失效问题
2021-12-08 04:48:15 +00:00
Argo
f7ec75e4cb !2191 doc(#I4LLA0): update doc for introduction
* doc: 更新介绍章节文档
* doc: 增加数据服务视频
2021-12-08 04:23:16 +00:00
Argo
d3d77afafd !2190 test(#I4LJ8J): add QRCode unit test
* test: 重构代码
* refactor: 移除空判断
* test: 添加 QRCode 组件单元测试
* test: 添加 QRCode 组件测试
2021-12-07 16:06:32 +00:00
Nine
9ae2ffc2f8 !2189 doc(#I4LIZ2): add english translation of qrcode page
* Merge remote-tracking branch 'gitee.com/main' into dev-en-qrcode
* doc: 添加 QRCode 页面资源文件
2021-12-07 13:16:26 +00:00
Nine
ac42a70f3e !2188 doc(#I4LIWX): add english translation of print page
* Merge remote-tracking branch 'gitee.com/main' into dev-en-print
* doc: 添加 Print 页面资源文件
2021-12-07 12:57:52 +00:00
Nine
f2270ba5b3 !2187 doc(#I489KD): add english translation of ips page
* doc: 添加 Ip 示例页面资源文件
2021-12-07 12:50:08 +00:00
Argo
f336ab5cac !2186 feat(#I4LE6Q): table support process SearchText logic
* chore: bump version 6.0.17
* feat: 增加 IsAdvanceSearch 搜索识别
* doc: 更新文档
2021-12-07 03:30:05 +00:00
Argo
9172e7572e !2185 feat(#I4LCDT): update dialog component z-index
* doc: 增加代码覆盖率挂件
* doc: 增加全局异常视频链接
* doc: 增加组件分层菜单
* doc: 更新文档
* doc: 增加资源文件
* doc: 增加 layout 页面
* feat: 更新弹窗组件层次
2021-12-06 18:05:39 +00:00
Argo
d72deb23db !2184 refactor(#I4LCCW): remove SelectedItems in Table component
* doc: update doc for SelectedRows
* refactor: rename SelectedItems to SelectedRows
2021-12-06 16:49:23 +00:00
Argo
1fe3bd6703 !2183 fix(#I4LAA3): remove SelectedRows parameter use SelectedItems
* feat: 更新编辑按钮禁用逻辑
* chore: bump version to 6.0.16
* doc: 更新示例代码
* doc: 更新示例
* refactor: 增加 SelectedItems 双向绑定
* feat: 移除 SelectedRows
* refactor: 更新示例
* refactor: 增加 SetSelectedRows 方法
* refactor: 增加私有变量
* refactor: 移除 set 关键字
* doc: 增加测试代码
2021-12-06 16:35:34 +00:00
Argo
980f6a97ab !2182 test(#I4L86X): add unit test for DialogService
* test: 增加 ShowModal 单元测试
* test: 增加 ShowEditDialog 单元测试
* refactor: 更改参数数据类型
* test: 增加 ShowEditDialog 单元测试
* refactor: 重构代码
* test: 增加 DialogBodyTemplate
* test: 更新 Dialog 单元测试
* test: 重构单元测试
* refactor: 代码格式化
* test: 增加 Dialog 单元测试
* refactor: 重构 Dialog 代码
2021-12-06 04:29:00 +00:00
Nine
ff85b7ba1c !2181 doc(#I4L7JE): add english translation of iplocator page
* doc: 添加 Locator 页面资源文件
2021-12-06 03:09:29 +00:00
Argo
9ef56226c3 !2180 test(#I4L4S3): add unit test for ModalDialog
* test: 增加 ModalDialog 单元测试
* refactor: 重构代码
* refactor: 重构代码
2021-12-05 06:18:03 +00:00
Argo
8b6ddb96f3 !2179 test(#I4L4PF): add unit test for Modal
* test: 增加 Modal 单元测试
* refactor: 移除不使用的方法
* refactor: 更新集合属性为只读
* refactor: 更新单元测试
* Merge branch 'main' into dev-test-tab
* wip: 临时提交
2021-12-05 04:38:00 +00:00
Nine
e8a6697ff8 !2178 doc(#I4L4L3): add english translation of listview page
* Merge remote-tracking branch 'gitee.com/main' into dev-en-ListView
* doc: 添加 ListView 页面资源文件
2021-12-05 02:46:33 +00:00
Nine
1034275a95 !2177 doc(#I4L4JS): add english translation of handwritten page
* doc: 添加 Handwritten 页面资源文件
2021-12-05 02:19:17 +00:00
Nine
821a3d6c9a !2176 doc(#I4L4JH ): add english translation of groupbox page
* Merge remote-tracking branch 'gitee.com/main' into dev-en-groupbox
* doc: 添加 GroupBoxs 页面资源文件
2021-12-05 02:13:25 +00:00
Nine
6f4c101031 !2175 doc(#I4L4J9): add english translation of empties page
* Merge remote-tracking branch 'gitee.com/main' into dev-en-empty
* Merge remote-tracking branch 'gitee.com/main' into dev-en-empty
* doc: 添加 Empties 页面资源文件
2021-12-05 02:06:06 +00:00
Nine
1780ccb666 !2174 doc(#I4L4IU ): add english translation of gotop page
* Merge remote-tracking branch 'gitee.com/main' into dev-en-dropdownWidget
* doc: 添加 DropdownWigets 示例页面资源文件
2021-12-05 02:01:12 +00:00
Argo
089356fd68 !2173 test(#I4L4IK): add unit test for Print
* doc: update doc
* test: 增加打印组件单元测试
* refactor: 重构打印组件代码
2021-12-05 01:55:40 +00:00
Argo
bc374c34d7 !2172 feat(#I4L3W4): NumberFilter compatible Short/Single/double
* feat: 增加 Step 默认设置
* refactor: Column 增加不可为空标签
* feat: 增加 Step 步长设置
* refactor: 格式化代码调整组件顺序
* refactor: 使用扩展方法 IsNumber
* feat: table的 numberfilter 支持long、double、float、decimal
2021-12-04 09:37:08 +00:00
Argo
8b4124884b !2171 feat(#I4L2TO): ErrorLogger compatible Layout component
* chore: bump version to 6.0.15
* refactor: 增加对 IsErrorHandler 参数判断
* feat: 支持 Layout 布局组件 ErrorLogger
* feat: Layout 组件增加 ErrorLogger 参数
* revert: 撤销授权视图更改
* chore: 增加 ErrorLogger 支持
* refactor: 更改文件夹名称
* refactor: 格式化代码
2021-12-04 09:29:55 +00:00
Argo
0ab0e2deec !2170 test(#I4L3JS): add unit test for ErrorLogger
* refactor: 增加 ErrorContent 参数 NET5
* test: 增加 ErrorLogger 单元测试
* doc: 增加内置弹窗标题资源文件
2021-12-04 07:51:24 +00:00
Argo
8d827e5a69 !2169 feat(#I4L2NM): add OnErrorHandleAsync callback function on ErrorLogger
* doc: 增加自定义错误处理示例
* feat: 增加 OnErrorHandleAasync 接口
2021-12-04 01:54:42 +00:00
Argo
924ce4f527 !2168 test(#I4L2HN): add unit test of button
* refactor: 移除对 Id 的判断精简代码
* test: 增加 Button 单元测试
* refactor: 更新条件语句
* doc: 更新注释
2021-12-03 16:50:36 +00:00
Argo
7e0006fef9 !2167 feat(#I4L2DE): assign default value for PageItemsSource
* refactor: 更新 PageItemsSource 给默认值
2021-12-03 14:17:00 +00:00
Argo-Tianyi
bac7f0fe41 doc: update the link on footer 2021-12-03 17:43:40 +08:00
Argo
c4d8cb3925 !2166 feat(#I4KNKK): improve global error handle
* chore: bump version to 6.0.14
* refactor: 重构代码移除不使用的
* feat: 增加移除处理逻辑
* wip: 临时提交代码
* wip: 临时提交
* refactor: 重构代码消除警告信息
* doc: 更新示例
* feat: 增加扩展方法
* refactor: 更改组件名称
* refactor: 精简 IBlazorLogger 接口方法
* feat: 开启日志
* refactor: 公开 Exception Format 扩展方法
* Revert "wip: 重构 BootstrapBlazorRoot 组件"
* WIP: 提交代码
* wip: 更新 BlazorLogger 组件
* refactor: 消除警告信息
* wip: 提交代码
* wip: 重构 BootstrapBlazorRoot 组件
2021-12-03 09:16:41 +00:00
Argo-Tianyi
729d9976b8 chore: update filling link 2021-12-03 15:00:06 +08:00
Argo
d60acfaf02 !2164 fix(#I4KTJJ): resolve tab text incorrect when click the edge of text on menu item
* chore: bump version to 6.0.13
* fix: 修复侧边栏菜单点击字边缘 Tab 标签页显示文本显示路径问题
2021-12-02 07:58:42 +00:00
Argo
418d453206 !2163 feat(#I4KSXI): support async task on Button OnClickWithoutRender callback
* refactor: 按钮支持异步操作
* doc: 更新发送消息示例
2021-12-02 07:10:00 +00:00
Argo
8f16aad3aa !2162 feat(#I4KRVZ): disable the edit/delete button on toolbar when not select items in table row
* feat: 未选中行时禁用工具栏编辑与删除
* doc: 加粗总结项
* doc: 增加 2019 支持
2021-12-02 05:03:34 +00:00
Argo
abe5174c98 !2161 doc(#I4KPMQ): update doc for project template extension
* doc: 更新插件文档
* wip: update doc for Template
* chore: update json resource file
* chore: add images
2021-12-01 17:28:35 +00:00
Nine
0d2ccda2f8 !2160 doc(#I4KPFA):add english translation of dispaly page
* Merge remote-tracking branch 'gitee.com/main' into dev-en-display
* doc: 添加 Dispaly 页面资源文件
2021-12-01 14:13:32 +00:00
Argo
8ddcd2128f !2159 feat(#I4KP56): button inherit IHandleEvent interface
* doc: 更新自定义搜索模型布局
* feat: Button 按钮继承 IHandleEvent 接口
2021-12-01 12:09:50 +00:00
Argo
2a748ece2a !2158 feat(#I4KO3L): customer search template support Top mode
* chore: bump version to 6.0.12
* doc: 更新自定义搜索模板示例
* feat: Search 顶栏模式支持自定义搜索模板
* feat: SearchText 与 自定义搜索模型分开内置处理逻辑
* feat: 增加 SearchText 处理逻辑
2021-12-01 09:34:08 +00:00
Argo
24c4a9d256 !2157 fix(#I4KLLQ): component in ValidateForm support bind none public Field/Property
* test: 增加单元测试
* fix: 支持绑定非公开字段
2021-12-01 06:01:45 +00:00
Argo
40ce80a829 !2156 fix(#I4KFOT): tab show blank item when click menu
* chore: bump version to 6.0.11
* fix: 修复菜单点击时导致 Tab 出现空白标签页问题
2021-11-30 07:12:10 +00:00
Argo
e481996215 !2155 doc(#I4KEJQ): update codecov badge
* chore: bump version to 6.0.10
* revert: 移除本地化测试工程 Ubuntu 报错
* chore: 增加测试工程
* test: 更新单元测试
* Revert "chore: 增加多语言"
* chore: 增加多语言
* chore: 测试 dev-table 分支
* doc: 更新文档
* doc: 更改分支名称
2021-11-30 05:44:01 +00:00
Argo
db701da344 !2154 doc(#I4KCDS): add code coverage badge
* doc: 更新英文文档
* doc: 更新文档
* doc: 更新文档
* revert: 移除多语言
* test: 更正单元测试
* revert: 增加多语言测试
* test: 更新结果文件
* test: 移除多语言测试
* test: 更新项目路径
* test: 更改命令
* chore: 增加代码覆盖率
2021-11-29 16:49:13 +00:00
Argo
f0bcb12f12 !2153 feat(#I4KC7E): integrate GetSearchs into QueryOptions
* feat: 更新搜索示例代码
* refactor: 重构 GetSearchs 方法
* feat: 增加多视频支持
* feat: 内置支持 CustomerSearchModel
* feat: 更新自定义搜索内部实现逻辑
* feat: 增加 Reset 实现
* refactor: 增加重置操作
2021-11-29 14:07:18 +00:00
Argo
f2f7dc69c6 !2152 feat(#I4KARU): add customer search model support
* chore: bump version to 6.0.9
* doc: 增加自定义搜索模型示例
* feat: 增加 FooSearchModel 示例
* feat: 内置自定义搜索逻辑
* feat: 增加自定义搜索接口
* refactor: 重构代码
* feat: 增加 SearchFilterACtion 实现类
2021-11-29 09:27:44 +00:00
Argo
9d96fad686 !2151 refactor(#I4K95I): rename AllowTextWrap to TextWrap
* refactor: AllowTextWrap 更改为 TextWrap
2021-11-29 07:02:01 +00:00
Argo
cd0b00d094 !2150 doc(#I4K7WS): update create project template doc
* doc: 更新手工创建项目文档
* refactor: 移除 class 约束
* refactor: 格式化代码
* refactor: 增加泛型约束
2021-11-29 05:05:20 +00:00
Argo
39e6b512a5 !2149 test(#I4K54E): add GoTop unit test
* test: 增加 GoTop 单元测试
* Merge branch 'main' into dev-test-gotop
* test: 添加 GoTop 组件单元测试
2021-11-28 15:35:43 +00:00
Argo
840fb97e1a !2148 test(#I4K52R): add ValidateBase unit test
* test: 增加 Tooltip 单元测试
* refactor: 重构代码支持 aria-invalid 标签
* doc: 更新表格资源文件
* test: 增加 ValidateType 单元测试
* doc: 更新注释
* test: 增加 CurrentValue 单元测试
* test: 增加 ValidateProperty 代码覆盖率
* refactor: 更新多选框重载方法
* refactor: 更新 OnValidate 方法
* test: 增加 ValidateRules 单元测试
* refactor: 更新 IValidateComponent 接口
* refactor: 移除 IValidateRules 接口
* test: 增加 SkipValidate 单元测试
* test: 增加 ShowLabel 单元测试
* chore: 更新注释
* refactor: 移除可为空设置
* test: 增加 ValidateBase 单元测试
* chore: 单元测试增加 Root 根节点
2021-11-28 14:59:26 +00:00
Nine
dda23d9fe9 !2147 doc(#I4K4IT): add english translation of collapses page
* doc: 添加 Collapses 示例页面资源文件
2021-11-28 08:02:13 +00:00
Nine
60cb42679e !2146 doc(#I4K48R): add english translation of circles page
* doc: 添加 Circles 示例页面资源文件
2021-11-28 03:57:51 +00:00
Argo
389eb101e4 !2145 test(#I4K40V): add BootstrapInput unit test
* feat: GenerateValueExpression 公开方法
* test: 重构单元测试
* test: 增加 Input 单元测试
* refactor: 移除无用代码
* refactor: 重构代码
* chore: 更新项目配置
2021-11-27 17:23:23 +00:00
Nine
86e8ebead4 !2144 test(#I4K3PL): add alert component unit tests
* Merge remote-tracking branch 'gitee.com/main' into dev-test-light
* test: 添加 Light 组件单元测试
2021-11-27 11:37:24 +00:00
Nine
b45f3f0fbe !2143 add spinner component unit tests
* Merge remote-tracking branch 'gitee.com/main' into dev-test-spinner
* test: 添加 Spinner 组件单元测试
2021-11-27 11:18:22 +00:00
Nine
fd5ef394d1 !2142 doc(#I4K3OL):add english translation of gotop page
* doc: 添加 Client 示例页面资源文件
2021-11-27 11:14:45 +00:00
Argo
1076f3434d !2141 test(#I4K2RA): update unit test
* refactor: 更新单元测试
* refactor: 更新单元测试
2021-11-27 06:00:24 +00:00
Argo
624ef15c0b !2140 test(#I4K2Q4): update unit test refactor code
* refactor: 更新单元测试
2021-11-27 05:49:00 +00:00
Argo
3dfd38e83d !2139 test(#I4K1SQ): add Card unit test
* test: Card 单元测试 100%
* test: 添加 Card 组件单元测试
2021-11-26 16:19:40 +00:00
Nine
6798e79f5b !2137 test(#I4K16V): add avatar component unit tests
* test: 单元测试覆盖率 100%
* test: 优化代码
* Merge remote-tracking branch 'gitee.com/main' into dev-test-avatar
* test: 添加 Avatar 组件单元测试
2021-11-26 16:08:58 +00:00
Argo
e0af181bf6 !2138 fix(#I4K0R6):remove clear method in Collapse prevent content missing when rerender
* chore: bump version to 6.0.8
* doc: 增加不同数据源切换示例
* revert: 移除清除操作
* fix: 修复 Collapse 组件页面更新时渲染错误问题
2021-11-26 12:53:17 +00:00
Argo
02d84dfd72 !2136 doc(#I4K0L0): update download component preview images link
* doc: 更新文件下载图片
* style: 微调 footer 样式
* doc: 更新注释
2021-11-26 09:21:13 +00:00
Nine
07dd1afece !2135 test(#I4JXA2): add a badge component unit test
* Merge remote-tracking branch 'gitee.com/main' into dev-test-badge
* test: 添加 test 组件单元测试
2021-11-26 03:08:30 +00:00
Nine
b171b83ae1 !2134 doc(#I4JWS8): add english translation of carousels page
* Merge remote-tracking branch 'gitee.com/main' into dev-en-Carousel
* Merge remote-tracking branch 'gitee.com/main' into dev-en-Carousel
* Merge remote-tracking branch 'gitee.com/main' into dev-en-Carousel
* doc: 添加 Carousels 示例页面资源文件
2021-11-26 02:33:25 +00:00
Nine
6a57a989ca !2133 doc(#I4JWPG): add english translation of captchas page
* Merge remote-tracking branch 'gitee.com/main' into dev-en-captchas
* doc: 添加 Captchas 示例页面资源文件
2021-11-26 02:20:21 +00:00
Nine
7d63c4fa56 !2132 doc(#I4JWJP): add english translation of cameras page
* Merge remote-tracking branch 'gitee.com/main' into dev-en-camera
* doc: 添加 Cameras 页面资源文件
2021-11-26 02:09:33 +00:00
Nine
97ec59b0fa !2131 doc(#I4JWAE):add english translation of calendars page
* Merge remote-tracking branch 'gitee.com/main' into dev-en-calendars
* doc: 添加 Calendars 页面资源文件
2021-11-26 01:47:22 +00:00
Argo
7f0005c413 !2130 test(#I4JTGK): localization unit test into localization test project
* test: 拆分多语言单元测试到独立工程中
2021-11-25 08:28:29 +00:00
Argo
2706bdd119 !2129 refactor(#I4JSV5): BootstrapBlazorRoot compatible wasm
* Merge remote-tracking branch 'origin/dev-test' into dev-table
* chore: bump version to 6.0.7
* refactor: 更新 BootstrapBlazorRoot 组件渲染逻辑
* test: 更新单元测试防止报错
* test: 恢复 Foo 缓存
* wip: 临时提交
* refactor: 移除工具栏按钮
* test: 重构代码减少时长
2021-11-25 07:38:00 +00:00
Argo
3558ff19aa !2128 test(#I4JQ9B): reduce unit test duration
* chore: 延长弹窗消失时间
* test: 重构单元测试减少时长
* test: 更改命名空间
* test: 移动单元测试文件夹
* test: 增加英文资源文件单元测试
* test: 增加 resx 英文资源文件
* test: 增加测试排序功能
2021-11-25 02:41:00 +00:00
Argo
573455b508 !2127 fix(#I4JPRL): make table cell vertical center align
* fix: 动态元素增加 GenerateElement 属性用于控制不符合条件时是否输出
2021-11-25 01:59:32 +00:00
Argo
300c7bedca !2126 doc(#I4JPR8): update webhook model
* Merge branch 'dev-services' into dev-docs
* refactor: 精简代码
* fix: 移除提交总数不准确
* doc: 更新 Select 文档 ShowSearchBox
2021-11-25 01:57:06 +00:00
alex_zou
f954668e2d !2125 doc(#I4JPP4): update components preview images
* 补充整理组件总览, 图表组件翻译修正
2021-11-25 01:53:09 +00:00
Argo
b07c939138 !2124 refactor(#I4JN7B): update GiteePushBody entiry
* refactor: 更新提交总数逻辑
* refactor: 更新提交代码推送通知模型兼容提交为空情况
* refactor: 增加 id password sign 字段
* refactor: 增加 Commits 为空保护
2021-11-24 08:36:13 +00:00
Argo
f02cf492c8 !2123 feat(#I4JLYP): update dialog service add parameter for set the component instance
* doc: 更新示例代码
* doc: 更新 Messages 组件更改位置示例
* feat: 提供更改位置的弹窗服务增加指定组件实例参数
* refactor: 移除 PopupServiceBase 类与接口
* feat: Toast 服务支持指定弹窗组件
* refactor: Toast 组件移除 Host 参数
* feat: Dialog 服务弹窗方法增加第二个参数指定弹窗组件
* refactor: 更新服务移除对本地化的引用
2021-11-24 06:45:50 +00:00
Argo
4a40a3d8a0 !2122 doc(#I4JL5H): update EditorForm document for add IsDisplay parameter
* doc: update document for EditorForm
2021-11-24 05:16:28 +00:00
Argo
bd5318700b !2121 feat(#I4JL1Y): update BootstrapBlazorRoot component usage
* doc: 更新 BootstrapBlazorRoot 组件使用方法
* doc: 更新 Messages 示例代码
* doc: 更新 Toast 设置位置示例代码
* feat: 改造 BootstrapBlazorRoot 为容器组件
* refactor: 移除内置标签统一使用 BootstrapBlazorRoot
* doc: 移除不用的命名空间
2021-11-24 04:33:31 +00:00
Argo
0700582027 !2120 test(#I4JIBI): add resources localizer file unit test
* test: 增加 resx 格式资源文件单元测试
* !2118 resx多语言文件单元测试
* wip: 给刘亮老师使用
2021-11-23 11:43:47 +00:00
Argo
c55db51a07 !2119 doc(#I4JI71): update install steps for server side and wasm mode
* doc: 更新文档
* doc: 更新 wasm 文档
* doc: 更新 wasm 模式文档
* doc: 重写 server-side 文档
2021-11-23 11:05:45 +00:00
Argo
7825ef93c8 !2117 feat(#I4JD7S): update Docker CI&CD script
* chore: update file
* chore: update
* chore: update
* chore: update ci file
* chore: update yml file
* chore: 更新脚本
* chore: update yml file
* chore:  update  docker file path
* chore:  update docker image
2021-11-23 02:24:33 +00:00
一事冇诚
45b1dba5d3 !2116 doc(#I4JD6J): update the link of BootstrapAdmin
* doc: 修正 演示网站首页相关作品 BootstrapAdmin 开源库地址
2021-11-23 02:21:39 +00:00
Argo
63e31d463d !2115 feat(#I4JC5Q): add IDispatchService service
* refactor: 增加注释
* doc: 增加消息分发示例
* doc: 增加消息分发菜单
* feat: 增加 IDispatchService 接口
* style: Toast 组件背景色移除透明效果
* refactor: 增加 Type 扩展方法
* doc: 更改命名空间
* refactor: 条件更加严谨
* chore: Server 工程增加配置项
* doc: 更新配置文件
2021-11-22 19:27:11 +00:00
Argo
75bc3406aa !2114 refactor(#I4JC4S): add id query string for web hook
* doc: 格式化代码
* doc: 更改日志链接 z-index
* refactor: 代码推送弹窗增加自动关闭
* doc: 增加 Token 配置
* refactor: 更新文档
* doc: 移除测试 Key
2021-11-22 16:47:11 +00:00
Argo
b55910aabd !2113 feat(#I4JBGV): add auto notification function when push commit on Gitee website
* feat: 更新推送通知功能
* refactor: 更改接口
* refactor: 更改接口参数为 IDictionary
* feat: ToastOption 增加 ChildContent 参数
* refactor: 更新全站 Webhook 推送架构
* feat: 增加 NotificationService 服务
* feat: 增加提交全站消息架构
2021-11-22 11:29:37 +00:00
Argo
317c71aae4 !2112 refactor(#I4JBGE): use IDictionary instead IEnumerable on BootstrapDynamicComponent parameter type
* refactor: 更改接口
* refactor: 更改接口参数为 IDictionary
2021-11-22 11:26:21 +00:00
Argo
d553b43541 !2111 feat(#I4JBFS): add ChildContent parameter on Toast component support RenderFragment
* feat: ToastOption 增加 ChildContent 参数
2021-11-22 11:21:41 +00:00
Argo
7b03a1511e !2109 test(#I4J4EE): add unit test for Anchor component
* test: 更新单元测试用例代码覆盖率 100%
* refactor: Anchor 组件
2021-11-21 08:18:32 +00:00
Argo
f0581d08b9 !2108 refactor(#I4J456): remove register ServiceProvider code
* refactor: 代码重构
* test: 更新单元测试
* refactor: 代码重构
* refactor: 更改 GetJsonStringByCulture 为扩展方法
* refactor: 更新 CacheManager 扩展类
* refactor: Foo 移除对 CacheManager 依赖
* refactor: 增加 ICacheManager 接口
* refactor: 更改 GetJsonStringConfig 为扩展方法
* refactor: 移除容器注入代码
* refactor: 移动静态服务类统一到 CacheManager 类中
* refactor: 重构 JsonStringLocalizerFactory 移除静态方法
* refactor: 代码重构增加可读性
* refactor: 增加 ServiceProvider 扩展兼容旧版本
* refactor: 移除 ServiceProvider 注册方法
2021-11-21 06:03:40 +00:00
Argo
f9379c4bf1 !2107 feat(#I4J2L8): context in template on EditorItem component support generic class
* refactor: EditorItem 上下文支持泛型推断
* feat: EditorForm 增加对类型推断功能
2021-11-20 06:09:08 +00:00
Argo
2b50430a51 !2106 feat(#I4J25D): context in template on Table component support generic class
* doc: 更改示例
* feat: TableColumn 增加类型推断功能
* feat: 搜索模板上下文支持强类型
* feat: 编辑模板 context 直接为强类型
2021-11-20 02:58:26 +00:00
Argo
d38b23c429 !2105 chore(#I4IZVI): remove unsafe code
* refactor: 移除 unsafe 类
* refactor: QueryHelper 辅助类
* wip: 增加 QueryHelpers
2021-11-19 08:38:25 +00:00
Argo
efb464c7f0 !2104 fix(#I4FIVD): make ValidateAttribute work on InputUpload component
* fix: 修复 InputUpload 组件验证不生效问题
* fix: 增加未选择文件处理逻辑
* refactor: 使用切片重构代码
* revert: 恢复提示框逻辑先销毁再生成防止提示信息无法更新
* style: 更新验证组件鼠标悬停样式
2021-11-19 06:46:10 +00:00
Argo
288b8f2943 !2103 fix(#I4GRNF): Rows component support infinite level nested
* doc: 更新示例
* doc: 更新示例
* fix: 支持无限嵌套
* Revert "wip: rows 更改"
* wip: rows 更改
2021-11-19 04:53:22 +00:00
Nine
ae09b7b700 !2102 doc(#I4IX6X): add english translation of cards page
* Merge branch 'main' of https://gitee.com/LongbowEnterprise/BootstrapBl…
* doc: 添加 Cards 页面资源文件
2021-11-19 03:14:48 +00:00
Argo
342637af14 !2101 feat(#I4IEW1): add OnClickCellCallback on Table component
* refactor: 移除代码
* refactor: 重构单元格双击事件到 Table 上
* style: 微调可点击单元格下标线位置
* doc: 更新示例
* style: 增加单元格样式
* refactor: 重构 GetItemValue  方法
* refactor: 更新 OnDoubleClickCellCallback 接口定义
* doc: 格式化文档
* refactor: 将 OnDoubleClickColumnCallback 改为 OnDoubleClickCellCallback
* Merge branch 'main' of https://gitee.com/LongbowEnterprise/BootstrapBl…
* doc: 将 OnDoubleClickCellCallback 示例移动到 TableCell 页面
* refactor: 将 OnDbClickColumnCallback 改为 OnDbClickCellCallback
* refactor: 将 OnDoubleClickColumnCallback 改为 OnDoubleClickCellCallback
* doc: 更新 table 双击单元格示例
* feat: 添加双击单元格回调委托
2021-11-18 04:40:34 +00:00
Ricardo Oliveira
b467a0cab5 Add a portuguese-Brazilian translation locale 2021-11-18 01:26:58 +00:00
Argo
e68232ac4f !2100 fix(#I4ID9Y): reset items before render UI on Collapse component
* fix: 修复更改 CollapseItem 时组件 UI  渲染项不正确问题
2021-11-18 01:05:00 +00:00
Argo
8cdc4b7e35 !2099 feat(#I4IG9P): add OnColumnCreating callback on Table component
* doc: 更新文档注释
* doc: 更新示例
* refactor: 更新 OnColumnCreating 回调参数类型为 List
* doc: 添加 OnColumnCreating 示例
* feat: 添加 table 初始化前设置 Column 属性
* feat: 添加 table 初始化前设置 Column 属性
2021-11-18 00:46:41 +00:00
Argo
f5289ccc40 !2098 refactor(#I4IPBH): remove Template/HeaderTemplate from AutoGenerateClassAttribute class
* refactor: 更改属性可见性
2021-11-18 00:18:27 +00:00
Argo
d69fb7d6dd !2097 doc(#I4IOX1): refactor code segment service improve performance
* refactor: 移动 Replace 扩展方法到单元测试
* refactor: 优化代码
* revert: 撤销 Filter 的更改
* test: 增加扩展 replace 方法测试用例
* test: 增加普通 replace 测试用例
* refactor: 字符串扩展更改为公开类
2021-11-17 12:33:00 +00:00
Argo
6d06c9500e !2096 doc(#I4IOMI): update sample code for EditDialog
* doc: 格式化文档
* doc: 更新 Anchor 示例
* doc: 更新 Scrolls 示例
* doc: 更新 Rows 组件资源文件
2021-11-17 11:49:24 +00:00
Argo
ac6f6111df !2095 doc(#I4IGDR): use Span instead of replace method improve performance
* doc: 更新 Layouts 示例
* refactor: 改进函数算法提高性能
2021-11-16 07:38:59 +00:00
Nine
61da690de3 !2094 doc(#I4ID9O): add english translation of blocks page
* doc: 添加 Blocks 页面资源文件
2021-11-16 01:29:55 +00:00
Nine
8b2a3220da !2093 doc(#I4ICC4): add english translation of barcodereaders page
* Merge branch 'main' of https://gitee.com/LongbowEnterprise/BootstrapBl…
* doc: 添加 Barcodereader 组件资源文件
2021-11-15 11:54:24 +00:00
Argo
5c781ff56b !2092 feat(#I4IC7G): tab support parameter from query string
* Merge remote-tracking branch 'origin/main' into dev-tab
* doc: 更新示例
* doc: 更新示例
* feat: Tab 组件支持 QueryString 参数
* feat: 升级 Tab 路由支持 net6
2021-11-15 11:25:05 +00:00
Argo
51755c67d8 !2091 feat(#I4IB5N): tab route upgrade to net6.0
* feat: 升级 Tab 路由支持 net6
2021-11-15 09:05:25 +00:00
Argo
239884d793 !2090 test(#I4I9XU): add unit test class base
* Merge branch 'main' into dev-wip
* feat: 增加 JavaScript 脚本支持
* refactor: 改用静态方法精简测试代码
* refactor: 移除 BootstrapBlazorTestContext 辅助类
* refactor: 重命名测试基类
* fix: 修复单元测试并发报错问题
* chore: 移除命名空间
* refactor: 格式化代码
* test: 添加 Anchor 组件单元测试
2021-11-15 07:11:18 +00:00
Argo
a2db521ed7 !2089 test(#I4I8RL): redesign test framework add Singleton for test context
* refactor: 重命名测试基类
* fix: 修复单元测试并发报错问题
* chore: 移除命名空间
* refactor: 格式化代码
* test: 添加 Anchor 组件单元测试
2021-11-15 05:13:55 +00:00
Argo
e3a328db94 !2088 feat(#I4I5DP): OnCapture callback return the photo base64 string on Camera component
* chore: bump version to 6.0.3
* refactor: 更新示例与打包
* fix: 更新刷新
* doc: 更新示例
* chore: 恢复调试
* chore: 调试
* chore: 调试
* chore: 调试
* chore: 打开调试
* feat: 增加数据分割功能
* chore: update scripts
* doc: 更新示例
* feat: 更新摄像头组件拍照回调方法
2021-11-14 10:08:45 +00:00
Argo
74803146e5 !2087 feat(#I4I5JA): update style for Table Skeleton component
* feat: 更新表格骨架屏
2021-11-14 07:47:37 +00:00
Argo
8f806930f7 !2086 refactor(#I4I5GO): redesign javascript invoke logic of Table component
* refactor: 重构 Table 脚本执行顺序精简 js 代码
* refactor:  移除可为空符号
* chore: 升级依赖
2021-11-14 06:35:22 +00:00
Argo
0623e695f7 !2085 feat(#I4I51B): add ToDisplayName extension method for enum type
* test: 增加枚举类型扩展方法单元测试
* fix: 修复缓存键值缺失文化问题
* feat: 重构枚举扩展方法 ToDisplayName
* fix: 修复演示网站枚举类型资源文件丢失问题
2021-11-13 22:38:35 +00:00
Argo-Tianyi
50c146ff57 chore: move props into Server project 2021-11-13 15:57:35 +08:00
Argo-Tianyi
93c8f9ab09 chore: update project config files 2021-11-13 15:28:34 +08:00
Argo
76ec721a52 !2084 fix(#I4I39P): resolve top search can not collapse issue
* doc: 更改 div 为 p 调整间隙
* style: 微调左侧间隙
* scripts: 更新客户端脚本修复 Search 无法收起问题
* fix: 更新逻辑防止初始化脚本调用两次
* refactor: 更新布局调整 Search 样式
* fix: 修复 Search 无法收起问题
2021-11-13 06:58:53 +00:00
Nine
81a6d9fbc9 !2083 doc(#I4I32H): add english translation of template and badges page
* doc: 添加 Badges 页面资源文件
2021-11-12 16:29:33 +00:00
Argo
e90f31ad09 !2082 feat(#I4HL0J): remove Dialog inside Table component
* chore: bump version to 6.0.3-beta01
* style: 更新分页组件位于 Table 上方样式
* feat: Table 组件内部移除 Dialog 组件统一使用 BootstrapRoot
2021-11-12 08:46:04 +00:00
Argo
e066fbb85a !2081 feat(#I4I0PZ): TableRenderMode support configure in appsettings file
* chore: bump version to 6.0.2
* feat: TableSettings 增加 RenderMode 配置项
2021-11-12 07:43:03 +00:00
Argo
bbf75447d6 !2080 doc(#I4I0P5): update dropdown doc
* doc: 更新后台模拟器英文资源
* doc: 更新 dropdown 文档
2021-11-12 07:37:35 +00:00
Argo
9e803a6f5a !2079 doc(#I4I05M): update doc for AutoComplete
* refactor: 格式化文档
* doc: 更新 AutoComplete 示例文档
2021-11-12 06:27:53 +00:00
Nine
467cf62384 !2078 doc(#I4HZOM): add english translation of avatars page
* doc: 添加 Avatars 页面资源文件
2021-11-12 05:41:14 +00:00
ReaZhuang
2681089572 !2073 feat(#I4HVWU): Add Debounce on AutoComplete
* 规范一下
* update AttributeDescription
* #I4HVWU:AutoComplete 组件增加防抖功能
* Add Debounce at AutoComplete
2021-11-11 14:03:04 +00:00
Argo
d44b4ddb19 !2077 test(#I4HX4Z): redesign BlazorTestContext
* refactor: BlazorTestContext
2021-11-11 12:22:13 +00:00
Argo
4f473f9b13 !2076 doc(#I4HX4C): update doc for Title
* refactor: 增加 Tips 过滤
* chore: 增加 filter 项目文件
* doc: 更新 Title 文档增加 net6 PageTitle 介绍
* refactor: 移除 Title 标签
* revert: 移除不使用的命名空间
2021-11-11 12:13:43 +00:00
Nine
15e67faefb !2075 test(#I4HVL2):add alert component unit tests
* refactor: 消除警告信息
* chore: 更新命名空间
* chore: 更改文件夹结构
* Merge branch 'dev-test-alerts' of https://gitee.com/LongbowEnterprise/…
* Merge branch 'main' of https://gitee.com/LongbowEnterprise/BootstrapBl…
* test: 支持 net5.0
* refactor: 重构单元测试
* feat: 添加 Table 组件过滤弹窗中关系的资源文件
* test: 添加 Alert 组件单元测试
* Merge branch 'main' of https://gitee.com/LongbowEnterprise/BootstrapBl…
* feat: Alert 组件单元测试
2021-11-11 08:38:09 +00:00
Nine
f3fabfb476 !2074 doc(#I4HVJP):add english translation of validateforms page
* Merge branch 'main' of https://gitee.com/LongbowEnterprise/BootstrapBl…
* doc: 添加 ValidateForm 资源文件
2021-11-11 08:10:23 +00:00
Argo
6e02ddfff2 !2072 doc(#I4HTV1): use the net6.0 project template
* chore: 增加默认 Title
* chore: 更新 wasm 模版
* chore: 增加母版页
* chore: ssr 模式使用新模板
* chore: 更新配置文件
2021-11-11 06:30:24 +00:00
Nine
4219505814 !2071 feat(#I4HTDJ): add a table component to filter the resource files for relationships in the pop-up window
* refactor: 分离 cs 文件
* feat: 添加 Table 组件过滤弹窗中关系的资源文件
2021-11-11 04:43:22 +00:00
Argo
d55c95c638 !2070 fix(#I4HT8V): WebClient component not work
* chore: 移除 net5.0 框架
* fix: 移除 $ 符号
2021-11-11 02:59:09 +00:00
Argo
dbb99d6b3f !2069 fix(#I4HT49):Download component compatible net6.0
* chore: bump version to 6.0.1
* chore: 设置 Shared 框架兼容 net5/net6
* fix: Download 组件兼容 net6.0
2021-11-11 02:48:27 +00:00
Argo-Tianyi
9f5dd68fa6 chore: bump version to 6.0.0 2021-11-11 09:14:24 +08:00
Argo
64879f3ddb !2068 fix(#I4HS25): IsTrim not working
* doc: 更新示例
* doc: 更新资源文件
* fix: 修复 BootstrapInput 开启 IsTrim 后端数据仍有空格问题
2021-11-11 01:12:40 +00:00
Argo
022341428c !2067 doc(#I4HRK4): update page layout menu item text
* refactor: 移除方法重载
* refactor: 更新文档消除提示信息
* doc: 更新后台模拟器菜单名称
2021-11-10 13:07:57 +00:00
ReaZhuang
89781258ce !2066 feat(#I427JH) add IsTrim parameter on BootstrapInputBase component
* add IsTrim parameter on BootstrapInputBase & update Demo
2021-11-10 12:55:50 +00:00
Nine
b41cb480ec !2065 feat(#I4HR59): the alert component does not close the issue
* refactor: 重构 Alert IsShown 逻辑
* Merge branch 'main' of https://gitee.com/LongbowEnterprise/BootstrapBl…
* fix: 修复Alert组件不能关闭问题
* fix: 修复点击按钮 Alert 不消失
2021-11-10 12:50:23 +00:00
Argo
3495b67fba !2064 fix(#I4HQPN): incorrect text first render Tab component when click menu
* fix: 修复点击菜单导致 Tab 首次加载不正确问题
2021-11-10 09:49:38 +00:00
Argo-Tianyi
22ad85f928 chore: add target framework version 2021-11-10 15:29:50 +08:00
Argo
a95ae93689 !2063 doc(#I4HPCN): add doc for register service provider
* doc: 增加出错提示
* doc: 更新配置服务文档
* fix: 跟新 wasm 方法名
* doc: 更新中文文档
2021-11-10 07:26:17 +00:00
Argo
7ed73c335b !2062 revert(#I4HOVA): resolve tooltip/popover can't not init issue
* chore: bump version to 5.18.5-beta05
* fix: 修复 popover tooltip 无法弹出问题
2021-11-10 06:42:43 +00:00
Argo
3274e3a00e !2061 feat(#I4HOAT): add IServiceProvider register function
* refactor: 更新 RegisterProvider 方法
* revert: 更新 Uploads 文档
2021-11-10 06:17:30 +00:00
Argo
447ea5d5c1 !2060 feat(#I4HNZ4): redesign TabItemOption logic
* refactor: 增加 Scope 容器支持
* feat: 增加异常捕获
* style: 微调 Tab 示例样式
* revert: IsActive 默认值 false
* fix: 修复 Tab 组件与 TabItemTextOptions 联动关系
* Merge branch 'main' into pack
* chore:  bump version  to 5.18.5-beta04
* refactor: 更新 Provider 获取方法
* refactor: 重构代码
* chore: 重新整理目录结构
2021-11-10 05:38:48 +00:00
Argo
9898a352fd !2059 doc(#I4HMJU): redesign sample project structure
* Merge branch 'main' into dev-samples
* refactor: 增加 JSInvoke 错误保护
* doc: 更正 Uploads 文档
* !2057 doc(#I4HM2N):add english translation of uploads page
* chore:  bump version  to 5.18.5-beta04
* refactor: 更新 Provider 获取方法
* refactor: 重构代码
* chore: 重新整理目录结构
2021-11-10 03:07:36 +00:00
Nine
7ddd283ed5 !2057 doc(#I4HM2N):add english translation of uploads page
* Merge branch 'main' of https://gitee.com/LongbowEnterprise/BootstrapBl…
* doc: 添加 uploads 页面资源文件
2021-11-10 02:23:36 +00:00
Argo
93b830c4e5 !2056 doc(#I4HL38): redesign project structure
* refactor: 重构目录结构与文件分布
* refactor: 移除 ISelectedItem
* test: 更新单元测试
* refactor: 更新辅助类名
2021-11-09 15:49:25 +00:00
Argo
a48626f754 !2055 fix(#I4HL1T): TooltipComponentBase add variant prevent throw warning when dispose
* fix: 修复 Tooltip 基类报警问题
2021-11-09 15:12:07 +00:00
Argo
9bdf236e09 !2053 feat(#I4HK6D): add BootstrapBlazorRoot component
* refactor: 移动 Dialog 等容器标签到 Root 内
* Merge branch 'main' into dev-services
* refactor: 增加 BootstrapBlazorRoot 组件
* chore: update CI scripts
* chore: bump version 5.18.5-preview01
* test: 更新测试用例
* refactor: 重构静态容器辅助类
* Merge branch 'main' into dev-services
* chore: 更新 sdk 包
* chore: 重构 ServiceProvider 扩展类
* doc: 重构示例文档
* wip: temp commit
* feat: 移除 ServiceProviderHelper 依赖
2021-11-09 12:25:28 +00:00
Argo
cc8f240c62 !2054 fix(#I4HKKA): CacheManager throw exception cause by same class name in different namespace
* chore: bump verson to  5.18.5-beta02
* fix: 修复相同类在不同命名空间下报错问题
2021-11-09 11:31:13 +00:00
Argo
bc0254ddde !2052 chore(#I4HJYM): update CI&CD scripts
* chore: update CI scripts
2021-11-09 09:54:46 +00:00
Argo
930b83d669 !2051 test(#I4HHRI): add BlazorTestContext for unit test
* Merge branch 'main' into dev-test
* test: 更新单元测试
* test: 单元测试增加资源文件
* chore: 重构项目结构
* test: update test
2021-11-09 06:44:29 +00:00
Argo
e0d6d08550 !2050 doc(#I4HHMQ): remove exclamation mark
* chore: 更新项目框架
* chore: 框架更新到 net6.0
* doc: 格式化文档
* chore: 更新项目框架 net6.0
* chore: 配置 sdk 版本为 net6
* doc: 更新属性注释
* refactor: 更新 Startup 文件
2021-11-09 06:31:36 +00:00
Nine
3f8449b598 !2049 doc(#I4HDMD):add english translation of transfers page
* doc: 修改 Blcok 为 DemoBlock
* Merge branch 'main' of https://gitee.com/LongbowEnterprise/BootstrapBl…
* doc: 添加 Transfers 页面资源文件
2021-11-09 03:12:36 +00:00
Argo
f067670b2e !2048 test(#I4HEV0): update test for Block component
* test:  更新单元测试
* doc: 重构示例文档
2021-11-08 16:57:02 +00:00
Argo
a824709505 !2047 feat(#I4HEOM): integrate Authentication into Block component
* doc: 更新示例
* feat: 集成权限
* doc: 更新示例
* feat: 增加 Name 参数
2021-11-08 13:45:59 +00:00
Argo-Azure
f85bd6ffe1 chore: update project sdk version to net5.0 2021-11-08 18:48:32 +08:00
Argo
bd55e9741a !2046 fix(#I4HCWJ): resolve IpAddress script throw exception issue
* chore: bump version to 5.18.4
* fix: 修复 IP 脚本报错问题
2021-11-08 08:45:39 +00:00
Argo
8e8e2d67b6 !2045 feat(#I4HCGX): add framework target net6.0
* chore: 项目指定 net6
* Merge branch 'main' into dev-net6
* chore: 更新框架到 6.0
* chore: update framework to net5/net6
2021-11-08 08:06:04 +00:00
Argo
9dac2bcb0f !2044 feat(#I4HCF3): add Authorized/NotAuthorized template on Block component
* doc: 更新参数说明
* doc: 增加示例
* feat: 增加允许条件与未允许条件模板
2021-11-08 08:02:10 +00:00
Argo
abe19ad3ac !2043 refactor(#I4H6M6): add try catch for ObjectDisposedException
* refactor: 增加异常捕获
2021-11-08 07:27:19 +00:00
Argo
2011063e2c !2042 feat(#I4HAJH): add Block component
* doc: 更新文档
* test: 更新单元测试
* doc: 更新标签
* Merge branch 'main' into dev-condition-block
* refactor: 单元测试等更改为 Block
* refactor: ConditionBlock 更改为 Block
* refactor: rename Block to DemoBlock
* doc: 增加示例二
* feat: 增加模拟认证服务
* doc: 增加示例一
* test: 增加单元测试
* doc: 增加菜单
* chore: 增加 ConditionBlock 资源文件
* feat: 增加 ConditionBlock 组件
2021-11-08 07:21:30 +00:00
Nine
95791c757e !2041 doc(#I4HAJ3):add english translation of toggles page
* doc: 添加 Toggles 页面资源文件
2021-11-08 04:08:08 +00:00
Argo
3f8d10062e !2040 revert(#I4H6ST): revert EditTemplateContext update
* chore: bump version 5.18.3
* Revert "!2031 feat(#I4H4LX): redesign EditTemplate context"
2021-11-07 01:39:36 +00:00
Argo
23c111766c !2039 fix(#I4H5L2): display text not update after client the menu item on AutoFill component
* chore: bump version to 5.18.1
* fix: 点击候选项后文本框内值不变问题
2021-11-06 05:05:59 +00:00
Argo
6d94c96460 !2038 doc(#I4H5KW): update sample code for BootstrapInput of IsSelectAllTextOnFocus parameter
* doc: 更新子类自动获取焦点后全选示例
* doc: 更新资源文件
* doc: 更新注释文档
* refactor: 重构 IsSelectAllTextOnFocus 参数实现逻辑
2021-11-06 05:01:16 +00:00
ReaZhuang
c293925136 !2037 feat(#I4H5J0): add IsSelectAllTextOnFocus parameter on BootstrapInput component
* Add BootStrapInput IsSelectAllTextOnFocus
2021-11-06 04:26:04 +00:00
Argo
1d2ff04aa2 !2035 feat(#I4H5IQ): add await keyword on jsinvoke method
* feat: JSInvoke 增加 await 关键字
* refactor: 增加对 tooltip 方法调用参数检查
2021-11-06 03:55:58 +00:00
Argo
a6313b0fa8 !2033 feat(#I4H52A): rename CustomFiler callback on AutoFill component
* doc: 增加参数文档
* doc: 更新注释
* refactor: 移除默认值 false
* doc: 增加自定义过滤方法
* doc: 更新自定义过滤条件示例
* refactor: 更改 CustomFilter 为 OnCustomFilter 风格统一
* feat: 更改 CustomFilter 委托签名
2021-11-06 02:09:36 +00:00
Nine
77c1f297cb !2032 doc(#I4H4TX):add english translation of textareas page
* Merge branch 'main' of https://gitee.com/LongbowEnterprise/BootstrapBl…
* doc: 添加 Textaeras 资源文件
2021-11-05 16:12:02 +00:00
Argo
44027840ad !2031 feat(#I4H4LX): redesign EditTemplate context
* Merge branch 'main' into dev-table-edittemplate
* chore: bump version to 5.18.1-beta01
* doc: 更新 EditTemplate 示例
* feat: EditTemplate 上下文更改
2021-11-05 13:08:19 +00:00
Argo
3eec75074a !2030 doc(#I4H4LO): update doc for TableColumn
* doc: 整理属性文档
* doc: 属性排序
2021-11-05 13:00:43 +00:00
Argo
914acedebf !2029 fix(#I4GVEC): missing localization resource in current assembly
* chore: bump version to 5.18.1
* fix: 对当前程序集资源文件未搜索导致需要额外配置
2021-11-04 06:53:33 +00:00
Argo-Tianyi
699162d42f chore: bump version to 5.18.0 2021-11-05 09:52:22 +08:00
Argo
7a26860151 !2028 test(#I4GSU1): add unit test framework
* test: refactor unit test
* test: rename unit  test class
* test: 增加 DisplayName 单元测试
* test: 增加单元测试框架
* test: 移动测试类到 Utils 目录
* test: 升级测试框架 sdk
2021-11-04 01:48:48 +00:00
Argo
1627f26d32 !2027 doc(#I4GST8): update footer style for page layout
* doc: 微调示例网站样式
2021-11-04 01:46:03 +00:00
Argo
ba3c792bfe !2026 feat(#I4GSP6): add ValueChangedFields on ValidateForm component
* refactor: 重命名属性
* doc: 增加字段变化示例
* feat: ValidateForm 增加 GetValueChagnedFieldCollection 方法
2021-11-04 01:41:28 +00:00
Argo
20bced393f !2025 feat(#I4GSNV): remove ISelectedItem constraint from AutoFill component
* doc: 更新 AutoFill  示例
* refactor: 重命名 GetDisplayText  委托方法
* feat: remove the ISelectedItem interface codition
2021-11-04 01:32:45 +00:00
Argo
54958cd643 !2024 fix(#I4GSLY): inline TableColumn Editable not over write the value set by AutoGenerateClassAttribute
* fix: 修复 editable 设置 true  时失效问题
2021-11-04 01:26:56 +00:00
Argo
d2ed97eb3b !2023 fix(#I4GRZ8): editable not work in 5.17.3 version
* chore: bump version 5.17.5
* fix: 修复 Table 组件自动生成标签 Editable = false 时仍显示编辑框内问题
2021-11-03 13:17:14 +00:00
Argo
4eb1be6e16 !2022 fix(#I4GO6N): display attribute not work in dynamic class
* fix: 修复动态类设置 DisplayNameAttribute 失效问题
2021-11-03 04:59:17 +00:00
Argo
03160e13c5 !2021 fix(#I4GO4O): retrieve DisplayName failed in 5.17.3
* chore: bump version to 5.17.4
* fix: 紧急修复获取表头失败问题
2021-11-03 04:36:10 +00:00
Argo
73466d0d2a !2020 doc(#I4GN5Q): move Foo into Data folder
* refactor: remove Foo into Data folder
* doc: remove unused namespace
2021-11-03 02:34:33 +00:00
Argo-Tianyi
0898f6f9ed feat: support custome environment setting 2021-11-03 09:40:01 +08:00
Argo-Tianyi
f467bf150f refactor: add TableSettings default value 2021-11-03 08:08:31 +08:00
Argo-Tianyi
a7ac67f570 refactor: move AddMemoryCache into BootstrapBlazor from WebSiteService 2021-11-03 08:07:40 +08:00
Argo
f612ce47dc !2019 feat(#I4GLNK): web client component remove AuthenticationStateProvider reference
* chore: bump version to 5.17.3
* doc: WebClient 示例移除 UserName
* feat: WebClient 移除对授权的依赖
2021-11-02 11:58:11 +00:00
Argo
dbcc58fb6f !2018 feat(#I4GKU8): add IsOnlyRenderActiveTab on layout
* feat: Layout 组件公开 IsOnlyRenderActiveTab 属性
2021-11-02 11:54:49 +00:00
Argo
bf620b1637 !2017 feat(#I4GHFS): add print service
* refactor: 增加判断条件
* doc: 增加打印服务调用示例
* feat: 增加 PrintService 打印服务
* refactor: 更改脚本名称格式化文档
* refactor: 更改资源文件类
2021-11-02 03:39:02 +00:00
Argo
ab6a6caf8a !2016 fix(#I4GGM7): resolve cache key conflict issue
* fix: 增加缓存键值冲突
2021-11-02 02:31:35 +00:00
Argo
0143cefbdc !2015 feat(#I4GF5X): redesign cache key in CacheManager class prevent conflict
* fix: 更新 Key 防止冲突
* doc: 移除注释
* test: 更新单元测试
* feat: 增加日志模块
* fix: 修复 ConvertToString 私有类报异常问题
2021-11-01 12:49:43 +00:00
Argo
91600334a6 !2014 doc(#I4GDD5): resolve cache key conflict issue
* fix: 修复缓存冲突问题
2021-11-01 08:26:31 +00:00
Argo
c3cda0cd06 !2013 doc(#I4GC7J): make cache key in one file
* refactor: 梳理缓存键值
2021-11-01 06:42:58 +00:00
Argo
6efbb51376 !2012 refactor(#I4GBEX): remove App dependence of Shared project
* refactor: 重构代码
* refactor: 增加 wasm 多语言支持
* refactor: 重构 wasm 模型下服务注册代码
* refactor: 重构 ssr 模式下服务
* doc: 重构代码
* refactor: 重构服务以及注册方法
* refactor: 重命名代码片段服务
* refactor: 重命名 Version 服务
* doc: 格式化文档
* feat: Shared 工程移除对 App 框架依赖
2021-11-01 04:41:17 +00:00
Argo
b19dfd62a3 !2011 feat(#I4GALB): move the cache method into CacheManager class
* doc: 格式化文档
* refactor: 移动缓存相关方法到 CacheManager 中
* refactor: 移动缓存方法到 CacheManger 类中
* refactor: 更改版本号服务为 Scoped
* refactor: Shared 工程增加 CacheMangerHelper 辅助类
* refactor: 重命名函数名称
* doc: 重构 Footers 示例代码
* refactor: 重构 Json 多语言缓存
* Merge branch 'main' into dev-cache-mem
* refactor: 更新调试状态下缓存时长
* refactor: 设计排序方法
* feat:  设计 SetPropertyValue 方法
* refactor: 重构代码使用 Utility.GetPropertyValue 方法
* refactor: 整理 GetPropertyValue 方法
* refactor: 重构组件方法代码复用
* refactor: 重构缓存键值
* refactor: 移除 FormatLambdaCache 缓存
* refactor:  rename InfoName to Name
* feat: 重构缓存
* feat: 示例代码重构缓存
* feat: 多选框重构缓存
* feat: 统一使用 GetNameSortFunc 静态方法
* feat: Foo 增加 GetTitle 静态方法
* doc: 修复动态 Excel 链接错误
* feat: 增加 CacheManager 辅助类
* feat: 统一使用 MemoryCache 缓存类
2021-11-01 02:59:19 +00:00
Argo
b04cde1da0 !2010 doc(#I4G814): sample code support localization
* fix: 代码片段增加多语言支持
* fix: 增加多语言支持
* refactor: 增加 Foo 资源文件实例
* refactor: 格式化文档统一 Localizer
* refactor: 实现资源文件的翻译工作
* fix: 修复网页被卡死 bug
* feat: 增加报错信息输出
* style: 增加正在加载样式
* wip: 临时提交有 bug 未修复
* refactor: 增加资源文件帮助类
* feat: 增加本地调试示例代码读取本地文件
* chore: 增加框架依赖
* refactor: 移动扩展方法到 Extensions 目录
* feat: 替换Localizer文本
2021-10-31 04:02:02 +00:00
Argo
1848579d6e !2009 doc(#I4G7LV): add name anchor for Table sample code 2021-10-30 17:22:47 +00:00
Argo
8f79fd47f7 !2008 feat(#I4FY7A): add IsCollapsed parameter on Layout component
* feat: 增加 IsCollapsed 参数
2021-10-30 09:02:47 +00:00
Argo
d9d70b1657 !2007 fix(#I4G5B9): resolve SearchTemplate not work in Table RenderSearch method
* chore: bump version to 5.17.2
* fix: 修复 IsSearch 更改导致级联参数丢失问题
2021-10-30 08:46:24 +00:00
Argo
d7d883d7a9 !2006 feat(#I4FZAP): add cache for sample code
* feat: 增加获取网络通讯缓存逻辑
* chore: 增加缓存依赖包
* fix: 更新判断条件
* feat: 增加缓存服务
2021-10-29 17:10:09 +00:00
Argo
ac70160b1e !2005 doc(#I4FZ9K): add name parameter on Block component 2021-10-29 15:45:12 +00:00
Argo
f05210f75b !2004 doc(#I4FYL2): block support title and name get the code snippet
* doc: 增加 Name 标识
* doc: 增加 Name 标识
* feat: Block 兼容 Title 与 Name
* feat: Block 代码片段使用 Name 截取
2021-10-29 10:11:14 +00:00
Argo-Tianyi
08faef45e5 style: update css for code snippet 2021-10-29 16:37:11 +08:00
Argo
471b89ef15 !2002 doc(#I4FXHX): move component in pages to Components folder
* refactor: 移动 Shared 工程内组件到独立文件加内
2021-10-29 08:26:36 +00:00
Argo
7a8a639529 !2001 doc(#I4FWXS): add collapse/expand code snippet
* script: 增加脚本
* feat: 增加代码片段收起展开功能
2021-10-29 07:36:22 +00:00
Argo
5b9f583939 !2000 doc(#I4FVWB): refactor get code snippets logic
* doc: 替换资源文件 Blcok 单词拼写错误
* Merge branch 'main' into dev-block
* doc: 更改 AutoFill 下方空白区域
* refactor: 重构代码
* refactor: 优化截取算法
* refactor: 格式化文档
* refactor: 重构 ComponentLayout 模板页
* 把代码段放入了Block。
2021-10-29 06:42:17 +00:00
william19941994
2b7a95d522 !1999 feat(#I4FVPT): add code snippets under the sample code
* 把代码段放入了Block。
2021-10-29 05:30:40 +00:00
Argo-Tianyi
96acb119ba doc: update readme doc 2021-10-28 20:10:29 +08:00
Argo
d4794893f7 !1998 feat(#I4FT75): validate support metadata attribute
* feat: 获取标签与属性支持 Metadata 标签
2021-10-28 12:05:25 +00:00
Argo
ee0f4dc272 !1997 feat(#I4FPF4): remove Height default value if set ScrollMode to Virtual
* doc: 更新虚拟滚动示例增加样式
* feat: Table 虚拟滚动移除高度默认值增加强制渲染为 Table
2021-10-28 03:42:50 +00:00
Argo
09e1261587 !1996 feat(#I4FOSV): add CssClass parameter on TabItem 2021-10-28 11:14:51 +08:00
Argo-Tianyi
93c818c87c chore: bump version to 5.17.0 2021-10-28 09:17:40 +08:00
Argo
1a873d096d !1995 fix(#I4FLJB): component be set IsDisabled in SearchDialog when set IsReadonlyWhenAdd to true
* feat: CreateComponentByFieldType 方法增加 search 内部使用
* feat: IsEditable 方法增加 search 参数默认 false
* refactor: SearchDialog 增加级联传参 IsSearch
* refactor: EditorForm 参数 IsSearch 更改为级联传参
* refactor: 格式化代码
2021-10-27 14:08:58 +00:00
Conway
f62193313b !1989 Pagnation中PaginationBase.cs的修改建议
* update src/BootstrapBlazor/Components/Pagination/PaginationBase.cs.
2021-10-27 06:35:32 +00:00
Argo
6bc3600eac !1994 fix(#I4FHIW): click close button on Message throw exception
* fix: 修复点击关闭按钮报错问题
2021-10-26 11:58:22 +00:00
Argo
c48dcb321d !1993 refactor(#I4FHJF): rename Template to DescriptionTemplate
* refactor: 重命名 Template
2021-10-26 11:41:40 +00:00
ReaZhuang
ab8fff3a68 !1992 feat(#I4F7TB): add Template on Step component
* Add Step Templete
2021-10-26 11:17:21 +00:00
Nine
ab5d99fef3 !1991 doc(#I4FD9P): add english translation of switchs page
* Merge branch 'main' of https://gitee.com/LongbowEnterprise/BootstrapBl…
* doc: 添加 Switchs 页面资源文件
2021-10-26 02:25:01 +00:00
Argo
fa705a171c !1990 feat(#I4F1HS): add ShowFixedButtonTextInDropdown parameter on Dropdown
* doc: 更新示例文档
* doc: 更新示例
* feat: 增加 ShowFixedButtonTextInDropdown 参数
* chore: 更新资源文件拼写错误
2021-10-26 01:53:53 +00:00
Argo
1d08554166 !1988 doc(#I4F9LU): update sample doc for table virtualize function
* chore: bump version to 5.16.4
* doc: 更新示例文档
* chore: 更新打包脚本
* fix: 修复 IP 组件异常处理逻辑
2021-10-25 07:32:47 +00:00
Argo
bc0224738c !1987 fix(#I4F97Y): table component compile throw exception in net5 sdk
* doc: 增加 New 标签到菜单
* refactor: 消除 net5 编译报错问题
2021-10-25 06:55:27 +00:00
Argo
c5e47dc360 !1986 feat(#I4F78M): add ScrollMode parameter on Table component
* doc: 更新示例
* doc: 增加行虚拟滚动示例
* feat: 增加虚拟化技术
* feat: 增加 StartIndex 参数
* chore: 增加 is-ph 样式
* feat: 增加 StartIndex  参数
* refactor: 更改 TotalCount 数据类型为 int
* feat: 增加虚拟滚动参数
* feat: 增加虚拟滚动枚举
* doc: 增加虚拟滚动菜单
* doc: 增加虚拟滚动菜单资源文件
* doc: 增加 Ip 菜单资源文件
* feat: 增加 IsVirtulaizer 参数
* feat: 增加 IP 地址解析功能
2021-10-25 02:28:19 +00:00
Argo
757289cd14 !1985 fix(#I4F5ZF): not shown the value on initialize
* feat: 增加 IP 切换逻辑代码
2021-10-24 11:50:15 +00:00
Argo
c6e04d883b !1984 feat(#I4F4AJ): ToEnumDisplayName support customer attribute on dynamic assembly
* feat: ToEnumDisplayName 支持标签
2021-10-23 07:05:32 +00:00
Argo
8af2ee22c5 !1983 fix(#I4F3XH): table on excel mode can't add or edit item
* doc:  更新示例移除删除按钮
* chore: update bundle script
* chore:  bump version to  5.16.3
* fix: 修复 Excel 模式新建不刷新 UI 问题
* feat: 增加 Excel 模式编辑功能
2021-10-23 03:36:27 +00:00
Argo
f13da171c5 !1982 feat(#I4F3WR): enum extensions method ToEnumDisplayName support dynamic assembly
* feat: ToEnumDisplayName 增加对动态类保护
2021-10-23 03:30:25 +00:00
Argo
2d9a05fcd9 !1981 feat(#I4F1PE): dynamic object support add and edit
* chore: bump version to 5.16.2
* feat: Table 组件支持动态类型的新建与编辑
* refactor: 兼容动态程序集防止内存溢出
* feat: 增加扩展方法 SetValue
* feat: 增加对动态类型新建支持
2021-10-22 08:32:10 +00:00
Argo
99ff7cb839 !1980 feat(#I4F073): add disabled style for Ip component
* style: 更新 IP 组件禁用样式
2021-10-22 05:24:02 +00:00
Argo
faae65ced7 !1979 feat(#I4EYZP): add IsFixedButtonText on Dropdown Component
* chore: bump version to 5.16.1
* doc: 更新示例增加固定按钮文本
* feat: 增加 IsFixedButtonText 属性
2021-10-22 03:45:08 +00:00
Argo
e43d77b912 !1978 fix(#I4EZL4): set Lookup not work on bool type table column
* fix: 修复 bool 数据类型设置 Lookup 无效问题
* fix: 修复 ReadonlyWhenAdd 未生效问题
* doc: 更新文档
2021-10-22 03:07:31 +00:00
Argo
5d963dea47 !1977 feat(#I4EYMG): IPAddress component support class attribute in razor
* feat: 兼容 class 标签
2021-10-22 01:22:29 +00:00
Argo
6d2578e3b1 !1976 doc(#I4EY2R): update doc remove static keyword
* doc: 更改分支名称
* doc: 移除 static 关键字
2021-10-22 01:20:36 +00:00
Argo-Tianyi
561ec1dcfd chore: bump version to 5.16.0 2021-10-21 11:41:52 +08:00
Argo
d34f895974 !1975 feat(#I4EPJX): dynamic object support enum type generated by EnumBuilder
* refactor: GetItemValue support DynamicObject
2021-10-21 03:39:44 +00:00
Argo
846f174fe7 !1974 fix(#I4EP2W): resolve select all button not reset Value parameter
* chore: bump version to 5.15.9
* doc: 更新示例
* fix: 修复全选反选取消等按钮未设置值问题
2021-10-20 10:42:01 +00:00
Argo
c180bf19e0 !1973 fix(#I4ELUI): resolve throw exception RadioList
* chore: bump version to 5.15.8
* doc: 更新 RadioList 示例
* refactor: 更新 RadioList 代码修复报错问题
* refactor: 重构 InitValue 方法兼容 RadioList
2021-10-20 05:55:45 +00:00
Argo-Tianyi
1ac5c0adaa style: add arrow style 2021-10-19 21:23:34 +08:00
Argo
c8a154053f !1972 fix(#I4ECM7): resolve CheckboxList can't selected item
* chore: bump version to 5.15.7
* doc: 更新 CheckboxList 示例
* refactor: 格式化文档
* doc: 微调描述文字居中
2021-10-19 12:38:05 +00:00
Nine
5704c05948 !1971 doc(#I4EH15): add english translation of sliders page
* doc: 添加 Slider 页面资源文件
2021-10-19 07:03:52 +00:00
Argo
b9b918c9a6 !1970 fix(#I4EEHA): add item use InCell mode ItemChangeType always is Update
* chore: bump version to 5.15.6
* refactor: 精简代码
* refactor: 精简代码
* refactor: 移除 EventCallback
* refactor: 更新代码移除 EventCallback  包裹
* refactor: 重构 ExpandDetailRow 方法
* refactor: 重构 Cancel 方法
* refactor: 重构 Delete 方法
* refactor: 重构 OnCheck 方法
* fix: 修复 InCell 模式传递  ItemChangedType 错误问题
2021-10-19 06:52:47 +00:00
Argo
0e1b7e1ba2 !1969 feat(#I4EGGN): required star on form label support customer validate rules
* feat:  表单标签前置星号支持 RequiredAttribute 自定义验证
* chore: 移除 test  分支触发条件
* refactor: 格式化文档精简代码
2021-10-19 06:05:28 +00:00
Argo
5ab89ad941 !1968 fix(#I4EG6G): update form-label style compatible Row in Dialog
* style:  更新 form-label 样式兼容弹窗中 form-inline 样式
* chore: update scripts
2021-10-19 05:23:07 +00:00
Nine
de209c910d !1967 doc(#I4EG2O): add english translation of select page
* doc: 添加 Select 页面资源文件
2021-10-19 13:20:51 +08:00
Argo
08d03e5a6f !1966 doc(#I4E9WE): update EditorDialog doc for Editable
* doc: update desc for sample code
2021-10-18 07:17:34 +00:00
Argo
81906945ce !1965 feat(#I4E6WQ): top search support ShowSearchText parameter
* chore: bump version to 5.15.5
* doc: 更新示例增加模糊查询
* style: 更新样式
* doc: 格式化示例文档
* style: 更新样式
* feat: 增加搜索收缩时显示全局搜索框功能
2021-10-18 05:50:28 +00:00
Argo
f9a8831190 !1964 feat(#I4E8YL): add ValidateRule parameter on ValidateBase
* refactor: 优化内部验证逻辑
* refactor: 重命名 FormItemValidator
* refactor: 不公开内部三个 Validator
* doc: 增加 EditorItem 示例
* feat: IEditorItem 接口增加 ValidateRules 属性
* doc:  增加自定义表单示例
* feat: 增加自定义验证类
* refactor: 公开现有验证类
* refactor: 重构 ValidateBase 基类开放 ValidateRules 接口
2021-10-18 04:05:21 +00:00
Argo
fa1d8341e2 !1963 feat(#I4E5SZ): add collapse feature on Table search
* feat: 搜索栏增加收缩功能
* feat: 增加 Search 栏自动收起功能
2021-10-17 16:38:15 +00:00
Argo-Tianyi
11586af8d5 scripts: update scripts for fix column on table component 2021-10-17 20:47:17 +08:00
Argo
0d89c8f300 !1962 feat(#I4E5QZ): support fix extension buttons column
* chore: bump version to 5.15.4
* doc: 增加固定首列操作列示例
* feat: 适配操作列在列头效果
* style: 增加 Header 圆角效果
* doc: 更新固定表头示例
* style: 更新 Table 固定表头样式
* fix: 修复 Table 组件固定操作列不起作用问题
2021-10-17 11:49:54 +00:00
Argo
a01ff18bf2 !1961 fix(#I4E5S3): use item.GetType instead of typeof(TItem)
* chore: bump version to 5.15.3
* refactor: 更改获取类型方法支持 object 类型
2021-10-17 06:30:17 +00:00
Argo
1e4b4c4621 !1960 fix(#I4E5Z8): throw TaskCancelException when set IsAutoRefresh to true
* test: 增加 TaskCancelException 测试用例
* feat: 增加 Table 组件自动刷新销毁保护
2021-10-17 06:07:51 +00:00
Argo
a9aa4fb10a !1959 feat(#I4E5YB): redesign component that implement BootstrapInput
* feat: 增加 placeholder 必填项
* doc: 更新 FloatingLabels 文档
* refactor: 重构 Type
* refacotor: 移除 FloatingLabel 的 LabelText 属性改用 DisplayText
* refactor: 移除 BootstrapPassword 组件 razor 文件
* doc: 移除密码框重复示例
* chore: 移除重复项
* chore: 格式化资源文件
* refactor: 移除 ShowCleanIcon 方法
* refactor: 重构格式化到基类中
* refactor: 重构 BootstrapInput 子类
* feat: 增加 BootstrapInputBase 基类
* doc: 更新 ShowToastAfterSaveOrDeleteModel 文档
2021-10-17 05:35:35 +00:00
Argo
5c78839db5 !1958 feat(#I4E5P0): add ShowToastAfterSaveOrDeleteModel parameter
* chore: bump version to 5.15.2
* feat: add ShowToastAfterSaveOrDeleteModel 参数
2021-10-17 02:01:06 +00:00
Argo
abaa4eb0da !1957 feat(#I4E4ZI): add IpAddress component
* chore: bump version to 5.15.1
* feat: 增加超过三位保护
* chore: update css/scripts bundle file
* doc: 更新组件示例
* feat: 增加 Ip 地址组件功能
* chore: 增加 Ip 地址脚本
* refactor: 增加 IpAddress 组件
* Merge remote-tracking branch 'origin/pack' into dev-ip
* Merge branch 'dev' into dev-ip
* chore: set preview to true
* chore: update checkout version
* chore: install preview sdk
* chore: update sdk version
* chore: update pack script
* feat: 增加 Ip 测试网页
2021-10-16 08:54:22 +00:00
Argo
3240c8845b !1956 doc(#I4E3LM): update style for the download button on website
* doc: 更新下载按钮样式
2021-10-15 14:35:29 +00:00
Argo
016571051a !1954 feat(#I4DWB5): add IsVertical parameter on Listview component
* refactor: 移除默认 false
* feat: ListView 增加 IsVertical 属性
* refactor: 移除基类
* doc: 消除警告信息
2021-10-14 08:55:06 +00:00
Argo-Tianyi
8f3de3a858 chore: bump version to 5.15.0 2021-10-14 09:01:43 +08:00
Argo
73d5fa58bd !1953 feat(#I4DS7J): add SetDisabled/SetLabel/SetValue method on Validate component
* feat: add SetDisabled SetLabel SetValue instance method on ValidateBase
2021-10-14 01:01:01 +00:00
Argo
47068008f4 !1952 refactor(#I4DS6A): move TabItemOptionAttribute into attributes folder
* doc: 移动 TabItemOptionAttribute 到 Attributes 文件夹
2021-10-14 00:48:02 +00:00
Argo
0779c91cd1 !1951 feat(#I4DAZF): add DefaultUrl on Tab component
* refactor: 移除 ! 语法
* doc: 更新后台模拟器示例
* chore: 更新 Layouts 属性文档
* chore: 更新资源文件
* feat: layout 组件增加 TabDefaultUrl 参数
* refactor: 更新 Tab 设置默认页逻辑
* feat: 增加默认导航页支持
2021-10-13 03:53:17 +00:00
Argo
e38b86b646 !1950 feat(#I4DB5S): add TabItemOptionAttribute
* doc: 增加 TabItemOptionAttribute 示例
* doc: 更新 Tabs 文档
* feat: 增加 TabItemOptionAttribute 属性参数
2021-10-13 00:55:30 +00:00
admin
ee10eccbc2 allow query string in tab component.
(cherry picked from commit 726d5b3477dc4ceb4a83a9246e720ffc5c234525)
2021-10-12 13:22:41 +08:00
Argo
4119e2eb06 !1949 feat(#I4DHTK): add HeaderTemplate on Table component
* Merge branch 'dev' into dev-table
* chore: remove readme.md
* chore: bump version to 5.14.8
* feat: Table 组件支持 Header 模板
* feat: ITableColumn 增加 HeaderTemplate 模板
2021-10-12 04:31:07 +00:00
Argo
cd2017bd0b !1948 feat(#I4DHSQ): update auto render EditTemplate in Dialog component logic
* chore: bump version to 5.14.7
* feat: 更新 EditTemplate 自动更新逻辑
* feat: 增加 Component 参数用于指定弹窗容器
* Revert "fix: 移除通过级联传参刷新 Dialog 方式代码"
* Merge branch 'dev' into dev-dialog
* fix: 移除通过级联传参刷新 Dialog 方式代码
2021-10-12 04:27:45 +00:00
Argo
ac506cdc83 !1947 doc(#I4DHJ7): update document for Tab component
* doc: 增加 Tabs 文档
* chore: 更新资源文件
2021-10-12 04:22:50 +00:00
Argo
71589a2a5a !1946 feat(#I4DC4I): redesign QRCode component
* refactor: 重构代码
* refactor: 重构二维码生成逻辑
* refactor: 增加首次加载渲染
* doc: 更新示例代码片段
* doc: 更新示例描述
* doc: 重构 Messages 示例
* chore: bump version 5.15.6
* doc: 更新 QRCode 示例
* feat: 重构 QRCode 组件
2021-10-11 07:50:21 +00:00
Argo
d2c5bb85ac !1945 feat(#I4DBV7): property cache cause OutOfMemoryException
* feat: 禁止缓存 Dynamic 类防止内存溢出
2021-10-11 07:08:47 +00:00
Argo
8fffd92f5f !1944 feat(#I4D8DL): model support MedadataTypeAttribute on TableColumn component
* chore: bump version to 5.14.5
* feat: 读取模型标签支持 MedadataType 方式
2021-10-10 16:08:30 +00:00
Argo
7142550a90 !1943 doc(#I4D2EE): update CustomFilter component compatible set ShowFilterHeader to true
* chore: bump version to 5.14.4
* doc: 更新自定义过滤组件支持 ShowFilterHeader 参数
2021-10-10 04:16:51 +00:00
Argo
5dfa332fda !1942 doc(#I4D6PA): update document for AutoFill component
* doc: update AutoFill sample code
2021-10-09 16:30:58 +00:00
Argo
73b19dc7c5 !1941 feat(#I4D6OZ): add AutoFill component
* Merge remote-tracking branch 'origin/dev' into dev-autofill
* doc: 增加自动填充示例
* refactor: 更新样式
* doc: 增加自动填充菜单
* feat: 增加 AutoFill 组件
* refactor: 更新文档注释
2021-10-09 16:20:48 +00:00
Argo
ed3370720d !1940 fix(#I4D6OP): not work set Editable to false in AutoGenerateColumnAttribute on EditorForm component
* fix: 修复 EditorForm 自动生成时 Editable 不生效问题
2021-10-09 16:15:41 +00:00
Argo
2f72a12ddc !1939 feat(#I4D34X): add ISelectedItem interface
* refactor: 更新 ISelectedItem 接口
2021-10-09 05:35:22 +00:00
Argo
1f37c9b51b !1938 feat(#I4D32D): add has-footer class for set ShowFooter to true on Layout component
* style: 更新固定标签页样式
* feat: 增加是否显示 Footer 样式
2021-10-09 05:25:09 +00:00
Nine
9c740dd2c0 !1937 doc(#I4D2Q3): add english translation of rate page
* doc: 添加 Rates 页面资源文件
* refactor: 添加不可为空特性
2021-10-09 03:54:37 +00:00
Nine
76a514b30e !1936 doc(#I4D1G2): add english translation of radios page
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 Radios 页面资源文件
2021-10-09 01:49:31 +00:00
Argo-Tianyi
2399dc41bb chore: add readme.md 2021-10-09 00:07:02 +08:00
ReaZhuang
7ce022f1bf !1934 feat(#I4D0GK): add ISelectedItem interface
* update src/BootstrapBlazor/Components/BaseComponents/SelectedItem.cs.
2021-10-08 23:28:29 +08:00
Argo
fee3f3bc99 !1935 fix(#I4D0GG): EditTemplate of TableColumn don't update when put Dialog on MainLayout
* feat:  重构 EditTemplate 内部更新机制
2021-10-08 15:22:16 +00:00
Nine
6253109734 !1933 doc(#I4CZZV): add english translation of mutiselects page
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 mutiselects 页面资源文件
2021-10-08 12:40:25 +00:00
Argo
b6b661cfa8 !1932 doc(#I4CXWE): update switch theme logic
* doc: 更新切换主题逻辑
* refactor: 增加内置主题
2021-10-08 07:18:24 +00:00
Nine
27b9ae7b09 !1931 doc(#I4CU67): add english translation of markdowns page
* doc: 添加 Markdowns 页面资源文件
2021-10-07 10:35:53 +00:00
Argo
8c0073775e !1930 feat(#I4CTTT): EditTemplate support auto render UI
* chore: bump version to 5.14.2
* feat: 增加级联传参
2021-10-07 08:50:09 +00:00
Nine
1bba70e56d !1929 doc(#I4CTGK): add english translation of inputnumbers page
* doc: 添加 InputNumbers 页面资源文件
2021-10-07 05:03:12 +00:00
Argo
fdaf3b5819 !1928 feat(#I4CT4D): auto generate table column add CssClass support
* chore: bump version to 5.14.1
* fix: 增加对 CssClass 属性支持
2021-10-07 02:17:51 +00:00
Argo
b6fb9a5cc4 !1927 fix(#I4CT2F): Transfer sample code throw exception
* fix: SetItemClass Null 引用问题
2021-10-07 01:47:32 +00:00
Argo-Tianyi
e487993188 chore: bump version to 5.14.0 2021-10-07 00:12:02 +08:00
Argo
dadca5b529 !1926 feat(#I4CSUM): add OnSetItemClass parameter on Transfer
* doc: 更新 OnSetItemClass 示例
* feat: 增加 OnSetItemClass 回调参数
2021-10-06 16:09:46 +00:00
Argo
f30c87deec !1925 feat(#I4CSU9): add IsKeyboard on Table component
* feat: Table 组件开放弹窗是否支持键盘参数
2021-10-06 16:04:37 +00:00
Nine
9e15e08cf6 !1924 doc(#I4CSQ7): add english translation of inputs page
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 Inputs 页面资源文件
2021-10-06 15:27:23 +00:00
Argo
2e3f0cba0a !1923 feat(#I4CSI9): add OnAfterRenderCallback parameter on Table
* chore: bump version to 5.13.2
* doc: 增加 OnAfterRenderCallback 回调说明文档
* feat: 增加参数
* chore: 重命名项目文件夹
* chore: 更新项目文件夹
* feat: 增加 OnAfterRenderCallback 回调
2021-10-06 14:19:10 +00:00
Nine
1a21cf1513 !1922 doc(#I4CSB4): add english translation of floatinglabels page
* doc: 修改错误键名
* doc: 添加 FloatingLabel 资源文件
* doc: 添加 Floatinglabels 页面资源文件
2021-10-06 13:24:01 +00:00
Argo
74c9df7157 !1921 fix(#I4CQ87): throw exception when call WebClientService
* fix: 修复参数错误
2021-10-05 05:07:06 +00:00
Argo
a71c918cea !1920 feat(#I4CQ7U): add Engine property on WebClientService
* doc: 更新客户端信息示例
* feat: 增加 Engine 属性
* chore: 更新客户端引擎信息
2021-10-05 04:29:58 +00:00
Nine
034f5efa5b !1919 doc(#I4CQ7H): add enlish translation of editorforms page
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 EditorForms 页面资源文件
2021-10-05 04:15:52 +00:00
Argo
e0073bd0f4 !1918 refactor(#I4CQ5G): remove Microsoft.AspNetCore.Http dependence
* doc: 更新客户端信息示例文档
* refactor: 未登录用户赋值 null
* doc: 更新地址位置文档
* chore: add BootstrapBlazor.Middleware dependence
* chore: remove test branch
* chore: update ci script
* feat: 增加 BootstrapBlazor.Middleware 中间件
* refactor: 组件库移除 UseBootstrapBlazor 中间件
2021-10-05 03:19:09 +00:00
Argo
6fe263eed7 !1917 doc(#I4CPTH): update QQ group status
* doc: 更新 QQ 群状态
* doc: 更新 QQ 群状态
2021-10-04 12:35:01 +00:00
Argo
cbe5746501 !1916 fix(#I4COQ4): ValidateForm SetError method support UnaryExpression
* fix: 自定义设置错误支持 UnaryExpression
2021-10-04 12:28:45 +00:00
Nine
4a92f96e62 !1913 doc(#I4COPH): add english translation of editor page
* doc: 添加 editor 组件资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 Editors 示例资源文件
2021-10-02 14:21:28 +00:00
Argo
a41f005df5 !1915 feat(#I4COGU): add TableSettings for BootstrapBlazorOption
* chore: bump version to 5.13.1
* style: 移除最小宽度样式
* feat: 增加 Table 全局配置类
2021-10-02 06:57:45 +00:00
bdbox
b79b8cf1dd doc(#I4CNYL): update document for Card
* 说明信息不对,在第78行。应该是对success的说明,实际上写成了secondary
2021-10-01 17:07:01 +08:00
Argo
089bc38563 !1912 feat(#I4CLZX): table excel mode support keyboard event
* doc: 增加键盘支持示例
* feat: Table 组件 Excel 模式增加对键盘支持
2021-09-30 07:29:57 +00:00
Argo-Tianyi
b5654c97aa chore: bump version to 5.13.0 2021-09-30 10:28:03 +08:00
Argo
af4e944132 !1911 fix(#I4CK56): filter popup window should be follow scroll
* feat: 增加 excel 模式脚本调用
* fix: 修复有 toolbar 时 filter 弹窗高度不正确问题
2021-09-30 02:18:13 +00:00
Argo-Tianyi
f108ad5aaa fix: use Func<Task> segment 2021-09-28 15:31:42 +08:00
Argo
54dabc7eda !1910 feat(#I4A2L8): add IsReadonlyWhenAdd/Edit parameter on IEditorItem interface
* chore: update bundle style
* Merge remote-tracking branch 'origin/dev' into dev-table
* chore: bump version to 5.12.7
* refactor: 完善继承 IEditorItem 实现类属性
* refactor: 移动只读属性到 IEditorItem 接口
* refactor: ITableColumn 增加新建只读与编辑只读属性
* style: 微调 Search 样式
2021-09-28 07:09:08 +00:00
Argo
31e9b2599c !1909 feat(#I4C8GT): update style for accordion component
* style: 微调手风琴按钮样式
2021-09-28 04:56:21 +00:00
Argo
6649f12895 !1908 fix(#I4C2OZ): make Filter window show in right place when set SearchMode to Top
* chore: bump version to 5.12.6
* doc: 更新 Search 示例
* fix: 修复 Filter 弹窗高度位置问题
2021-09-27 11:38:51 +00:00
Argo
716ef1e699 !1907 feat(#I4C5L3): add --bs-border-color variant
* revert: checkbox style
* Revert "!1904 doc(#I4C1FN): add new sample code for TableColumn"
* style: 微调 checkbox 选中样式
2021-09-27 11:17:03 +00:00
Argo
2f88cd0844 !1906 feat(#I4BGUS): redesign Transfer logic
* doc: 更新示例代码
* refactor: 重构 Transfer 逻辑
2021-09-27 10:47:16 +00:00
Argo
0e814d1150 !1905 feat(#I4C1O2): add IsSearch parameter on EditorForm component
* chore: bump version to 5.12.5
* feat: SearchDialog 更新 IsSearch 参数
* feat: Table 组件搜索表单使用 IsSearch 参数
* refactor: 移除 placeholder 参数
* feat: EditorForm 增加 IsSearch 用于适配 Table 组件中用于 Search 使用
2021-09-27 05:15:55 +00:00
Argo
ef7c61ce64 !1904 doc(#I4C1FN): add new sample code for TableColumn
* Merge branch 'dev' into dev-table
* style: 增加 bs-bg-disabled 变量颜色
* style: 设置示例样式
* refactor: 设置教育列宽度
* feat: 内置 disabled 样式
* refactor: Foo 增加静态方法
* refactor: 微调日期宽度
* refactor: 获取头像链接重构为 Foo 静态方法
* doc: 增加 Table 组件实战示例
* style: Table 组件兼容 Progress 组件
2021-09-27 03:10:54 +00:00
Argo
c5c81b8e50 !1903 feat(#I4BZER): table cell compatible Progress component
* style: 设置示例样式
* refactor: 设置教育列宽度
* feat: 内置 disabled 样式
* refactor: Foo 增加静态方法
* refactor: 微调日期宽度
* refactor: 获取头像链接重构为 Foo 静态方法
* doc: 增加 Table 组件实战示例
* style: Table 组件兼容 Progress 组件
2021-09-26 13:43:54 +00:00
Argo
dcdf029473 !1902 fix(#I4BYML): can't close the ModalDialog use @ref.Close method when write code in razor
* fix: 修复 razor 文件中写好 Modal 二次关闭不响应问题
2021-09-26 10:31:13 +00:00
Argo
bda30dd6c8 !1901 fix(#I4BVG7): menu text wrap in layout when set IsCollapsed to true
* chore: bump version to 5.12.4
* doc: 更新带侧边栏的菜单示例
* style: 更新 Menu 菜单收缩样式
2021-09-26 05:26:39 +00:00
Argo
a79da2013a !1900 chore(#I4BU04): add clean method before bundle css and scripts
* chore: add env variant
* chore: 增加 dotnet bundle 支持
* chore: 增加 --no-color 参数
* chore: 更新脚本增加 clean 命令
* chore: update sdks for 2.1 and 5.0
* chore: update sdks
* chore: update sdks
* chore: update netcore sdk 5.0.x
* chore: update netcore 5.0 sdk
* chore: update netcore 2.1 sdk
* chore: 增加 netcore 2.1 环境安装
* chore: 更新 build action 脚本
* chore: 增加打包脚本运行条件
2021-09-26 02:10:21 +00:00
Argo
cc0e9ac356 !1899 feat(#I4BSY9): add MaintainAspectRatio option on Chart component
* chore: bump version to 5.3.0
* feat: 增加宽高比锁定可配置功能
2021-09-25 14:56:15 +00:00
Argo
fec2dfda43 !1898 feat(#I4BT08): Display support convert bool data type to Switch component
* feat: 生成 Display 组件支持 Switch
* fix: 修复 RenderCell 逻辑增加对 Template 支持
* refactor: 更改 Data 为 Items
2021-09-25 13:59:53 +00:00
Nine
5095964297 !1897 feat(#I4BS60): add a method that get current item of tab
* refactor: 重命名 GetActiveTab 方法
* refactor: 重构 获取当前 tab 方法
* doc: 添加 tab 页面资源文件
* feat: Tab 组件添加获得当前 Tab 的方法
2021-09-25 13:52:30 +00:00
Argo
acee455500 !1896 feat(#I4BONF): filter row support fix column feature
* feat: 过滤行支持固定列功能
* feat: 下拉框增加阴影效果
2021-09-24 16:37:12 +00:00
Argo
3b71e26ace !1895 fix(#I4BR3T): resolve Align not work
* doc: 更新对齐示例
* feat: 修复对齐不生效问题
* feat: 修复 bool 类型默认渲染
2021-09-24 15:22:50 +00:00
Argo
983d3267eb !1894 feat(#I4BR2C): add auto calc table body height function if set IsFixedHeader to true
* chore: 更新打包文件
* feat: 表格容器增加 table-fixed 样式
* doc: 更新表格编辑示例
* feat: 更新固定表头样式逻辑
* feat: Height 参数设定整个组件高度
* chore: 更新固定表头样式与脚本
2021-09-24 14:41:14 +00:00
Argo
0de7205e6e !1893 feat(#I4BPWM): DateTimeRange support only choose Star/End value
* fix: 修复 DateTimeRanger 双向绑定问题
* refactor: 重构 Tabs 字体与滚动条样式
* feat: DateTimeRange 组件支持单选时间自动补全
2021-09-24 09:28:02 +00:00
Argo
1dbac568c6 !1892 feat(#I4BKZ5): add IsFixedHeader parameter on Table component
* chore: bump version to 5.12.1
* refactor: 重构代码提高可读性
* doc:  更新自适应高度示例
* chore:  增加自适应高度算法与样式
* doc: 更新固定表头示例
* feat: 固定表头滚动条更改为自定义样式
* chore: 更新样式与脚本固定表头滚动条更改为自定义
* doc: 更新固定表头示例
* feat: 增加 IsFixedHeader 属性
* refactor: 移除 Obsolete 标签属性
* doc: 更新 ModalDialog 文档注释
2021-09-23 16:13:57 +00:00
Argo
c15a534ca5 !1891 feat(#I4BKZ2): source code link compatible Anchor link
* feat: 增加 hash 识别
2021-09-23 16:09:29 +00:00
Nine
ba2d890289 !1890 feat(#I4BHKQ): add OnValueChanged callback on DateTimeRange component
* fix: 修复 Value 改变时,不触发 OnValueChanged 事件
2021-09-23 09:03:51 +00:00
Argo-Tianyi
e4aed3f152 chore: bump version to 5.12.0 2021-09-23 10:11:50 +08:00
Argo
8ccfa19f50 !1889 fix(#I4BEZN): set the range of DateTime on Initilize
* Merge branch 'dev' into dev-css
* feat: 增加默认文化参数
* fix: 修复 Range 组件未初始化值
* style: 更新 check 样式
2021-09-23 01:09:04 +00:00
Argo
90f5da333c !1888 feat(#I4BEXP): add DefaultCultureInfo parameter on BootstrapBlazorOption
* feat: 增加默认文化参数
2021-09-23 00:57:27 +00:00
Argo
802cc66bc3 !1887 feat(#I4BEXB): add no wrap class for TreeItem
* style: 微调 Tree 长度不折行样式
2021-09-23 00:54:56 +00:00
Argo
840f709320 !1886 fix(#I49905): update Menu component resolve throw exception when set OnClick callback
* chore: bump version to 5.11.4-beta01
* fix: 修复 wasm 模式下有 onclick 导致异常问题
2021-09-22 07:20:31 +00:00
Argo
63d5662343 !1885 feat(#I4BAQS): add max-width style for the label of checkbox
* chore: bump version to 5.11.3
* style: 增加 Checkbox 组件 Label 最大宽度
2021-09-22 06:26:25 +00:00
Argo
b7c40407fc !1884 feat(#I4BB1T): add IsEditable extension method for IEditorItem
* feat: 增加扩展方法 IsEditable 统一组件渲染不可编辑逻辑
2021-09-22 06:06:25 +00:00
Nine
51889debbc !1883 doc(#I49PL9): add english translation of datetimepickers page
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 DateTimePickers 页面资源文件
2021-09-22 06:04:04 +00:00
Argo
21937b4ef0 !1882 feat(#I4BAMI): add max height css for MultiSelect component
* style: 更新 MultiSelect 项目过多时自动出现滚动条样式
2021-09-22 04:55:54 +00:00
Argo
04ce42d8b3 !1881 doc(#I4B7W9): update multiple header Sort/Filter sample code
* chore: bump version to 5.11.2
* doc: 更新多表头排序筛选示例
2021-09-21 16:07:42 +00:00
Argo
0334f766c2 !1880 feat(#I4B7W5): set Switch is the default component of bool data type
* doc: 更新示例移除 ComponentType 设置
* refactor: bool 数据类型内置渲染更改为 Switch
2021-09-21 16:03:38 +00:00
Argo-Tianyi
49c487c1df chore: update HandwrittenPage route link 2021-09-21 14:58:25 +08:00
Argo-Tianyi
b898cc6424 doc: update HandWrittenPage link address 2021-09-21 14:52:28 +08:00
Argo-Tianyi
3bb75e68cc chore: add vedio link for excel mode of Table 2021-09-21 14:34:59 +08:00
Argo
6b7ca93002 !1879 fix(#I4B6X8): make the Title of website correct
* chore: 更新组件个数
* doc: 更新 Excel 示例文档
* fix: 修复标题栏未显示问题
2021-09-21 06:20:35 +00:00
Argo
b7bc255049 !1878 feat(#I4B642): Table support OnSaveAsync get data on Excel mode
* doc: 增加 Excel 使用文档
* doc: 更新注释
* doc: 更新示例
* doc: 更新资源文件
* feat: 增加单元格保存逻辑
* feat: 重构 CreateComponentByFieldType 方法
* style: 更新对齐样式
2021-09-21 00:15:42 +08:00
Argo
5b82b5b58e !1877 refactor(#I4B63R): make extensions project can compile
* Revert "chore: bump version to 5.2.1"
* chore: bump version to 5.2.1
* chore: 更新依赖组件
* refactor: 增加缺失的命名空间
* doc: 增加注释
* test: rename Data to Items
2021-09-20 16:02:01 +00:00
Argo-Tianyi
20a9dd4443 chore: upgrade build environment version to 5.0.401 2021-09-21 00:35:55 +08:00
Argo
4774e725b3 !1876 feat(#I4B5NZ): Table support OnQueryAsync get data on Excel mode
* refactor: 微调 SelectedRows 逻辑
* doc: 更新菜单文字
* feat: 增加 Excel 模式删除逻辑
* doc: 更新示例文档
* feat: 更新 Excel 模式下新建按钮逻辑
* doc: 移除 Switch 居中示例
* style: 设置 Excel 模式下 Swtich 默认居中样式
* feat: 新建行数据时增加对 DBNull 处理
* Merge branch 'dev' into dev-select
* doc: Excel 示例拆分为
* feat: Data 更改为 Items
* feat: 更新动态创建组件内部使用 Data 逻辑
* feat: DataTableDynamicContext 完善内部通知机制
* style: 更新样式
* doc: 增加 OnQueryAsync 获取数据源 Excel 模式示例
* feat: 正常绑定模型 Excel 模式增加新建逻辑
* feat: 对齐方式增加 text 支持
* refactor: RowItemsCache 更改为 List
* feat: 只读与不可编辑单元格渲染成 Display 组件
* feat: Excel 模式下禁用斑马线特效
* style: 微调 select 单元格内充满效果
2021-09-20 10:48:49 +00:00
Argo
187293ea26 !1875 feat(#I4B5EO): rename Data to Items on IEditorItem interface
* feat: Data 更改为 Items
2021-09-20 06:22:13 +00:00
Argo
2143376547 !1874 fix(#I4ASEJ): no trigger OnCellRender when set AutoGenerateColumn to true
* fix: 修复开启自动生成列后不触发 OnCellRender 回调问题
2021-09-20 04:10:32 +00:00
Argo
1dc200d9da !1873 feat(#I4B2A3): render enum data type to Select component
* refactor: 精简逻辑
* doc: 增加 bool enum 数据类型示例
* refactor: 恢复代码保持原生逻辑
* style: 微调 Select 在单元格中样式
2021-09-19 05:27:35 +00:00
Argo
09f778fb95 !1872 feat(#I4B23E): render bool data type to Switch component
* doc: 增加设置居中示例
* style: 更新 Switch 样式
* feat: 支持 bool 类型自动转成 Switch
* style: 更新单元格 Switch 样式
2021-09-19 04:38:17 +00:00
Argo
4448baf5cd !1871 feat(#I4B1YM): add Excel mode on Table component
* style: 微调单元格中日历框图标样式
* fix: 增加新建设置默认值逻辑
* feat: 增加新建按钮逻辑
* feat: Row 增加 Column 判断
* style: 微调 UI 与增加注释
* feat: 优化删除性能
* doc: 更新 Excel 示例
* refactor:  改造 Foo 生成方法
* style: 更新 Excel 单元格样式
* feat: 更新单元格渲染逻辑
* refactor:  格式化 文档
* feat: 更新单元格变化逻辑
* feat: 重构 DeleteAsync 方法适配 Excel
* feat: 改造 OnAddAsync  适配 Excel
* feat: 更新增加行后清空已选择逻辑
* chore: bump version to 5.11.2-beta05
* fix: 修复对已删除行保护问题
* chore: bump version to  5.11.2-beta04
* feat:  增加 OnAfterAddRow 和 OnAfterDeleteRow
* chore: bump version to 5.11.2-beta03
* refactor: 使用 Ignore 参数设定主键列不显示
* refactor:  精简代码
* chore: bump version to 5.11.2-beta02
* feat: 更新 DataTableDynamic 动态类型逻辑对 Row 赋值
* chore: bump version to 5.11.2-beta01
* refactor: 更新 Excel 模式支持 动态类型
* doc: 增加 Excel 菜单
* Merge branch 'dev' into dev-excel
* feat: 增加 Excel 模式保存逻辑
* feat: 增加单元格编辑回调委托方法
* style: 调整复选框位置
* style: 微调 Excel 模式下 Switch 组件样式
* style: 标签使用变量进行计算
* style: set Switch vertical center
* style: remove width/display setting
* Merge branch 'dev' into dev-excel
* style: 尝试使用相对定位显示工具栏
* Merge branch 'dev' into dev-excel
* refactor: 本地化注入服务更改为 internal
* doc: 更新地址列使用多行文本框示例
* feat: 增加单元格编辑样式
* doc: 增加 IsExcel 示例
* feat: 增加 IsExcel 模式
2021-09-19 04:07:57 +00:00
Argo
afda3d442c !1870 fix(#I4AEMR): update the transfer panel height when set ShowSearch to true
* chore: 更新打包文件
* Merge branch 'dev' into dev-doc
* chore: bump version to 5.11.1
* doc: 增加锚点链接
* doc: 更新示例文档
* feat: 修复 Transfer 带搜索栏时高度不够问题
* style: 微调布局
2021-09-17 07:33:22 +00:00
Argo
bd6fe4b303 !1869 feat(#I4AIEI): remove mask for Print
* doc: Dialog 中增加锚点链接
* doc: 更新打印文档
* chore: 经验样式与脚本移除遮罩
2021-09-17 06:49:10 +00:00
Argo
4f373ba44b !1868 feat(#I4AET9): PrintButton support in Modal Footer
* scripts: 打印脚本适应 footer
* doc: 更新示例
* scripts: 增加 footer 兼容代码
* feat: 打印按钮支持本页打印
* scripts: 增加弹窗打印逻辑判断
* chore: 更新脚本打印预览时增加遮罩
* doc: 更新弹窗组件打印示例
* doc: 更新打印组件示例
* feat: 增加 PrintButton 功能
* chore: 更新打印组件资源文件
* refactor: 更新打印参数名称
2021-09-16 13:51:49 +00:00
Argo-Tianyi
39d565eab5 chore: bump version to 5.11.0 2021-09-16 17:42:12 +08:00
Nine
cd29c83e4c !1866 fix(#I4ADRK): fix the Transfer similar item moving issue together
* fix: 修复 Transfer 相似项问题
2021-09-16 09:41:50 +00:00
alex_zou
21ad5e5085 !1865 feat(#I4A2K0): add AnchorLink component
* chore: 增加 bb_copyText 方法
* refactor: 移除拷贝代码
* chore: 增加菜单资源文件
* doc: 增加菜单
* feat: 增加自定义样式支持
* style: 微调 Block 组件内 AnchorLink 组件样式
* feat: 增加 AnchorLink 组件
* refactor: 增加无 Hash 保护
* style: 更新 h4 样式
* feat: 增加 Name 锚点名称
* style: 更新样式
* feat: 移除路由改用 JS 实现锚点导航
* revert: 撤销更改改用 js 对路径进行拷贝
* feat: 改造 Block 组件增加文档链接功能
* Merge branch 'dev' into dev-friendly-link-document
* Shared工程添加DocumentLink组件, 整合进Block组件提供点击复制示例链接功能
* issues/I4A2K0 演示文档页面内例子加入[锚点 Anchor]和路由参数连结, 以方便查找文档定位和转发给群友
2021-09-15 16:06:45 +00:00
Xiao
63d5a7718a fix: update OnBeforeSelectedItemChange logic 2021-09-15 13:39:10 +08:00
Argo
0ed87f0830 !1864 fix(#I4A2I2): resolve table throw exception in EditForm mode
* fix: 修复 EditForm 表单模式报异常问题
* chore: 更新 net6 到 RC1
2021-09-15 02:51:19 +00:00
Argo
c24b46cfd7 !1863 feat(#I4A2IW): update OnSaveAsync in extensions lib
* chore: bump version to 5.2.0
* feat: 扩展组件库更新 OnSaveAsync 方法
* test: 修复单元测试
* doc: 更新文档
* doc: 更新 Rows 资源文件
2021-09-14 16:45:34 +00:00
Argo
6a56174d37 !1862 feat(#I4A2IT): add print button on dialog header
* doc: 更新侧边栏菜单状态
* doc: 增加带打印按钮弹窗示例
* style: 更新样式与脚本
* feat: 弹窗增加打印按钮
* feat: 更新 Modal 资源文件
2021-09-14 16:41:39 +00:00
Argo
d15fb011bb !1860 fix(#I49905): resolve throw exception when refresh browser in wasm mode
* chore: bump version to 5.10.8
* fix: 修复二级菜单 wasm 模式下刷新时报错问题
2021-09-14 12:40:19 +00:00
alex_zou
72439d4d85 !1861 fix(#I4A22A): editor item support editable parameter
* update src/BootstrapBlazor/Components/EditorForm/EditorForm.razor.cs.
* update src/BootstrapBlazor/Components/EditorForm/EditorForm.razor.cs.
2021-09-14 12:33:46 +00:00
Argo
0fafb377b3 !1858 feat(#I49VTU): add IsAutoAddNullItem parameter on RadioList component
* doc: 更新绑定可为空类型自动添加空值示例
* feat: 绑定可为空枚举类型时增加自动添加空值参数
2021-09-14 06:35:39 +00:00
Argo
4a278fdb67 !1857 doc(#I49XU4): add TreeItem Template sample code
* doc: 增加 Template 示例
* refactor: ComponentType 更改为私有属性
* refactor: 更新 Title 可为空设置
* refactor: 使用模式匹配
2021-09-14 06:20:03 +00:00
Conway
1f738f7f1c !1856 feat(#I49XU4): remove IsExpanded check
* update src/BootstrapBlazor/Components/Tree/Tree.razor.cs.
2021-09-14 05:48:31 +00:00
Nine
a1ecf140ea !1854 doc(#I49PKV): add english translation of colorpicker page
* Merge branch 'dev' into dev-en-colorpicker
* fix: 修复资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 ColorPicker 资源文件
2021-09-14 05:46:14 +00:00
Nine
90266cf89b !1855 feat(#I49XG1): add a select with confirmation
* chore: bump version to 5.10.7
* doc: 调整参数顺序
* doc: 更新带拦截的 Select 示例
* feat: 增加 SwalFooter 等功能
* refactor: SwalOption 移除 Title 默认值
* feat: Select 添加对话框功能
2021-09-14 03:25:29 +00:00
Nine
0f1c748ccd !1853 doc(#I49PKD): add english translation of checkboxlist page
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 CheckboxList 资源文件
* fix:修复资源文件
* Merge branches 'dev' and 'dev-en-checkbox' of https://gitee.com/Longbo…
* doc: 添加 Checkboxs 页面资源文件
2021-09-13 11:45:35 +00:00
Argo-Tianyi
6fac8f706f style: set Switch vertical center 2021-09-13 12:59:04 +08:00
Argo-Tianyi
a27593436d style: remove width/display setting 2021-09-13 12:58:57 +08:00
Argo
8661b98e78 !1852 feat(#I49OMD): add InvisibleColumns parameter on DataTableDynamicContext
* chore: bump version to 5.10.6
* feat: 增加不显示列设置
2021-09-12 12:17:29 +00:00
Argo
07b1fe369a !1851 refactor(#I48ZA5): improve performance for BootstrapInout
* refactor: 优化 AutoComplete Search 组件性能
* feat: 增加 BootstrapInput.js
2021-09-12 05:09:35 +00:00
Argo
9e71490792 !1850 feat(#I497FD): update OnDelete callback on Upload component
* doc: 更新示例代码
* feat: Upload 组件 OnDelete 签名变更
2021-09-12 03:52:34 +00:00
Argo
e7878d9757 !1849 fix(#I48PF6): resolve not shown the preview Image on CardUpload component
* chore: 增加忽略规则
* feat: 增加创建文件夹逻辑
* fix: 修复 IsImage 函数
* doc: update doc for TreeItem
2021-09-12 03:35:10 +00:00
Nine
737717a39d !1848 doc(#I49NQ8): add english translation of checkboxs page
* fix:修复资源文件
* Merge branches 'dev' and 'dev-en-checkbox' of https://gitee.com/Longbo…
* doc: 添加 Checkboxs 页面资源文件
2021-09-12 02:48:57 +00:00
Nine
d144927f93 !1846 doc(#I49NKY): add english translation of cascaders page
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 Cascader 页面资源文件
2021-09-11 16:06:13 +00:00
Argo
f00b1bfa8e !1847 feat(#I49B4N): add CascadingTree extension method for Tree
* chore: bump version to 5.10.5
* style: Tree 适配 motronic 样式
* refactor: 移除不使用的代码
* feat: 增加树状结构数据级联层次关系
* style: 更新复选框样式
* refactor: 移除过期属性
2021-09-11 16:04:06 +00:00
Argo
3f5abd71ab !1845 feat(#I49MV2): add Template on TreeItem
* feat: TreeItem 增加 Template 模板设置
2021-09-11 13:23:13 +00:00
Argo
31f0082237 !1844 feat(#I49N2N): add IsExtendButtonsInRowHeader
* doc: 更新示例
* refactor: 重命名 IsFrontExtendButtons
* chore: bump version to 5.10.4
* doc: 更新示例
* feat: Table 增加 IsFrontExtendButtons 参数用于指定扩展按钮在前面
2021-09-11 09:41:24 +00:00
Argo
4e1abf9eb5 !1843 fix(#I49N2F): remove Color parameter on BootstrapInputNumber
* fix: 修复 Color 多处定义问题
2021-09-11 09:40:02 +00:00
Argo
3e28361ea1 !1842 feat(#I49MG6): add Color parameter on BootstrapInput
* chore: bump version to 5.10.3
* doc: 文本框增加颜色示例
* feat: 密码框增加颜色设置
* feat: input 组件增加颜色
2021-09-11 07:11:07 +00:00
Argo
1f08fe3d02 refactor: set the IsFixedTab default value to false 2021-09-11 01:11:22 +08:00
Argo
29d9bf7831 doc: add fixed tab sample code 2021-09-11 01:05:37 +08:00
Argo
0ce8d80dc5 style: layout-page compatible motronic theme 2021-09-11 00:52:55 +08:00
Argo
21b3e56038 !1841 feat(#I49LBH): add PlaceHolder parameter on IEditorItem
* chore: bump version 5.10.3-beta01
* feat: 增加对 PlaceHolder 空字符串支持
* feat: 增加 PlaceHolder 参数
2021-09-10 16:17:00 +00:00
Argo
614dfb3a2c !1840 doc(#I49L5B): add document for switch Theme
* chore: bump version to 5.10.2
* chore: 增加主题文档
2021-09-10 13:27:32 +00:00
Argo
bc3ec341e2 chore: set motronic default theme for website 2021-09-10 20:53:55 +08:00
Argo
58942ac6c6 !1839 fix(#I49G5I): reset the SelectRows after Delete items
* doc: 更新 SelectedRows 双向绑定示例
* fix: 删除操作时更新 SelectedRows
2021-09-10 20:34:22 +08:00
Argo
54ccf51dcf !1838 feat(#I48JU5): add ItemChangedType at Table OnnSaveAsync
* doc: 根据最新 Save 更新示例文档
* refactor: 数据服务增加 ItemChangedType 参数
* feat: 更新 SaveAsync 增加 ChangedType 参数逻辑
2021-09-10 20:34:22 +08:00
Argo
5352448ae1 !1837 style(#I49L01): motronic theme build-in component lib
* chore: 更新主题设置
* doc: 增加站点样式
* chore: 集成 motronic 主题到组件库中
2021-09-10 11:48:29 +00:00
Argo
559ad960e5 !1836 fix(#I49HRN): RadioList compatible form inline
* style: radiolist 组件适配 form-inline 模式
2021-09-10 08:52:02 +00:00
Nine
c07e87d2b7 !1835 doc(#I49H7A): add english translation of buttons page
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* !1834 feat(#I49FU3): add set on ITableColumn Template
* chore: bump version to 5.10.0
* !1833 feat(#I49D47): add ShowColumns/HiddenColumns on DataTableDynamicContext
* doc: 添加 Buttons 页面资源文件
* doc: Buttons 页面添加资源文件
2021-09-10 04:10:03 +00:00
Argo
57dbfc74c7 !1834 feat(#I49FU3): add set on ITableColumn Template
* chore: bump version to 5.10.1
* feat: ITableColumn Template 参数恢复可写
* revert: QueryData 逻辑
2021-09-09 15:16:18 +00:00
Argo-Tianyi
82e2fee403 chore: bump version to 5.10.0 2021-09-09 15:21:05 +08:00
Argo
30a8d10b7e !1833 feat(#I49D47): add ShowColumns/HiddenColumns on DataTableDynamicContext
* feat: 动态类型增加主键属性
* fix: 修复 OnChanged 方法无 Add 类型问题
2021-09-09 07:19:03 +00:00
Argo
6c93d9f9d5 !1832 refactor(#I48JU5): add Obsolete keyword on OnSaveAsync method
* refactor: 增加 OnSaveAsync 提示信息
* chore: bump version to 5.9.6
* fix: 设置主键不显示不编辑
2021-09-08 13:15:28 +00:00
Argo-Tianyi
ebe942c93a revert: remove the Visible condition in ShowDialog 2021-09-08 16:40:29 +08:00
Argo
e90e31c5ad !1831 feat(#I45H80): improve HandWritten component
* chore: 更新打包样式文件
* Merge remote-tracking branch 'origin/dev' into dev-hw
* Merge branch 'dev' into dev-hw
* feat: 更新脚本准备支持 PC 端签名
* doc: 更新示例
* doc: 更新资源文件
* feat: 更新手写组件逻辑
* refactor: 移动签名组件脚本
* fix: 修复 GoTop 未生效问题
2021-09-08 08:06:52 +00:00
Argo
9ce52b2abd !1830 feat(#I497DN): use variant of border radius on Tab component
* refactor: Tab 组件圆角设置使用变量
* doc: 删除文档
* fix: 修复设置 Editable=false 时仍然显示问题
* test: 更新单元测试
* chore: 更新打包脚本
* Merge branch 'dev' into dev-tab
* chore: 网站样式 圆角设置使用统一变量
2021-09-08 08:03:23 +00:00
Argo
bb90962d37 !1829 feat(#I4968J): add OnChanged callback on DataTableDynamicObjectConetxt
* chore: bump version to 5.9.4
* doc: 移除 CRUD 代码
* feat: 缓存主键
* feat: 弹窗数据增加可见性过滤
* feat: 增加动态类型数据主键
* refactor: 增加重载方法
* refactor: 获取 AutoGnerateColumn 属性时支持继承
* feat: 增加动态类型内置 CURD
* feat: 增加 OnChanged 事件
* refactor: IDynamciObjectContext 增加 CURD 虚方法
2021-09-08 06:23:15 +00:00
Nine
12ab4cfa4c !1828 doc(#I493LC): add english translation of fullscreens page
* doc: 添加 FullScreens 页面资源文件
2021-09-08 01:45:31 +00:00
Nine
bd3631e9b9 !1827 doc(#I4936W): add english translation of autocompletes page
* doc: 添加 AutoCompletes  示例资源文件
2021-09-07 12:46:09 +00:00
Argo
bd4bb54ad7 !1826 feat(#I491KP): add Print component
* doc: 增加打印组件示例
* doc: 增加打印资源
* feat: 增加打印服务
* Merge branch 'dev' into dev-print
* feat: 重构服务增加报错信息
* Merge branch 'dev' into dev-print
* Merge branch 'dev' into dev-print
* feat: 增加打印组件
2021-09-07 08:44:12 +00:00
Argo
9816bbbfa2 !1825 feat(#I4915J): redesign PopupService show error message when not place element on page
* doc: 更新资源文件增加 PopoverConfirm 元素报错信息
* refactor: 调整弹窗组件继承关系
* doc: 更新资源文件
* feat: 重构服务增加报错信息
2021-09-07 08:09:21 +00:00
Argo
ca51e69b82 !1824 feat(#I48ZT0): add BootstrapServiceBase class
* refactor: 重构 BootstrapServiceBase 服务
2021-09-07 06:20:29 +00:00
Argo-Tianyi
36dcd1dabf doc: update tips for Layout component 2021-09-07 13:20:41 +08:00
Argo
d834d2ae00 !1823 feat(#I48Z8I): add OnEnterAsync OnEscAsync parameter on BootstrapInput component
* chore: bump version to 5.9.3
* doc: 增加按钮回调委托示例
* feat: 重构 OnKeyUp 方法
* feat: Input 增加 OnEnterAsync OnEscAsync 回调
2021-09-07 04:56:57 +00:00
Argo
a6ef45f381 !1822 feat(#I48YD1): add IsAutoFocus parameter on BootstrapInput component
* chore: bump version to 5.9.2
* doc: 更新打包脚本
* doc: 搜索组件增加自动获取焦点功能
* doc: 更新 Input 文档
* feat: Input 增加 IsAutoFocus 属性
2021-09-07 02:51:53 +00:00
alex_zou
30caa995eb !1821 feat(#I48WXD): add FullScreen component
* Merge branch 'dev' into dev-alex-FullScreen
* doc: 更新全屏示例
* feat: 增加显示图标切换功能
* feat: 增加重载方法
* chore: 更新全屏示例
* chore: 更新打包脚本
* feat: 增加 FullScreenButton 按钮
* feat: 增加命名空间
* doc: 增加全屏组件示例文档
* doc: 增加全屏组件侧边栏菜单
* chore: 更新打包文件
* doc: 增加全屏组件菜单资源文件
* doc: 更新资源文件
* style: 更改全屏组件背景色为白色
* feat: 改造 FullScreen 组件
* feat: 增加全屏服务
* refactor: 更新 fullscreen 脚本
* 全屏模式组件
2021-09-06 14:46:41 +00:00
Nine
6d5c7fdf47 !1820 doc(#I48WN0): add english translation of page
* doc: 添加 Tabs 页面资源文件
2021-09-06 13:24:34 +00:00
Nine
944256848f !1819 doc(#I48UF9): add english translation of steps page
* doc: 添加 Steps 页面资源文件
2021-09-06 08:02:24 +00:00
Nine
c668cdf4af !1818 doc(#I48SLJ): add english translation of paginations page
* doc: 添加 paginations 页面资源文件
2021-09-06 03:53:47 +00:00
alex_zou
7193fc89b9 !1817 doc(#I48R6Z): update ColorPicker component thumbnail
* Merge branch 'dev' into dev-ColorPicker
* New ColorPicker component Thumbnail
2021-09-06 02:15:29 +00:00
alex_zou
47688dbdac !1807 fixed(#I45H80): refactor HandWrite component
* chore: remove unused scripts
* 优化组件以及示例
* Merge branch 'dev-hw' of https://gitee.com/alexchow/BootstrapBlazor into dev-hw
* Update launchSettings.json
* update src/BootstrapBlazor.Server/Properties/launchSettings.json.
* 手写签名 Handwritten 组件国际化以及优化示例
* Merge branch 'dev' into dev-hw
* Merge remote-tracking branch 'Remote/dev' into dev-hw
* Merge branch 'dev' into dev-hw
* Fix Handwritten手写组件必须页面滚动到顶,否则手写失败  https://gitee.com/LongbowEnterpris…
* up
2021-09-06 02:11:48 +00:00
bdbox
a8e0dd2d77 !1815 doc(#I48PWI):update IWebHostEnviroment to IWebHostEnvironment
* update src/BootstrapBlazor.Shared/Pages/Samples/Uploads.razor.
2021-09-05 12:21:00 +00:00
bdbox
93498b303f !1816 doc(#I48PWI): update PreUrl to PrevUrl
* update src/BootstrapBlazor.Shared/Pages/Samples/Uploads.razor.
2021-09-05 12:19:06 +00:00
Alex Chow
e94ca41be9 !1814 feat(#I48OSE): improve performance for AutoComplete component
* chore: 更新打包脚本
* feat: 更新键盘上下按钮显示候选项逻辑
* refactor: 移除组件服务器端设置 active 样式逻辑
* refactor: 优化滚动条 active 样式脚本
* revert: 移除 launchUrl 配置
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* Optimize AutoComplete component UI performance
2021-09-04 22:41:24 +08:00
Nine
87ca0ccf66 !1813 docs(#I48NMF): add english translation of navs page
* doc: add resource file of  Navspage
2021-09-04 12:56:54 +00:00
Nine
15c8f4ca53 !1812 refactor(#I48N1Q): merge resource file of menus page
* refactor: 合并 menus 资源文件
2021-09-04 12:19:37 +00:00
Argo
c12494d0d2 !1809 feat(#I48LZ0): update border radius for Dropdown
* chore: update bundle css
* Merge branch 'dev' into dev-dropdown
* style: dropdown 调整 border-radius
2021-09-03 16:14:27 +00:00
Argo
f3d65f836a !1808 feat(#I48LYO): update transfer style compatible Checkbox
* style: transfer 适配
2021-09-03 16:10:56 +00:00
Argo
f2c10e0bec !1806 doc(#I48KK0): border radius setting use variant
* style: 下拉框边框适配
* style: Table 列控制下拉框适配
* style: 圆角弧度统一使用变量
* style: 统一圆角变量
2021-09-03 09:03:55 +00:00
Argo
9ce8930875 !1805 feat(#I48J0P): add async submit form function on PopConfirmButton component
* chore: bump version to 5.9.1
* doc: 增加表单提交示例
* scripts: 增加表单提交脚本
* feat: 增加表单提交支持
* doc: 增加确认弹窗异步示例
* refactor: 重构异步确认代码
2021-09-03 07:49:45 +00:00
Argo
d12f3d4c1f !1804 doc(#I48J38): TableFilter compatible Motronic theme
* style: TableFilter 适配 Motronic 主题
* refactor: format Dialog sample code
2021-09-03 06:47:45 +00:00
cyss2020
c7d5d99147 !1803 feat(#I48IXV): PopConfirmButton support async Submit
* 确认按钮 异步 按钮 禁用和Lloading
2021-09-03 06:34:41 +00:00
Argo
60dae4bb96 !1802 feat(#I48BJO): MultiSelect compatible in Form
* style: MutlSelect 适配表单弹窗
* style: 客户端验证效果适配 Motronic 主题
2021-09-02 11:16:34 +00:00
Argo
befc8f045d !1801 doc(#I48DRL): add source code link for ColorPicker
* doc: 增加 ColorPickers 页面文档
2021-09-02 08:00:12 +00:00
Argo
e15d603d62 !1800 feat(#I48DOY): popover implement IAsyncDispose interface
* chore: 更新打包脚本
* refactor: 优化 tooltip 显示脚本
* feat: Popover 增加销毁逻辑
2021-09-02 07:54:34 +00:00
Argo-Tianyi
44b812a2aa chore: bump version to 5.9.0 2021-09-02 10:54:18 +08:00
Argo
d1dc009682 !1799 doc(#I48A7O): popover compatible Motronic theme
* style: 增加 Popover 样式
* doc: remove space
2021-09-02 01:43:25 +00:00
Nine
0eb5160b5a !1797 doc(#I489KD): add english translation of gotop page
* doc: 添加 GoTop 页面资源文件
2021-09-02 01:40:23 +00:00
Nine
029c2304f4 !1798 doc(#I489MM): add english translation of Meuns page
* doc:添加 Menus 页面资源文件
2021-09-02 01:39:50 +00:00
Argo-Tianyi
29c06e47ba fix: resove compile failed for steps OnStatusChanged return value 2021-09-01 17:20:24 +08:00
Argo
f61a8a6b0f !1796 feat(#I47W4W): Steps support customer template for render
* refactor: 更改 OnStatusChanged 支持异步
* doc: 更新 Steps 示例
* style: 增加 Steps 样式
* feat: 增加 Step 模板
* refactor: 移除 Step 基类
2021-09-01 04:57:07 +00:00
Argo
f3c6688431 !1795 feat(#I4839H): Search/DateTimePicker/Range compatible Motronic theme
* style: DateTimeRange 适配 Motronic 样式
* style: DateTimePicker 适配 Motronic 主题
* doc: 更新组件页面搜索栏位置样式
2021-08-31 17:11:12 +00:00
Argo
2086430b16 !1794 refactor(#I4839B): refactor scripts for AutoComplete/Search KeyUp event handler
* script: 更新键盘脚本逻辑
* refactor: 更新组件键盘脚本执行逻辑
2021-08-31 17:07:57 +00:00
Nine
a2a1fce080 !1793 doc(#I480CM ): add english translation of dropdown page
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc:添加EventTable组件资源文件
* doc:修复资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加Dropdown 页面资源文件
2021-08-31 17:05:45 +00:00
alex_zou
253a221207 !1792 chore(#I48383): update Search doc and add auto scroll item on AutoComplete component
* AutoComplete组件scrollelement滚动改为滚动光标停留在第三个item
* 补充 Samples\Searchs 输入即触发IsOnInputTrigger例子属性方法
* AutoComplete组件,按上下按钮,控制items滚动条进度
* 文档 - 项目模板 , 添加 [更新项目模板] & english translation
2021-08-31 16:13:03 +00:00
Nine
dcf868e5e2 !1791 doc(#I47O63): add english translation of breadcrums page
* doc: Breadcrumbs 页面全球化
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 breadcrumbs 页面资源文件
2021-08-31 16:08:50 +00:00
Nine
5148ecacad !1790 doc(#I47O60): add english translation of split page
* doc:修复资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加Splits页面资源文件
2021-08-31 07:36:45 +00:00
Argo-Tianyi
55226381b5 doc: add max-height for scroll element 2021-08-31 19:00:44 +08:00
Argo
07c17876ea !1789 doc(#I47ZBQ): fix menu height overflow
* doc: 更新侧边栏高度问题
* doc: 更新 code 样式
* doc: 修复 Layout 示例中 Header 自动隐藏问题
* doc: 更新 Alert 底色
* doc: 更新图片地址链接
2021-08-31 06:18:24 +00:00
Argo
348bf48d5d !1788 doc(#I47YSS): add header auto hide feature
* doc: 更改侧边栏滚动特效增加阅读面积
* doc: 增加实时搜索示例
* refactor: Search 组件恢复 IsOnInputTrigger 参数
* doc: GroupBox 等组件适配 Motronic 主题
* style: MultiSelect 增加 border-radius
2021-08-31 05:20:08 +00:00
Argo
a3012fd55d !1787 revert(#I47YSK): restore OnInputTrigger parameter on Search component
* refactor: Search 组件恢复 IsOnInputTrigger 参数
* doc: GroupBox 等组件适配 Motronic 主题
* style: MultiSelect 增加 border-radius
2021-08-31 05:17:50 +00:00
Argo
0aa78066d1 !1786 feat(#I47YSD): MultSelect GroupBox support Motronic theme
* doc: GroupBox 等组件适配 Motronic 主题
* style: MultiSelect 增加 border-radius
2021-08-31 05:15:57 +00:00
Nine
deef010e49 !1785 doc(#I47O61): add english translation of anchor page
* doc: 添加 Anchor页面资源文件
2021-08-31 05:13:15 +00:00
Argo
0456e62d78 !1784 feat(#I47S34): scroll compatible mobile UI
* chore: bump version to 5.8.4
* doc: 更新 Scrolls 示例底部文字
* fix: 修复移动端 Scrolls 无法滚动问题
* doc: 侧边栏适配移动端
2021-08-30 05:38:29 +00:00
Argo
323a691126 !1783 doc: update menu style of Motronic theme
* style: 更新 Menus 样式
2021-08-30 04:06:13 +00:00
Argo
89d46bc1f8 !1782 doc(#I47RR7): add Warning Toast sample code
* doc: 增加 Warning 示例文档
2021-08-30 04:03:17 +00:00
Argo
958481a8fd !1781 feat(#I47R6I): redesign Checkbox & Radio component
* Merge branch 'dev' into dev-checkbox
* doc: 格式化示例文档
* feat: 增加点击事件
* doc: 更新 RadioList 示例
* feat: 重构 Radio 组件
* refactor: Checkbox 组件默认为最小
* style: 微调 table 表头分割线颜色
* doc: 格式化文档
* chore: code clean up
* doc: 增加 avatars 头像
* feat:  兼容 CheckboxList 组件
* doc: 增加大小示例
* feat: 增加 Size 功能
* feat: 增加禁用与颜色功能
* style: 重构 Checkbox 实现方式
2021-08-30 03:13:28 +00:00
Argo
30d6c9a6f5 !1780 feat(#I47PG2): scroll component support FireFox browser
* style: 侧边栏增加对火狐浏览器支持
* feat: Scroll 滚动条组件增加对 Firefox 浏览器支持
2021-08-29 17:28:09 +00:00
Nine
f9c454946a !1779 doc(#I47O64): add english translation of globalException page
* doc: 修复资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 GlobalExecption 页面资源文件
2021-08-29 13:05:05 +00:00
Argo
f831887be0 !1778 feat(#I47P6I): remove javascript from Scroll component
* doc: 更新 Scrolls 示例
* doc: 更新 Scrolls 资源文件
* doc: 更新 Scroll 示例文档
* doc: 更新 MainLayout 滚动条
* refactor: 重构 Scroll 组件
* chore: 更新打包样式与脚本
* chore: 移除 slimscroll 脚本
2021-08-29 12:47:57 +00:00
Argo
868d997b6f !1777 feat(#I47ON9): add warning type Toast
* chore: bump version to 5.8.3
* doc: 更新 Toast 文档
* refactor: 更改 Toast 类型描述
* style: 增加 overflow 样式
* feat: 增加警告信息 Toast 弹窗
* refactor: 移动注入服务到代码中
2021-08-29 06:21:29 +00:00
Argo
c28ae1124f !1776 doc(#I47OK7): do not shown the empty category for components
* doc: 组件总览过滤时不显示空分类
* doc: 优化逻辑不显示空分类数据
2021-08-29 05:13:05 +00:00
Argo
ab0c97b494 !1775 feat(#I47OJA): click item will trigger OnSearch callback on Search component
* doc: 更新文档移除 IsOnInputTrigger
* refactor: 移除IsOnInputTrigger 参数
* doc: code clean up
* feat: 点击选项时触发搜索
* refactor: code clean up
2021-08-29 04:41:29 +00:00
Nine
3f54a9f943 !1774 doc(#I47OJ8): remove the component character from Coms' resource file
* doc: 修改Coms资源文件
2021-08-29 04:39:30 +00:00
Nine
d953f2dada !1773 doc(#I47O02): add english translation of coms page
* doc: 添加全球化
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加Coms页面资源文件
2021-08-29 04:04:06 +00:00
Argo
492258a1aa !1772 feat(#I47NY8): add IsOnInputTrigger parameter on Search component
* chore: bump version to 5.8.2
* style: 增加合并单元格样式
* doc: 增加示例
* feat: Search 组件增加 IsOnInputTrigger 参数
2021-08-28 12:39:20 +00:00
Argo
061a406fa0 !1771 feat(#I47B83): add motronic theme
* chore: 更新主题选择脚本
* style: 增加 Table 样式
* style: 增加分页组件样式
* style: 增加 toast 组件样式
* style: 增加 modal 样式
* style: 统一设置 border-radius
* style: 增加 alert 样式设置
* refactor: border 样式
* Merge branch 'dev' into dev-motronic
* feat: 增加默认 motronic 样式设置
* refactor: 恢复 badge 默认颜色
* style: 更新按钮样式
* feat: 增加 motronic 样式
2021-08-28 07:07:53 +00:00
Argo
b0ab806a67 !1770 doc(#I47N44): add pulse transition for theme choose button
* doc: 增加主题选择动画
2021-08-28 07:06:22 +00:00
Argo
e793459db8 !1769 feat(#I47IHJ): get browser info from client user agent
* doc: 增加设备与语言信息
* feat: 浏览器信息使用客户端进行解析
2021-08-27 08:16:44 +00:00
Argo
5d81747bd2 !1767 refactor(#I47F4K): improve column list dropdown on Table componennt
* doc: Table 示例增加 Complete 列
* refactor: 自定义模板示例移除列调整设置
* doc: 更新 Dropdown 示例说明文档
* refactor: 增加点击网页自动关闭展开 ColumnList 弹窗脚本
* refactor: 更新 ColumnList 下拉菜单右对齐
2021-08-26 14:05:26 +00:00
Argo
8c83af43c0 !1766 feat(#I47CN0): multi-select add overflow ellipsis style
* style: 增加 MultiSelect 组件项目超长截取样式
2021-08-26 11:33:07 +00:00
Argo
23e465487e !1765 feat(#I47BAA): Split remove align center style
* doc: 更新 Split 组件示例增加高度 100% 设置
* style: 移除 Split 组件默认居中的设置
2021-08-26 09:14:00 +00:00
Nine
de1d38fb1b !1763 doc(#I47945): add english translation of skeleton page
* fix: 修复skeleton资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc:添加Skeleton页面资源文件
2021-08-26 02:18:07 +00:00
Nine
267f3dfbab !1762 doc(#I4793M): add english translation of row page
* fix: 修复row资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加row示例资源文件
2021-08-26 02:13:20 +00:00
Nine
4ff49aa5d6 !1761 doc(#I4793I): add english translation of footer page
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* fix: 修复footer资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 Footer示例资源文件
2021-08-26 02:09:07 +00:00
Argo-Tianyi
7590e907d3 chore: bump version to 5.8.0 2021-08-26 19:05:32 +08:00
Nine
5004c525b2 !1760 doc(#I4793D): add english translation of layout page
* fix: 修复layout资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 Layout 示例文档的资源文件
2021-08-26 02:03:06 +00:00
Nine
03a13323c9 !1759 doc(#I4792X): add english translation of driver page
* fix: 修复资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc:添加 Dividers 资源文件
2021-08-26 01:58:44 +00:00
Nine
c8ec341769 !1764 doc(#I47949): add english translation of scroll page
* doc: 添加Scorlls页面资源文件
2021-08-25 16:34:48 +00:00
Argo
5e5e0b992d !1758 feat(#I478VK): Dropdown support cascade update function
* chore: bump version to 5.7.5
* doc: 更新 Dropdown 级联示例
* feat: Dropdown  重构
2021-08-25 12:55:37 +00:00
Argo
f0122901e3 !1757 fix(#I47619): InputNumber support inline mode
* Merge branch 'dev' into dev-input
* doc: 更新 Number 组件在表单内使用示例
* style: 更新表单内 number 组件样式
2021-08-25 06:38:34 +00:00
Argo
f66a5ae7ba !1756 refactor(#I475YT): make all component IsDisabled property and disabled class name to same
* refactor: 统一 Disabled 属性
* refactor: Toggle disabled 样式优化
* refactor: Slider 统一使用 is-disabled 样式
* refactor: MultiSelect 组件使用 is-disabled 样式
* refactor: Rate 组件统一使用 is-disabled 样式
* refactor: Editor 组件移除样式
* refactor: DateTimePicker 样式更改 is-disabled
* refactor: TreeItem Disabled 属性更改为 IsDisabled
* doc: 更新 Cascaders 示例
* refactor: Menu 组件内部使用 is-disabled 样式
* refactor: 精简 btn 样式
* refactor: DateTimeRange 统一 is-diabled 样式
* refactor: Checkbox 精简样式
* refactor:  DatePicker  组件时间范围单元格样式
* refactor:  DatePicker 组件统一 IsDisabled 样式
* refactor: 统一 Disabled 参数
2021-08-25 06:34:29 +00:00
Nine
c3f602626f !1755 doc(#I474TS):fix localization of template page
* fix: 修复template页面本地化
2021-08-25 03:25:06 +00:00
Argo-Tianyi
3d94ed7c00 chore: add namespaces 2021-08-25 02:24:03 +08:00
Argo
2b7112653c !1754 feat(#I4720Q): add location services
* chore: bump version to 5.7.4
* doc: 增加自定义扩展文档
* doc: 增加 Locator 菜单
* refactor: 调整 IPLocatorOption 内部参数
* refactor:  移除 IPLocator 服务注入更改到 BootstrapBlazor
* refactor: 日志增加 IP 地址
* chore: 移动文件
* doc: 增加编码注意事项
* feat: 增加本地连接解析
* feat: 根据最新百度接口更新类结构
* chore: 增加编码支持
* doc: 增加 Locator 示例
* feat: 增加 Locator 配置回调委托
* refactor: 重构代码消除提示信息
* chore: 增加 Http 包依赖
* feat: 增加接口实现类
* feat: 增加 IPLocator 服务注入
* feat: 增加 AddIPLocator 服务注入代码
* feat: 增加 StringExtensions 扩展方法
* feat: 增加 IPLocator 相关接口定义
* refactor: 更改日志 Key 值
2021-08-24 10:12:14 +00:00
Argo-Tianyi
2cfd040561 doc: update the json configuration file 2021-08-23 14:24:19 +08:00
Argo
4b806e7aa4 !1753 fix(#I46SK8): add dispose interface on WebClientService
* fix: 修复 WebClient 切换时报错问题
* chore: bump version to 5.7.3
* doc: 移动示例文件到 Samples 文件夹
2021-08-23 06:02:57 +00:00
Argo
ef49c5f942 !1752 doc(#I46S3X): add document for global exception
* Merge branch 'dev' into dev-error
* doc: 增加全局异常说明
* feat: 增加 Log 重载方法
* feat: BlockLogger 支持 Html
* doc: 更新代码文档链接
* doc: 更新示例文档
* chore: 更新依赖
* chore: 更新脚本
* refactor: 重构 WebClientInfo 实现思路
* doc: 增加全局异常文档
* doc: 增加全局异常
* doc: 移动 Labels 网页
* doc: 恢复 alerts 示例
* refactor: 增加系统架构信息
* refactor: rename mac to OSX
* feat: 增加 OS 信息显示
* doc: 更新示例
* feat:  增加 IBlazorLogger 接口
* feat: 增加 Logger 组件
* refactor: Logger 更改为 BlockLogger
2021-08-23 04:33:31 +00:00
Argo
59eff7ee1a !1751 doc(#I46RO1): add document for WebClientService
* doc: 增加客户端信息文档
* doc: 增加 Client 文档
* doc: 更新示例文档
* chore: 更新依赖
* chore: 更新脚本
* refactor: 重构 WebClientInfo 实现思路
2021-08-23 03:38:27 +00:00
william19941994
67cb77d230 !1750 feat(#I46Q07): BootstrapInput support IsGroup parameter
* update src/BootstrapBlazor/Components/Input/BootstrapInput.razor.
2021-08-23 01:25:26 +00:00
Argo
d70a236164 !1748 feat(#I46PJD): add global exception handler component
* doc: 增加全局异常文档
* doc: 增加全局异常
* doc: 移动 Labels 网页
* doc: 恢复 alerts 示例
* refactor: 增加系统架构信息
* refactor: rename mac to OSX
* feat: 增加 OS 信息显示
* doc: 更新示例
* feat:  增加 IBlazorLogger 接口
* feat: 增加 Logger 组件
* refactor: Logger 更改为 BlockLogger
2021-08-22 17:08:38 +00:00
Argo
ec6218e8c1 !1747 fix(#I46OBU): textarea element not fill the width in Dialog body
* chore: bump version to 5.7.2
* chore: 打包脚本与样式
* style: 微调 inline 模式下 textarea 组件宽度
* feat: 重构 Textarea 组件结构
2021-08-22 03:34:36 +00:00
Argo
e58110fbbd !1746 doc(#I46ODL): add inline sample code for Labels
* doc: 增加 inline 方式示例
* chore: 更新资源文件
2021-08-22 03:08:49 +00:00
Argo
7dedf997d6 !1745 doc(#I46OD7): update en json resource file
* Merge branch 'dev' into dev-doc
* chore: 更新打包文件
* doc: use markup string instead of string
* fix: replace HostFile parameter
* doc: rename class name in json file
2021-08-22 03:06:03 +00:00
Argo
856d9a88b4 !1744 feat(#I46OD7): add WebClientInfo component
* chore: update bundle file
* Merge branch 'dev' into dev-client
* doc: 更新示例
* refactor: 重构获取 IP 地址服务
* chore: 获取 IP  更改为异步
* chore: 更新代码格式化配置信息
* refactor: 更改服务名称
* refactor: 更改路径
* refactor: 更改组件名称
* doc: 增加 WebClient 组件
* feat: ip.axd 支持反向代理
* refactor: 移动文件到组件文件夹内
* feat: 增加 ip.axd 中间件
* doc: 更新文档对应关系
* doc: 增加 WebClient 示例
* style: 更新 display 样式
* chore: 增加依赖
* feat: 增加 IWebClientContext 服务
* feat: 增加 UserAgent 过滤类
* feat: 增加 IP 扩展方法
* feat: 增加 IWebClientContext 接口
2021-08-22 03:01:48 +00:00
Argo
2f4eddc66e !1743 fix(#I46MR7): Menu first load expand all menu item
* fix: 修复 Menu 与手风琴效果冲突问题
2021-08-21 04:32:46 +00:00
Argo
9a4b99f4b2 !1742 fix(#I46M8C): not render after click Close button on EditDialog in Table component
* doc: 更新 Table 文档
* fix: 修复点击新建按钮后取消时未刷新 Table 问题
2021-08-21 01:11:49 +00:00
Argo
dadf9e004f !1741 feat(#I46JDE): add ComponentParameters on IEditorItem interface
* feat: IEditorItem 增加 ComponentParameters 参数
2021-08-20 07:09:51 +00:00
Argo
e268a637b5 !1740 feat(#I46FEW): add IsBottom parameter on Menu component
* chore: bump version to 5.7.1
* doc: 更新底栏文档说明
* doc: 增加底栏示例
* chore: 更新打包文件
* feat: TopMenu 增加 IsBottom 判断
* feat: 删除   BottomMenu
* doc: 增加底栏示例
* style: 增加底栏样式
* feat: Menu 组件增加 IsBottom 参数
* feat: 增加 BottomMenu 组件
2021-08-19 14:08:43 +00:00
Argo
c7ca3a162f !1739 fix(#I46FE5): not clear the selected items when set Value is empty
* style: 更新清空操作示例
* fix: 修复双向绑定值为空时不进行清空操作问题
2021-08-19 14:06:06 +00:00
Argo-Tianyi
22fc37261f chore: bump verson to 5.7.0 2021-08-19 09:05:43 +08:00
Argo
138d960e6c !1738 feat(#I4699U): add default background color for Display when inside form
* style: 增加表单中 Display 组件背景色
2021-08-18 16:10:09 +00:00
Argo
28b5e6de96 !1737 feat(#I4697U): table toolbar show text when not set icon parameter on mobile
* feat: 移动端 Toolbar 未设置图标时显示文字
2021-08-18 15:18:48 +00:00
Nine
a6e15e4fbd !1736 doc(#I4667Y): add english translation of FormLabel page
* fix: 移除重复资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加 label示例资源文件
2021-08-18 08:56:03 +00:00
Argo
0c81400946 !1735 doc(#I461WW): update sample code for ValidateForm
* chore: bump version to 5.6.8
* doc: 更新 Table 组件 SearchMode 文档
* doc: 更新 ValidateForm 示例文档
2021-08-17 10:38:03 +00:00
Argo
f1ac4a8208 !1734 feat(#I461UK): add SearchMode parameter on Table
* Merge branch 'dev' into dev-search
* doc: 更新搜索功能体验
* doc: 增加 Search 相关说明
* feat: 增加 ShowSearchButton 可单独控制搜索按钮
* feat: 更新默认搜索样式增加 Card
* doc: 更新搜索栏提示信息
* style: 更新样式
* refactor: 移除对 Editable 的过滤
* feat: 增加 SearchMode 参数
* feat: EditorForm 增加 Items 参数用于接收指定列
2021-08-17 10:29:21 +00:00
Argo
660399107e !1733 feat(#I45YF4): add Items parameter on EditorForm
* feat: EditorForm 增加 Items 参数用于接收指定列
2021-08-17 04:21:44 +00:00
Argo
c8582e6ce0 !1732 feat(#I45X3W): add ShowCardView parameter for manual switch the TableRenderMode
* doc: 更新显示视图示例
* feat: 增加 ShowCardView 按钮
2021-08-17 02:13:43 +00:00
Argo
47238cec36 !1731 doc(#I45WXS): rename RenderTableModel to RenderTableMode
* refactor: rename ActiveRenderModel to ActiveRenderMode
* refactor: 纠正单词拼写错误 Model 更改为  Mode
2021-08-17 02:00:35 +00:00
Argo
d0c115568b !1730 fix(#I45VIZ): not show popup window after set IsDisabled from true to false
* doc: IsDisabled 参数默认更改为 true
* feat: DateTimeRange 组件禁用时也执行客户端脚本
2021-08-16 15:37:36 +00:00
Argo
a83141311e !1729 fix(#I45VCK): DateTimePicker dynamic support Disabled parameter
* doc: 更新禁用默认值
* doc: 更新文档
* fix: 修复 DateTimePicker 组件开启后再禁用时仍然弹出日期框问题
2021-08-16 14:39:33 +00:00
Argo
7fddfead03 !1728 fix(#I45VC8): popup window when set enable then disable
* fix: 修复组件启用后禁用仍弹出对话框
2021-08-16 14:15:11 +00:00
Argo
77271460f5 !1727 fix(#I45QNP): dispose popover instance after hide
* fix: 修复删除按钮未选择时仍弹出确认框
2021-08-16 12:35:36 +08:00
Argo
965a636c8a !1726 fix(#I45N52): throw exception when call GetAllStrings
* chore: bump version to 5.6.6
* feat: GetAllStrings 兼容第三方组件
* refactor: 增加 GetAllStrings 逻辑
* refactor: 格式化代码
* refactor: 调整资源文件读取顺序
2021-08-15 15:59:44 +00:00
Argo
51fe6e79d1 !1725 fix(#I45N4T): resolve can't insert new row when set IsTracking to true in EditInCell mode
* fix: 修复 InCell 模式下无法新建问题
2021-08-15 15:58:14 +00:00
Argo
b7b2b0b67f !1724 refactor(#I44MWD): remove readonly from Items property on Tree component
* feat: 更新逻辑保证示例可用
* wip: refactor Tree component
2021-08-15 03:34:18 +00:00
Argo
c861bd5c34 !1723 feat(#I45L4I): support Nullable enum data type when AutoGenerateTemplate
* doc: 更新示例文档增加 Row="3" 设置示例
* refactor: InCell 编辑模式使用 Display 渲染只读列
* revert: 移除自动创建组件对 Readonly 兼容代码
* doc: 修复示例说明 Select 默认项问题
* doc: 地址字段增加默认值
* doc: 新建时对只读字段进行默认值赋值
2021-08-15 03:27:38 +00:00
Argo
21857beb44 !1721 feat(#I45IO4): Select component support Nullable enum data type in AutoGenerateTemplate method
* chore: bump version to 5.6.5
* refactor: revert data type to IEnumerable
* feat: 重构表单自动生成逻辑增加对可为空枚举类型支持
* refactor: change Items data type to List
2021-08-14 09:08:36 +00:00
Argo
06a43f914f !1720 fix(#I451AE): show in wrong place when set Filterable to true and set Height
* fix: 修复固定表头并开启数据过滤功能时弹窗位置不正确问题
2021-08-14 05:01:14 +00:00
Argo
0322772ff5 !1719 fix(#I45H57): localization function compatible CentOS/WSL host
* chore: bump version to 5.6.4
* fix: 修复 wsl 环境缺失文化时组件显示不正确问题
2021-08-13 16:58:00 +00:00
Argo
2c2820b5f9 !1718 fix(#I45GV8): resolve show toast when not provider OnSaveAsync method on IsTracking mode
* chore: bump version to 5.6.3
* fix: 修复 Add Edit Delete 逻辑
2021-08-13 21:02:18 +08:00
Argo
da945de399 !1717 feat(#I45DE4): add IsTracking parameter on Table component
* chore: 更新版本到 5.6.2
* doc: 更新 IsTracking 模式示例
* feat: 增加 IsTracking 参数用于跟踪模型
* doc: 增加关闭按钮资源文件
2021-08-13 05:34:27 +00:00
Argo-Tianyi
825f1f32ae fix: add namesapce for BootstrapInput component 2021-08-13 11:04:05 +08:00
Argo
1dbf520197 !1716 feat(#I45B26): add FloatingLabel component
* doc: 更新示例
* doc: 增加悬浮标签示例
* feat: 移除前置标签
* refactor: 重构代码
* doc: 增加 FloatingLabel 示例
* feat: 增加 FloatingLabel 组件
* refactor: 更改类型可继承
2021-08-13 02:39:01 +00:00
Nine
38921a64ee !1714 doc(#I458BW): add english translation of installwasm and installserver page
* doc: 修复文档
* doc: 修复资源文件丢失 ‘}’ 问题
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: InstallServer InstallWasm页面添加资源文件
2021-08-12 16:05:08 +00:00
Argo
97d239e1e4 !1715 feat(#I458DK): DynamicDataTableContext add DBNull process logic
* fix: 增加对 DBNull 的处理逻辑
* feat: 更改第二个回调参数为可选参数
2021-08-12 14:42:48 +00:00
Argo-Tianyi
c8fe737903 fix: add missing namespace 2021-08-12 16:44:42 +08:00
Argo
0064372daf !1713 feat(#I4567F): add HeaderTemplate on ModalDialog/Dialog component
* doc: 更新说明文档
* chore: 更新版本号 5.6.1
* doc: 增加自定义Header模板复杂示例
* feat: 增加 HeaderTemplate
2021-08-12 08:36:01 +00:00
Argo-Tianyi
f257533179 chore: bump version to 5.6.0 2021-08-13 00:21:23 +08:00
Argo
936326b4c1 !1712 fix(#I453H8): resolve set enabled to false not work in EditDialog
* doc: 格式化文档
* doc: 增加 EditDialog 弹窗示例
* fix: 修复 EditDialog 未判断 Enaable 参数问题
2021-08-12 04:11:19 +00:00
Argo-Tianyi
9be042d5cc Revert "!1707 doc(#I4515X): add english translation of localization page"
This reverts commit 6231e2e017.
2021-08-12 12:35:51 +08:00
Jacheers
9c0f2f80d9 !1711 【轻量级 PR】:doc: update Blazor word
* InstallContent.razor文件第24行“Blazor App”误为“Blazozr App”
2021-08-11 16:24:50 +00:00
Argo
906831033a !1710 chore(#I451BN): update the project settings for dependence version
* chore: 更新项目文件
2021-08-11 16:17:26 +00:00
Argo
2196238b8b !1709 feat(#I450PE): add index parameter method of ActiveTab on Tab component
* doc: 增加 ActiveTab 示例
* feat: 增加 ActiveTab 方法
* feat: support align in table cell
2021-08-11 16:12:32 +00:00
Argo
9315bd2409 !1708 feat(#I451B7): switch support align parameter inside table cell
* feat: support align in table cell
2021-08-11 16:07:24 +00:00
Nine
6231e2e017 !1707 doc(#I4515X): add english translation of localization page
* Merge branch 'dev-en-localizer' of https://gitee.com/LongbowEnterprise…
* doc: 本地化文档添加资源文件以
* doc: 本地化文档添加资源文件以
2021-08-11 16:02:36 +00:00
Argo
4fa6c1916b !1706 feat(#I450MD): upgrade bootstrap css framework to v5.1
* doc: 更新更新日志路径
* chore: 更新配置文件依赖组件版本号使用通配符
* chore: 更新打包文件
* chore: 更新依赖版本号
* style: 增加 color 最大宽度样式
* chore: 移除字体设置
* chore: 移除 sourceMap 链接
* chore: 移除 map 文件
* chore: add map files
* chore: update bootstrap to 5.1
2021-08-11 11:13:32 +00:00
Argo
deab1c60b5 !1705 fix(#I44WS2): resolve dialog flash after click button inside popup window
* fix: 修复点击弹窗中按钮后闪烁问题
* chore: remove abstractions dependence
2021-08-11 04:31:45 +00:00
Argo
37e4f2e094 !1704 chore(#I44WDE): upgrade framework version to 5.0.9
* chore: 更新依赖为 5.0.9
* chore: 更新脚本升级 sdk 版本 400
2021-08-11 03:24:34 +00:00
Argo
673ff3f2b9 !1703 fix(#I44W1K): resolve popup confirm dialog flash after second click
* fix: 修复 PopupConfirm 按钮多次点击按钮失效问题
2021-08-11 02:58:46 +00:00
Argo
1c8f8d118b !1702 perf(#I44V2G): upgrade to net6.0 preview7
* chore: upgrade net6.0 preview7
2021-08-11 01:46:09 +00:00
Argo
1346b55e1b !1701 feat(#I44TYN): add NullSwitch component support Nullable<bool>
* chore: bump version to 5.5.4
* doc: 增加 NullSwitch 组件示例
* doc: 更新示例
* feat: 新增 NullSwitch 组件支持可为空 Switch 组件
* refactor: 移动部分属性到 Toggle 类中
2021-08-10 13:00:41 +00:00
Argo
72107cf2f7 !1700 feat:(#I44QUY): don't show the label front input in table cell under ValidateForm
* style: 增加 Table 组件内置到 form 中的样式
* doc: 更新表单中使用 Table 示例
2021-08-10 07:10:47 +00:00
Argo
d3da06b63f !1699 fix(#I44N03): not reset checkbox state when client add button
* fix: 修复点击新建按钮后行选中状态未清除问题
2021-08-09 16:31:56 +00:00
Argo
85539cfc27 !1698 fix(#I44MZ9): can't click add/edit button after click delete button
* chore: bump  version to 5.5.3
* refactor: 重构代码
* fix: 增加 d-none 样式修复点击删除按钮后无法点击新建按钮问题
2021-08-09 16:12:55 +00:00
Argo
155de49306 !1697 fix(#I44MZ1): double/float/decimal data type of TableColumn throw exception when click edit button
* fix: 修复浮点数值设置 Step 编辑模式下报错问题
2021-08-09 16:08:54 +00:00
Argo
631c939e71 !1696 feat(#I44LZT): carousel item support width 100%
* feat: 移除 sealed 关键字
* style: 增加宽度 100% 样式
2021-08-09 10:16:39 +00:00
Kyle_Young
aafce4a023 !1695 feat: set width to 100%
* update src/BootstrapBlazor/Components/Carousel/CarouselImage.razor.
2021-08-09 10:07:16 +00:00
Argo
12066f50fe !1694 fix(#I44GIG): table filter support double and decimal data type
* chore: bump version to 5.5.2
* fix: NumberFilter 更改为泛型支持多种数据类型
2021-08-09 04:53:45 +00:00
Argo
ac91d53091 !1693 refactor(#I44I8C): adjust dropdown-arrow for multiple select
* refactor: 更新多项选择器组件小箭头支持向上展开时隐藏
2021-08-09 04:21:58 +00:00
Argo
3960c54c26 !1692 feat(#I44I7S): remove dropdown menu max height style
* style: remove dropdown-menu style
2021-08-09 04:17:49 +00:00
Argo
29e36f4df5 !1691 feat(#I44F4H): EditForm/InCell mode support Readonly parameter on Table component
* doc: 表单编辑示例增加 readonly 示例
* style: 微调样式放置标签出现背景色
* feat: 增加 EditForm 对 Readonly 支持
* fix: 修复 CheckboxList 数据源给错问题
* chore: 更新 nuget 数据源配置
* doc: 示例更新地址列为只读列不可编辑
* style: 增加行内只读列背景色
* feat: 增加行内编辑对 readonly 字段支持
2021-08-08 09:35:53 +00:00
Nine
4a748c87d4 !1689 doc(#I44B3G): add english translation of template and globalization page
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc:添加 Globalization 页面资源文件以及全球化
* doc: 添加模板页面资源文件以及全球化
2021-08-07 08:08:58 +00:00
Argo
82d1e663d0 !1690 feat(#I44CUD): table component add OnAfterSaveAsync parameter
* chore: bump version 5.5.2-beta01
* doc: 增加 OnAfterSaveAsync 回调方法说明
* refactor: 移除 loading 私有字段
* feat: 增加 OnAfterSaveAsync 回调方法
2021-08-07 08:05:39 +00:00
Argo
3e63782f6a !1688 doc(#I448F3): update docs for Search component
* doc: remove script of ad
* doc: update attribute for Search
* doc: update docs for Search
* refactor: add await keyword
2021-08-06 07:42:25 +00:00
Argo
6b2be0b8ad !1687 feat(#I444LV): Search auto focus after click search button
* doc: 更新示例文档
* feat: 点击 Search 按钮后获得焦点
* feat: 公开 FocusAsync 方法
2021-08-05 16:31:44 +00:00
Argo
bd1ae94dd7 !1686 fix(#I4421V): SearchDialog missing layout parameter from Table
* chore: bump version to 5.5.1
* fix: 修复 SearchDialog 未使用布局设置参数问题
* fix: 修复代码文件链接错误
2021-08-05 08:18:33 +00:00
Argo-Tianyi
a086096ad3 chore: bump version to 5.5.0 2021-08-06 00:06:40 +08:00
Argo
080716ce4f !1685 feat(#I43XTG): use parameters in EditForm mode on Table component
* doc: 增加 Card 两行样式
* style: 行内编辑下拉框充满
* style: 微调行内编辑组件周边间隙
* style: 移除行内编辑行背景色样式
* style: 行内编辑微调边距
* feat: 移除编辑行背景色
* feat: 更新表单编辑模式下布局
2021-08-04 16:04:26 +00:00
Argo
a4af8f7b7d !1684 feat(#I43XRX): support new item function in EditInCell mode on Table component
* feat: 增加行内编辑新建功能
* fix: 修复编辑模板 Footer 顶部无间隙问题
* style: 移除 modal-footer 顶部间隙
2021-08-04 15:28:06 +00:00
大胃Q
8b06ac2774 !1682 feat(#I43XRL): add click event for the middle item in Cascader component
* 修复级联选择  中间级别菜单 无法选中的bug
2021-08-04 15:23:36 +00:00
Argo
cffe83c216 !1683 feat(#I43XM7): add IsAutoFocus and IsAutoClearAfterSearch parameter on Search component
* doc: 更新自动获取焦点示例
* feat: Search 增加自动获得焦点功能
2021-08-04 13:55:46 +00:00
Argo
f48f2d48cb !1681 fix(#I43SQJ): add three parameters on table can change layout of EditDialog
* chore: bump version to 5.4.7
* doc: 更新 Table 参数列表
* fix: 修复内置编辑弹窗内布局默认为一行两列
* chore: 更新样式
2021-08-04 03:21:42 +00:00
Argo-Tianyi
854d1d8dba chore: update dependence lib 2021-08-04 10:31:50 +08:00
Argo
1834c12809 !1680 doc(#I43STU): add sample code of update Markdown content by call async method
* doc: 增加异步加载数据示例
2021-08-04 02:30:04 +00:00
Argo
e1fb947782 !1679 chore: bump extensions version to 5.1.1
* chore: bump version to 5.1.1
* chore: 更新 Nuget.Config 文件内容
2021-08-03 15:19:20 +00:00
Argo
f7ada54151 !1678 fix(#I43RIH): markdown not support set value in async
* chore: bump version to 5.1.0
* chore: 更新打包配置信息
* chore: 更新项目文件
* chore: 更新打包脚本支持 setMarkdown 方法
* chore: 更新 Markdown 项目打包脚本
* chore: 更新文件内联配置文件
* chore: 更新 Markdown 组件配置文件
2021-08-03 14:57:27 +00:00
Argo
9c44328a22 !1677 doc(#I43EJP): remove duplicate sample code
* doc: 增加 AD 代码
* doc: 移除重复示例
2021-08-03 11:45:52 +00:00
Argo
29d8532541 !1676 feat(#I1L30Y): update class for Tabs component
* Merge branch 'dev' into dev-tab
* chore: 更新样式文件
* refactor: 更新 Nuget.Config 文件
* refactor: remove height setting form body
* wip: 临时提交
* feat: ModalDialog 增加 Class 参数用于自定义弹窗样式
* feat: 增加 Class 属性用于自定义弹窗样式
* feat: DialogService 重构代码
* chore: 独立打包配置文件
* chore: 更新打包样式
* feat: 微调 Table 组件行内编辑间隙
2021-08-03 07:15:14 +00:00
Argo
84a208a92b !1675 feat(#I43ONF): add Class parameter on Dialog component
* feat: ModalDialog 增加 Class 参数用于自定义弹窗样式
* feat: 增加 Class 属性用于自定义弹窗样式
* feat: DialogService 重构代码
* chore: 独立打包配置文件
* chore: 更新打包样式
* feat: 微调 Table 组件行内编辑间隙
2021-08-03 07:10:55 +00:00
Argo
945ffa04cb !1674 chore(#I43ODR): separate bundle script into target file
* chore: 独立打包配置文件
* chore: 更新打包样式
* feat: 微调 Table 组件行内编辑间隙
2021-08-03 06:51:30 +00:00
Argo
0affa249cf !1673 fix(#I43DZ9): resolve can input when Set IsDisabled to true on ColorPicker component
* chore: bump version to 5.4.5
* fix: 修复 ColorPicker 组件禁用状态仍然可输入
2021-08-01 16:53:46 +00:00
Argo
3b136056ee !1672 feat(#I43DYV): redesign ColorPicker component
* refactor: 升级脚本版本号
* Merge branch 'dev' into dev-color
* doc: 增加 ColorPicker 组件内置表单示例
* feat: ColorPicker 组件兼容 ValidateForm
* style: ColorPIcker 适配 Row 布局
* doc: 更新示例
* refactor: 更新 color-picker 样式
* chore: 更新打包脚本
* refactor: 精简代码
* chore: 移除 color 相关脚本与样式
2021-08-01 16:41:05 +00:00
Argo
ea50046ca2 !1671 feat(#I43BBA): add Empty on Table component
* chore: 更新打包样式
* Merge branch 'dev' into dev-table-empty
* doc: 更新打包样式
* doc: 更新示例
* doc: 更新无数据相关参数说明
* doc: 增加 EmptyText 资源文件
* style: 增加无数据时 Empty 样式
* feat: Table 增加 Empty 相关参数
* doc: Empty 组件更新参数说明 Desc 重命名为 Text
* doc: Empty 组件更新资源文件
* feat: 重构 Empty 组件
2021-08-01 16:35:21 +00:00
Argo
2f6862f74d !1670 feat(#I43DYN): add LabelAlign parameter on SearchDialog component
* Merge branch 'dev' into dev-searchdialog
* doc: 更新参数说明
* doc: 增加右对齐搜索弹窗示例
* feat: 增加 LabelAlign 参数
* refactor: 移除 parametr 标签
* feat: SearchDialog 增加对齐方式参数
* feat: Editdialog 增加 LabelAlign 参数
* refactor: 重命名 TextAlign 为 LabelAlign
* doc: 更新示例弹窗内布局每行 2 个组件
* feat: EditDialog 增加行布局参数
* feat: 编辑搜索弹窗移除 modal-footer 样式
* chore: 更新弹窗 footer 样式
* doc: 更新示例文档
* revert: 增加 Data 数据判断
* refactor: 移除对 Data 数据源判断
* chore: 更新索引
* feat: Spinner 组件适配 bs5
* doc: 更新文档说明
* doc: 增加 EditorForm 参数说明
* doc: 更新按钮右侧对齐示例
* doc: 更新 Inline 模式示例
* refactor: 使用 is-center 样式
* chore: 更新样式
* chore: 增加对齐样式
* feat: EditorForm 增加标签对齐参数
2021-08-01 16:31:13 +00:00
Argo
2e684551cd !1669 feat(#I43DYL): add LabelAlign parameter on EditDialog component
* Merge branch 'dev' into dev-editdialog
* Merge branch 'dev' into dev-editdialog
* doc: 更新参数说明
* doc: 增加 EditDialog 弹出右对齐弹窗示例
* refactor: 增加 LabelAlign 参数
* chore: 移除 parameter 标签
* feat: Editdialog 增加 LabelAlign 参数
* refactor: 重命名 TextAlign 为 LabelAlign
* doc: 更新示例弹窗内布局每行 2 个组件
* feat: EditDialog 增加行布局参数
* feat: 编辑搜索弹窗移除 modal-footer 样式
* chore: 更新弹窗 footer 样式
* doc: 更新示例文档
* revert: 增加 Data 数据判断
* refactor: 移除对 Data 数据源判断
* chore: 更新索引
* feat: Spinner 组件适配 bs5
* doc: 更新文档说明
* doc: 增加 EditorForm 参数说明
* doc: 更新按钮右侧对齐示例
* doc: 更新 Inline 模式示例
* refactor: 使用 is-center 样式
* chore: 更新样式
* chore: 增加对齐样式
* feat: EditorForm 增加标签对齐参数
2021-08-01 16:27:43 +00:00
Argo
628b744fd9 !1667 feat(#I43DXD): add LabelAlign parameter on EditorForm component
* Merge branch 'dev' into dev-align
* doc: 更新参数说明
* doc: 更新示例弹窗内布局每行 2 个组件
* feat: EditDialog 增加行布局参数
* feat: 编辑搜索弹窗移除 modal-footer 样式
* chore: 更新弹窗 footer 样式
* doc: 更新示例文档
* revert: 增加 Data 数据判断
* refactor: 移除对 Data 数据源判断
* chore: 更新索引
* feat: Spinner 组件适配 bs5
* doc: 更新文档说明
* doc: 增加 EditorForm 参数说明
* doc: 更新按钮右侧对齐示例
* doc: 更新 Inline 模式示例
* refactor: 使用 is-center 样式
* chore: 更新样式
* chore: 增加对齐样式
* feat: EditorForm 增加标签对齐参数
2021-08-01 16:21:31 +00:00
Argo
9eb11e7ec4 !1668 feat(#I43DY8): remove ad link
* chore: 移除冗余样式
* chore: 移除 ad
* refactor: 微调小按钮位置
* doc: 更改广告位置
* chore: 调整广告位置
2021-08-01 16:19:10 +00:00
Argo
d9cd820544 !1666 feat(#I43CCA): spinner compatible bs5
* chore: bump version to 5.4.4
* feat: Spinner 组件适配 bs5
2021-08-01 03:31:07 +00:00
Argo
3bc979089b !1665 feat(#I43BXP): Checkbox support inline layout
* Merge branch 'dev' into dev-checkbox
* doc: Checkbox 示例更改为 inline 布局
* feat: 适配 Checkbox inline 布局
* feat: 增加 btn-block 样式
* doc: Table 编辑模板增加 inline 布局示例
* feat: EditDialog 增加行布局参数
* doc: SearchDialog 增加行布局示例
* feat: SearchDialog 支持行布局参数
* feat: DialogBase 增加行布局参数
* feat: EditForm 支持 inline 模式
* doc: 更新 Row inline 布局示例
* chore: 更新打包脚本与样式
* doc: 更新注释
* style: 适配 CheckboxList 组件 inline 布局
* style: 适配 inline 模式下 switch 组件
* style: 修复 inline 模式下垂直对齐问题
* feat: 增加 inline 模式
* feat: 增加 inline 样式
2021-07-31 16:58:00 +00:00
Argo
d5017b6e7b !1663 feat(#I43BX5): add btn-block style compatible bs4
* Merge branch 'dev' into dev-block
* feat: 增加 btn-block 样式
* doc: Table 编辑模板增加 inline 布局示例
* feat: EditDialog 增加行布局参数
* doc: SearchDialog 增加行布局示例
* feat: SearchDialog 支持行布局参数
* feat: DialogBase 增加行布局参数
* feat: EditForm 支持 inline 模式
* doc: 更新 Row inline 布局示例
* chore: 更新打包脚本与样式
* doc: 更新注释
* style: 适配 CheckboxList 组件 inline 布局
* style: 适配 inline 模式下 switch 组件
* style: 修复 inline 模式下垂直对齐问题
* feat: 增加 inline 模式
* feat: 增加 inline 样式
2021-07-31 16:47:16 +00:00
Argo
cb5eb42583 !1662 feat(#I43BWZ): EditDialog support Inline layout
* doc: Table 编辑模板增加 inline 布局示例
* feat: EditDialog 增加行布局参数
* doc: SearchDialog 增加行布局示例
* feat: SearchDialog 支持行布局参数
* feat: DialogBase 增加行布局参数
* feat: EditForm 支持 inline 模式
* doc: 更新 Row inline 布局示例
* chore: 更新打包脚本与样式
* doc: 更新注释
* style: 适配 CheckboxList 组件 inline 布局
* style: 适配 inline 模式下 switch 组件
* style: 修复 inline 模式下垂直对齐问题
* feat: 增加 inline 模式
* feat: 增加 inline 样式
2021-07-31 16:38:03 +00:00
Argo
e6766ce550 !1661 feat(#I43BWW): SearchDialog add inline layout
* doc: SearchDialog 增加行布局示例
* feat: SearchDialog 支持行布局参数
* feat: DialogBase 增加行布局参数
* feat: EditForm 支持 inline 模式
* doc: 更新 Row inline 布局示例
* chore: 更新打包脚本与样式
* doc: 更新注释
* style: 适配 CheckboxList 组件 inline 布局
* style: 适配 inline 模式下 switch 组件
* style: 修复 inline 模式下垂直对齐问题
* feat: 增加 inline 模式
* feat: 增加 inline 样式
2021-07-31 16:35:54 +00:00
Argo
098b973bb9 !1660 feat(#I43BWU): add inline layout for EditForm component
* feat: EditForm 支持 inline 模式
* doc: 更新 Row inline 布局示例
* chore: 更新打包脚本与样式
* doc: 更新注释
* style: 适配 CheckboxList 组件 inline 布局
* style: 适配 inline 模式下 switch 组件
* style: 修复 inline 模式下垂直对齐问题
* feat: 增加 inline 模式
* feat: 增加 inline 样式
2021-07-31 16:34:44 +00:00
Argo
200bc26955 !1659 feat(#I43BWR): add inline layout for Row component
* doc: 更新 Row inline 布局示例
* chore: 更新打包脚本与样式
* doc: 更新注释
* style: 适配 CheckboxList 组件 inline 布局
* style: 适配 inline 模式下 switch 组件
* style: 修复 inline 模式下垂直对齐问题
* feat: 增加 inline 模式
* feat: 增加 inline 样式
2021-07-31 16:33:16 +00:00
Argo
646e3813da !1658 feat(#I43BWO): add localization for error message when throw exception
* feat: 增加错误提示信息本地化
* refactor: 调整 z-index 出错时覆盖 header
* doc: 错误信息节点增加 span
* chore: 增加 App 资源文件
2021-07-31 16:32:00 +00:00
Argo
b95eb655a4 !1657 feat(#I43BWN): disable auto close column list dropdown on table component
* feat: Table 组件 ColumnList 下拉框不自动关闭
2021-07-31 16:30:29 +00:00
Argo
a740daefcc !1656 fix(#I43A3Q): resolve cancel button not show when set ShowDeleteButton to false
* chore: bumb version to 5.4.3
* fix: 修复 InCell 模式下不显示 delete 按钮时 cancel 按钮也不可用
2021-07-31 04:40:59 +00:00
Argo
6c3b5ee245 !1655 feat(#I43A1B): resolve can not pick the front day that is disabled in preview month
* doc: 日期范围示例更改为45天
* fix: 修复当月前几个日期无法选中问题
* doc: remove space line
2021-07-31 04:17:01 +00:00
Argo
cc06c39579 !1654 feat(#I439RJ): division source link into targets config file
* refactor: separate source link to target file
2021-07-31 02:58:21 +00:00
Argo
b8c3c5539a !1653 fix(#I439LU): the selected day in other month style is current
* doc: 更新设置时间范围示例
* fix: 修复跨越后当前日期样式错误问题仍然是 current
2021-07-31 02:28:20 +00:00
Argo
7504ef4dee !1651 feat(#I439H7): resolve can pick the date out of range value
* fix: 修复选中设置时间范围外日期时点击确认后仍然改变值
2021-07-31 02:03:16 +00:00
Argo
5cbce6d684 !1650 fix(#I435I5): all menu item will be set active when put menu in route / page
* chore: bump version to 5.4.2
* fix: 修复 / 路由页面内菜单禁用导航后全部被设置为 active 问题
2021-07-30 07:01:55 +00:00
Argo
f821650298 !1649 feat(#I434SC): add loading for Search component
* feat: 增加 Search 组件搜索时 loading 样式
* feat: 重构 AutoComplete 组件移动样式
2021-07-30 04:23:17 +00:00
Argo
3d9c3b9e34 !1648 fix(#I431UW): throw exception when set ShowDetailRow to true use Items as data source in table component
* chore: bump version to 5.4.1
* Merge branch 'dev' into dev-table
* doc: TableColumn 页面表头移除汉字使用资源文件
* fix: 修复 ColumnVisibles 为空导致组件异常问题
2021-07-29 16:23:30 +00:00
Argo
85da2d726b !1647 fix(#I431US): remove static instance in Title service
* doc: 更新 NavMenu 代码使用 TitleService 方法设置 Title
* feat: 重构 TitleService 服务
2021-07-29 16:18:39 +00:00
Argo
a76f17f97e !1646 feat(#I42KQH): reset toast z-index to 1090 when modal is open
* style: 更新 弹窗 打开后 Toast 坐标 1090
2021-07-29 07:55:30 +00:00
Argo-Tianyi
c8c530191a chore: bump version to 5.4.0 2021-07-29 10:54:34 +08:00
Argo
a1965745ff !1645 feat(#I42WFL): refactor dropdown component support dynamic reset items parameter
* doc: 更新 Dropdown 组件动态更新 Items 示例
* feat: Dropdown 支持动态更改 Items
2021-07-29 02:52:46 +00:00
Argo
a724ce9be4 !1644 feat(#I42W80): add ShowEdit/DeleteButtonCallback parameter on Table component
* feat: 增加编辑与删除按钮回调方法用于控制是否显示等功能
2021-07-29 02:34:05 +00:00
Argo
b719c826d6 !1643 doc(#I42VZL): add en json file for install page
* doc: 更改快速上手英文名称
* doc: 添加Install英文资源
2021-07-29 02:14:04 +00:00
Argo
60c7cafb4e !1642 refactor(#I42VKX): remove obsolete method or parameters
* chore: 移除 obsolete 过期方法
2021-07-29 01:34:59 +00:00
Argo
0f936e3ff3 !1641 fix(#I42V4Y): table detail mode colspan incorrect when set ShowColumnList to true
* feat: 明细行合并单元格支持设置列是否显示模式
2021-07-28 16:36:01 +00:00
Nine
34c93e54fd !1639 doc(#I42V3R): add english translation of install page
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc: 添加Install页面的资源文件以及页面的全球化
* doc: 添加动态输出文字资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc(#I42OB8):添加主页页脚资源文件以及全球化
* doc(#I42OB8): 添加主页资源文件以及全球化
* refactor((#I42M9M): 格式化文档
* refactor(#I42M9M): 删除多余命名空间
* doc(#I42M9M): 更新简介文档的url连接
2021-07-28 16:25:58 +00:00
Argo
92424835d8 !1640 fix(#I42V4G): resolve colspan incorrect when set ShowLineNo to true
* fix: 明细行模式下开启 ShowLineNo 后合并单元格数量不正确
2021-07-28 16:18:12 +00:00
Argo
333cc4606c !1638 fix(#I42V1Q): resolve can select item when set IsDisable to true
* chore: bump version to 5.3.6
* fix: 修复禁用逻辑
* feat: 模板增加分组支持
* refactor: 移除 Value 数据
* refactor: 增加禁用模式判断
* fix: 修复 Select 下拉框禁用模式下仍然可选
2021-07-28 15:52:52 +00:00
Argo
ac8c0c3337 !1637 doc(#I42SBY): update footer link align left
* chore: 更新 footer 左对齐
* style: 更新样式
* chore: 更新资源文件
* doc: 增加动态文字样式
2021-07-28 07:48:34 +00:00
Nine
ac67f88581 !1636 doc(I42OB8): add english translation of home page
* doc: 添加动态输出文字资源文件
* Merge branch 'dev' of https://gitee.com/LongbowEnterprise/BootstrapBla…
* doc(#I42OB8):添加主页页脚资源文件以及全球化
* doc(#I42OB8): 添加主页资源文件以及全球化
* refactor((#I42M9M): 格式化文档
* refactor(#I42M9M): 删除多余命名空间
* doc(#I42M9M): 更新简介文档的url连接
2021-07-28 04:30:24 +00:00
Argo
efc817ec5b !1635 fix(#I42O73): resolve introduction throw exception when call dispose
* fix: 修复 Dispose 时报错问题
* doc: update resource file
2021-07-27 14:06:01 +00:00
Nine
d57d04b69f !1634 doc(#I42M9M): refactor localizer of Introduction doc
* refactor((#I42M9M): 格式化文档
* refactor(#I42M9M): 删除多余命名空间
* doc(#I42M9M): 更新简介文档的url连接
2021-07-27 13:33:40 +00:00
Argo
38b06117d4 !1633 feat(#I42JZQ): add BeforeRowButtonTemplate on Table component
* doc: 增加 BeforeRowButtonTemplate 文档说明
* doc: 更新 BeforeRowButtonTemplate 文档
* feat: Table 组件增加 BeforeRowButtonTemplate
2021-07-27 03:52:14 +00:00
Argo-Tianyi
85e8a5b590 chore: bump version to 5.3.4 2021-07-27 10:08:48 +08:00
Argo
0e1278d312 !1632 fix(#I42ETN): add active row style in DetailRow mode
* chore: bump version to 5.3.3
* fix: 修复明细行模式下选中行样式
2021-07-26 18:09:08 +00:00
Argo
95390dd9bc !1631 chore(#I42HAV): redesign bundle config file
* chore: 重构项目内部脚本与样式文件打包配置
2021-07-26 11:56:40 +00:00
Argo
d0682ae9b1 !1630 doc(#I42B4W): rename css/javascript file name
* chore: 打包脚本排序
* refactor: 移除 hotReloadProfile 配置项
* chore: 更新打包配置文件
* doc: rename file name
* chore: add file nesting config
* refactor: 更新 Alert 样式
2021-07-25 16:22:41 +00:00
Argo
53ecc3867d !1629 doc(#I42B4N): refactor introduction page
* refactor: 增加 cs 文件
* doc: 更新资源文件内容
2021-07-25 16:19:36 +00:00
Nine
343a37e2e0 !1628 doc(I429JT): add English translation of profile page
* doc :  遗漏简介页面文档
* doc: Introduction 页面添加英文翻译
2021-07-25 13:45:33 +00:00
Argo
93240d3e1c !1627 feat(#I429IM): add strip css for table detail function
* chore: bump version to 5.3.2
* style: 修复明细行下背景色问题
* style: 修复固定列最右侧滚动条列被穿透问题
2021-07-24 12:24:38 +00:00
Argo
a84771f7b2 !1626 feat(#I423Q9): add ShowFilterHeader parameter on Table component
* doc: 更新示例
* feat: 字符串类型过滤条件增加实时响应功能
* feat: ValidateBase 增加 OnValueChanged 回调方法
* feat: 重构 父类 OnFilterValueChanged 方法
* feat: DateTimePicker 增加 OnDateTimeChanged 回调方法
* feat: 增加清除过滤条件逻辑
* style: 增加清除过滤条件按钮样式
* feat: 增加清除过滤条件逻辑
* doc: 过滤行示例代码增加枚举与布尔类型
* feat: Dropdown 支持集成
* feat: 过滤组件支持 FilterRow 模式
* refactor: 更改 IsRow 为 IsHeaderRow
* feat: TableFilter 支持过滤行逻辑
* style: 微调 FilterButton 样式
* feat: 增加 FilterButton 按钮
* Merge branch 'dev' into dev-table
* doc: 更新测试示例
* style: 增加多表头样式
* feat: 增加 ShowFilterHeader 配置
* doc: 合并 Filter 代码
2021-07-23 04:34:02 +00:00
Argo
aa3455c6e2 !1625 feat(#I423P6): add OnValueChanged callback on ValidateBase component
* doc: 更新 Cascader 参数文档
* feat: ValidateBase 增加 OnValueChanged 回调方法
* feat: Dropdown 支持集成
2021-07-23 04:24:20 +00:00
Argo
790ce871af !1624 feat(#I420W5): set Display empty default height to 35px
* style: 增加 Display 空值时高度
2021-07-22 11:40:31 +00:00
Argo
36113acf41 !1623 fix(#I420F0): update Select for not render selected item
* chore: bump version to 5.3.0
* doc: 更新示例文档
* doc: 更新 Select 示例
* fix: 更新 SelectedItem 逻辑
2021-07-22 10:41:15 +00:00
Argo
8f670a6281 !1622 fix(#I41ZUB): resolve localization in WTM not retrieve right resource from resx file
* fix: 修复本地化上一个工厂未找到资源逻辑判断
* refactor: 优化 Factory 类增加修饰符
2021-07-22 09:37:37 +00:00
Argo
139b9e0327 !1621 feat(#I41UHU): toolbar on table compatible bs5
* chore: bump version to 5.2.5
* fix: 修复 Table 组件搜索按钮工具栏未适配 bs5 问题
2021-07-21 15:03:21 +00:00
Argo
accafea5a7 !1620 feat(#I41UHR): Switch compatible in Table
* style: 增加 Switch 在 Table 组件内样式
2021-07-21 14:59:40 +00:00
Argo
3d541beae7 !1619 feat(#I41UE4): bootstrap blazor compatible the third part localization
* chore: bump version to 5.2.4
* refactor: 优化代码
* chore: 增加 DI 引用
* feat: 更新逻辑取被 BB 覆盖的本地化引擎
* feat: 支持 abp 本地化实验
2021-07-21 13:55:43 +00:00
circlelee1981
b7c4a1f6ea !1617 fix(#I41GPD): update StringFilter the default value
* update StringFilter.razor.cs string类型默认筛选条件修正
2021-07-20 01:58:35 +00:00
Argo
abbec239b6 !1615 fix(#I40STK): resolve colspan incorrect when set IsMultipleSelected to true
* chore: 更新打包文件
* fix: 修复开启多选后明细行 colspan 不正确问题
2021-07-18 17:06:54 +00:00
Argo
1fb750a295 !1614 fix(#I4175P): tab support not found render template
* feat: Layout 增加 NotFound 模板
* feat: Tab 组件增加 NotFound 模板
* feat: 增加资源文件
2021-07-18 16:18:23 +00:00
Argo
d2a0bdf863 !1613 doc(#I418DH): update carousel in home page
* chore: bump version to 5.1.2
* chore: 微调走马灯指示条颜色
* doc: 更改生态位置
* doc: 增加图片超链接
* doc: 更新 readme.md
* doc: 增加驰骋工作流链接
2021-07-18 13:34:52 +00:00
Argo
67548bee4e !1612 fix(#I40ISO): resolve can't selected the item return by OnSearchTextChanged callback
* fix: 修复 OnSearchTextChanged 导致选项无法选中问题
* doc: format document
2021-07-18 08:27:43 +00:00
Argo
b0170dcae1 !1611 fix(#I417RK): resolve throw exception when set ShowSearch to true on Select
* fix: 修复 Select 组件设置 ShowSearch 时回车提交报错问题
2021-07-18 06:56:51 +00:00
Argo
0b7b9610bc !1610 fix(#I417MJ): resolve throw exception in browser when select switch the active item in ValidateForm
* chore: 移除对 map 的依赖
* chore: 更新样式适配 bs5
* refactor: 增加 div 用于 tooltip 渲染
* revert(#I40ISO): 撤销提交
2021-07-18 04:43:29 +00:00
Argo
9029f7bfbf !1609 fix(#I40O7E): resolve filter dialog show on wrong position when fixed column
* fix: 修复固定列后过滤弹窗错位问题
2021-07-18 02:29:54 +00:00
Argo
65bd70e4cb !1608 fix(#I4163B): toast compatible bootstrap v5
* chore: bump version to 5.2.1
* fix: toast 组件适配 bs5
* chore: update props config error
* Squashed commit of the following:
2021-07-17 07:51:30 +00:00
1772 changed files with 188583 additions and 101003 deletions

View File

@@ -88,9 +88,10 @@ dotnet_naming_symbols.constant_fields.required_modifiers = const
# var preferences
csharp_style_var_for_built_in_types = true:silent
csharp_style_var_when_type_is_apparent = true:silent
csharp_style_var_elsewhere = true:silent
csharp_style_var_elsewhere = true:silent
csharp_prefer_static_local_function= true:silent
# Expression-bodied members
csharp_style_expression_bodied_methods = false:silent
csharp_style_expression_bodied_methods =false:silent
csharp_style_expression_bodied_constructors = false:silent
csharp_style_expression_bodied_operators = false:silent
csharp_style_expression_bodied_properties = true:silent
@@ -149,3 +150,5 @@ visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public
[*.cs]
# Add file header
file_header_template = Copyright (c) Argo Zhang (argo@163.com). All rights reserved.\nLicensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\nWebsite: https://www.blazor.zone or https://argozhang.github.io/
csharp_style_namespace_declarations=file_scoped:suggestion
csharp_style_expression_bodied_local_functions=true:silent

110
.filenesting.json Normal file
View File

@@ -0,0 +1,110 @@
{
"help": "https://go.microsoft.com/fwlink/?linkid=866610",
"root": true,
"dependentFileProviders": {
"add": {
"addedExtension": {},
"pathSegment": {
"add": {
".*": [
".js",
".css",
".html",
".htm",
".less",
".scss",
".coffee",
".iced",
".config",
".cs",
".vb",
".json"
]
}
},
"extensionToExtension": {
"add": {
".js": [
".cs",
".razor",
".coffee",
".iced",
".ts",
".tsx",
".jsx"
],
".css": [
".cs",
".razor",
".less",
".scss",
".sass",
".styl"
],
".html": [
".md",
".mdown",
".markdown",
".mdwn"
],
".map": [
".js",
".css"
],
".svgz": [
".svg"
],
".designer.cs": [
".resx"
],
".cs.d.ts": [
".cs"
]
}
},
"fileToFile": {
"add": {
".bowerrc": [
"bower.json"
],
".npmrc": [
"package.json"
],
"npm-shrinkwrap.json": [
"package.json"
],
"yarn.lock": [
"package.json"
],
".yarnclean": [
"package.json"
],
".yarnignore": [
"package.json"
],
".yarn-integrity": [
"package.json"
],
".yarnrc": [
"package.json"
],
"package-lock.json": [
"package.json"
]
}
},
"fileSuffixToExtension": {
"add": {
"-vsdoc.js": [
".js"
]
}
},
"allExtensions": {
"add": {
}
}
}
}
}

View File

@@ -1,7 +1,8 @@
### 重现步骤
### 提供问题的摘要,以及你预期会发生什么,包括重现的具体步骤
[请务必填写重现步骤,作者无法重现步骤将无法修复缺陷,此类 Issue 将被标注为无法重现,三天后将会被关闭]
[创建 Issue 后,作者会第一时间响应,请务必认真对待,作者认真对待 Issue 也请提交 Issue 的人认真对待,如创建 Issue 就不理的将会关闭]
---------请删除上面提示信息以及本行---------
### 报错信息

View File

@@ -5,6 +5,7 @@ on:
branches:
- main
- dev
- dev-table
jobs:
deploy:
@@ -13,14 +14,31 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
- name: Setup .NET Core 2.1
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.202
dotnet-version: 2.1.x
- name: Setup .NET Core 6
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
- name: Build
env:
NUGET_API_KEY: ${{secrets.NUGET_API_KEY}}
Bundle: True
run: |
dotnet restore src/BootstrapBlazor --no-cache
dotnet build src/BootstrapBlazor
- name: Test
run: |
dotnet test test/UnitTest -c Release --collect:"XPlat Code Coverage" -r ./coverage
#dotnet test test/UnitTest.Localization -c Release -f net6.0 --collect:"XPlat Code Coverage" -r ./coverage
- name: Upload to Codecov
uses: codecov/codecov-action@v2
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: ./coverage/

View File

@@ -8,8 +8,18 @@ on:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Build the Docker image
run: docker build . --file src/BootstrapBlazor.Server/Linux.Dockerfile --tag bb:$(date +%s)
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Docker images
uses: docker/build-push-action@v2.7.0
with:
file: src/BootstrapBlazor.Server/Dockerfile
push: true
tags: argozhang/blazor:latest

View File

@@ -4,6 +4,7 @@ on:
push:
branches:
- pack
- hotfix
jobs:
pack:
@@ -12,14 +13,21 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
- name: Setup .NET Core 2.1
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.202
dotnet-version: 2.1.x
- name: Setup .NET Core 6
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
- name: Publish to Nuget
env:
NUGET_API_KEY: ${{secrets.NUGET_API_KEY}}
Bundle: True
run: |
dotnet pack src/BootstrapBlazor -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate

View File

@@ -12,10 +12,15 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
- name: Setup .NET Core 2.1
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.202
dotnet-version: 2.1.x
- name: Setup .NET Core 6
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
- name: Publish wasm
run: |

View File

@@ -12,14 +12,20 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
- name: Setup .NET Core 2.1
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.202
dotnet-version: 2.1.x
- name: Setup .NET Core 6
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
- name: Publish to Nuget
env:
NUGET_API_KEY: ${{secrets.NUGET_API_KEY}}
Bundle: True
run: |
dotnet pack src/Extensions/Components/BootstrapBlazor.Chart -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.Chart.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
@@ -30,6 +36,9 @@ jobs:
dotnet pack src/Extensions/Components/BootstrapBlazor.Markdown -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.Markdown.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.FontAwesome -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.FontAwesome.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/DataServices/BootstrapBlazor.DataAcces.PetaPoco -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.DataAcces.PetaPoco.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
@@ -38,3 +47,6 @@ jobs:
dotnet pack src/Extensions/DataServices/BootstrapBlazor.DataAcces.FreeSql -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.DataAcces.FreeSql.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Middleware/BootstrapBlazor.Middleware -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.Middleware.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate

5
.gitignore vendored
View File

@@ -1,4 +1,4 @@
###### -- File Created With Git Source Control Provider 2015 -- ######
###### -- File Created With Git Source Control Provider 2015 -- ######
###### -- From https://github.com/github/gitignore -- ######
###### -- Warning Regenerating this file will erase all your custom ignores, unless you add them below the Custom Ignore section at the bottom -- ######
## Ignore Visual Studio temporary files, build results, and
@@ -354,3 +354,6 @@ src/**/*.xml
# Coverage
coverage*.xml
tools/
# Upload Folder
src/**/wwwroot/**/uploader

View File

@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29911.84
# Visual Studio Version 17
VisualStudioVersion = 17.0.31912.275
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor", "src\BootstrapBlazor\BootstrapBlazor.csproj", "{D0AE3016-4878-4807-A04C-C33CBEC7B092}"
EndProject
@@ -13,8 +13,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{A627
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "linux", "linux", "{EA765165-0542-41C8-93F2-85787FEDEDFF}"
ProjectSection(SolutionItems) = preProject
scripts\linux\ba.blazor.service = scripts\linux\ba.blazor.service
scripts\linux\deploy-blazor.sh = scripts\linux\deploy-blazor.sh
scripts\linux\deploy-wasm.sh = scripts\linux\deploy-wasm.sh
scripts\linux\nginx.conf = scripts\linux\nginx.conf
scripts\linux\publish.sh = scripts\linux\publish.sh
scripts\linux\watch-run.sh = scripts\linux\watch-run.sh
EndProjectSection
@@ -67,9 +69,6 @@ EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTest", "test\UnitTest\UnitTest.csproj", "{190F25CF-C6F9-4964-97E9-F6A912D527AE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "extensions", "extensions", "{22328011-53B3-447A-B781-AC3C196B2847}"
ProjectSection(SolutionItems) = preProject
src\Extensions\Directory.Build.props = src\Extensions\Directory.Build.props
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wasm", "wasm", "{C8E79F4C-8C55-4E13-96B5-3D2BD6A07B74}"
EndProject
@@ -100,6 +99,7 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "config", "config", "{8AB9DB43-233A-4D49-99FA-FA540C2109F2}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
.filenesting.json = .filenesting.json
.gitattributes = .gitattributes
.gitignore = .gitignore
.issuetracker = .issuetracker
@@ -108,6 +108,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "config", "config", "{8AB9DB
NuGet.Config = NuGet.Config
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "middleware", "middleware", "{4A7F4513-C515-40DD-A217-169E1CBB2827}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Middleware", "src\Middleware\BootstrapBlazor.Middleware\BootstrapBlazor.Middleware.csproj", "{59B49D4C-05FB-4E51-AB40-9498ADC71DD0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTest.Localization", "test\UnitTest.Localization\UnitTest.Localization.csproj", "{99B55645-0E89-43F8-938F-2304B486AD2A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.FontAwesome", "src\Extensions\Components\BootstrapBlazor.FontAwesome\BootstrapBlazor.FontAwesome.csproj", "{C28717F8-9D2B-4296-9CC4-94882338F370}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Speech", "src\Extensions\Components\BootstrapBlazor.Speech\BootstrapBlazor.Speech.csproj", "{6A294916-66AF-4A05-B26F-006A9FEFFD51}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -162,6 +172,22 @@ Global
{FFFD2EB7-AE88-4DAD-A825-528B2CEFB4B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FFFD2EB7-AE88-4DAD-A825-528B2CEFB4B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FFFD2EB7-AE88-4DAD-A825-528B2CEFB4B5}.Release|Any CPU.Build.0 = Release|Any CPU
{59B49D4C-05FB-4E51-AB40-9498ADC71DD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{59B49D4C-05FB-4E51-AB40-9498ADC71DD0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{59B49D4C-05FB-4E51-AB40-9498ADC71DD0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{59B49D4C-05FB-4E51-AB40-9498ADC71DD0}.Release|Any CPU.Build.0 = Release|Any CPU
{99B55645-0E89-43F8-938F-2304B486AD2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99B55645-0E89-43F8-938F-2304B486AD2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99B55645-0E89-43F8-938F-2304B486AD2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99B55645-0E89-43F8-938F-2304B486AD2A}.Release|Any CPU.Build.0 = Release|Any CPU
{C28717F8-9D2B-4296-9CC4-94882338F370}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C28717F8-9D2B-4296-9CC4-94882338F370}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C28717F8-9D2B-4296-9CC4-94882338F370}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C28717F8-9D2B-4296-9CC4-94882338F370}.Release|Any CPU.Build.0 = Release|Any CPU
{6A294916-66AF-4A05-B26F-006A9FEFFD51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6A294916-66AF-4A05-B26F-006A9FEFFD51}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6A294916-66AF-4A05-B26F-006A9FEFFD51}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6A294916-66AF-4A05-B26F-006A9FEFFD51}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -188,6 +214,11 @@ Global
{1ED371F3-2B28-4B2D-91B8-0C00DA42CB65} = {A2182155-43ED-44C1-BF6F-1B70EBD2DFFE}
{0556D9AB-8673-4248-8817-4D99F4DCC568} = {C8E79F4C-8C55-4E13-96B5-3D2BD6A07B74}
{FFFD2EB7-AE88-4DAD-A825-528B2CEFB4B5} = {C8E79F4C-8C55-4E13-96B5-3D2BD6A07B74}
{4A7F4513-C515-40DD-A217-169E1CBB2827} = {A2182155-43ED-44C1-BF6F-1B70EBD2DFFE}
{59B49D4C-05FB-4E51-AB40-9498ADC71DD0} = {4A7F4513-C515-40DD-A217-169E1CBB2827}
{99B55645-0E89-43F8-938F-2304B486AD2A} = {7C1D79F1-87BC-42C1-BD5A-CDE4044AC1BD}
{C28717F8-9D2B-4296-9CC4-94882338F370} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{6A294916-66AF-4A05-B26F-006A9FEFFD51} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0DCB0756-34FA-4FD0-AE1D-D3F08B5B3A6B}

12
BootstrapBlazor.slnf Normal file
View File

@@ -0,0 +1,12 @@
{
"solution": {
"path": "BootstrapBlazor.sln",
"projects": [
"src\\BootstrapBlazor.Server\\BootstrapBlazor.Server.csproj",
"src\\BootstrapBlazor.Shared\\BootstrapBlazor.Shared.csproj",
"src\\BootstrapBlazor\\BootstrapBlazor.csproj",
"test\\UnitTest.Localization\\UnitTest.Localization.csproj",
"test\\UnitTest\\UnitTest.csproj"
]
}
}

View File

@@ -1,6 +1,5 @@
<Project>
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<Copyright>Argo Zhang</Copyright>
<Authors>Argo Zhang(argo@163.com)</Authors>
<Company>Longbow</Company>

View File

@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="azure" value="https://nuget.cdn.azure.cn/v3/index.json" />
<add key="cnblogs" value="https://nuget.cnblogs.com/v3/index.json" />
<add key="huawei" value="https://repo.huaweicloud.com/repository/nuget/v3/index.json" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="Blazor" value="https://nuget.blazor.zone/v3/index.json" />
</packageSources>
</configuration>

View File

@@ -3,20 +3,19 @@
<div align="center">
<h2>A set of enterprise-class UI components based on Bootstrap and Blazor.</h2>
[![Github build](https://img.shields.io/github/workflow/status/ArgoZhang/BootstrapBlazor/Build%20Project/main?label=main&logo=github&logoColor=green)](https://github.com/ArgoZhang/BootstrapBlazor/actions?query=workflow%3A%22Build+Project%22+branch%3Amain)
[![License](https://img.shields.io/github/license/argozhang/bootstrapblazor.svg?logo=git&logoColor=red)](https://github.com/ArgoZhang/BootstrapBlazor/blob/main/LICENSE)
[![Nuget](https://img.shields.io/nuget/v/BootstrapBlazor.svg?color=red&logo=nuget&logoColor=green)](https://www.nuget.org/packages/BootstrapBlazor/)
[![Nuget](https://img.shields.io/nuget/dt/BootstrapBlazor.svg?logo=nuget&logoColor=green)](https://www.nuget.org/packages/BootstrapBlazor/)
[![Github](https://img.shields.io/github/license/argozhang/bootstrapblazor.svg?logo=git&logoColor=red)](https://github.com/ArgoZhang/BootstrapBlazor/blob/main/LICENSE)
[![Repo Size](https://img.shields.io/github/repo-size/ArgoZhang/BootstrapBlazor.svg?logo=github&logoColor=green&label=repo)](https://github.com/ArgoZhang/BootstrapBlazor)
[![Commit Date](https://img.shields.io/github/last-commit/ArgoZhang/BootstrapBlazor/main.svg?logo=github&logoColor=green&label=commit)](https://github.com/ArgoZhang/BootstrapBlazor)
[![Github build](https://img.shields.io/github/workflow/status/ArgoZhang/BootstrapBlazor/Build%20Project/main?label=main&logo=github&logoColor=green)](https://github.com/ArgoZhang/BootstrapBlazor/actions?query=workflow%3A%22Build+Project%22+branch%3Amain)
[![codecov](https://codecov.io/gh/dotnetcore/BootstrapBlazor/branch/main/graph/badge.svg?token=5SXIWHXZC3)](https://codecov.io/gh/dotnetcore/BootstrapBlazor)
</div>
---
English | <a href="README.zh-CN.md">中文</a>
---
## Features
- Enterprise-class UI designed for web applications.
- A set of high-quality Blazor components out of the box.
@@ -34,7 +33,7 @@ English | <a href="README.zh-CN.md">中文</a>
## Installation Guide
- Install .net core sdk [Offical website](https://dotnet.microsoft.com/download)
- Install Visual Studio 2019 lastest [Offical website](https://visualstudio.microsoft.com/vs/getting-started/)
- Install Visual Studio 2022 lastest [Offical website](https://visualstudio.microsoft.com/vs/getting-started/)
## Create a new project from the dotnet new template

View File

@@ -3,17 +3,15 @@
<div align="center">
<h2>一套基于 Bootstrap 和 Blazor 的企业级组件库</h2>
[![Github build](https://img.shields.io/github/workflow/status/ArgoZhang/BootstrapBlazor/Build%20Project/main?label=main&logo=github&logoColor=green)](https://github.com/ArgoZhang/BootstrapBlazor/actions?query=workflow%3A%22Build+Project%22+branch%3Amain)
[![License](https://img.shields.io/github/license/argozhang/bootstrapblazor.svg?logo=git&logoColor=red)](https://github.com/ArgoZhang/BootstrapBlazor/blob/main/LICENSE)
[![Nuget](https://img.shields.io/nuget/v/BootstrapBlazor.svg?color=red&logo=nuget&logoColor=green)](https://www.nuget.org/packages/BootstrapBlazor/)
[![Nuget](https://img.shields.io/nuget/dt/BootstrapBlazor.svg?logo=nuget&logoColor=green)](https://www.nuget.org/packages/BootstrapBlazor/)
[![Github](https://img.shields.io/github/license/argozhang/bootstrapblazor.svg?logo=git&logoColor=red)](https://github.com/ArgoZhang/BootstrapBlazor/blob/main/LICENSE)
[![Repo Size](https://img.shields.io/github/repo-size/ArgoZhang/BootstrapBlazor.svg?logo=github&logoColor=green&label=repo)](https://github.com/ArgoZhang/BootstrapBlazor)
[![Commit Date](https://img.shields.io/github/last-commit/ArgoZhang/BootstrapBlazor/main.svg?logo=github&logoColor=green&label=commit)](https://github.com/ArgoZhang/BootstrapBlazor)
[![Github build](https://img.shields.io/github/workflow/status/ArgoZhang/BootstrapBlazor/Build%20Project/main?label=main&logo=github&logoColor=green)](https://github.com/ArgoZhang/BootstrapBlazor/actions?query=workflow%3A%22Build+Project%22+branch%3Amain)
[![codecov](https://codecov.io/gh/dotnetcore/BootstrapBlazor/branch/main/graph/badge.svg?token=5SXIWHXZC3)](https://codecov.io/gh/dotnetcore/BootstrapBlazor)
</div>
---
<a href="README.md">English</a> | <span>中文</span>
---
@@ -37,9 +35,18 @@ Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架:
本项目是利用 Bootstrap 样式进行封装的 UI 组件库
## 生态伙伴
WTM 快速开发框架,设计的核心理念就是 "尽一切可能提高开发效率"。WTM框架把常规编码结构化重复编码自动化它不仅是一个框架它是强有力的生产力工具目前 WTM 快速开发框架已深度集成 Blazor 欢迎大家使用 [传送门](https://wtmdoc.walkingtec.cn)
<a href="https://wtmdoc.walkingtec.cn" target="_blank"><img src="http://images.gitee.com/uploads/images/2021/0718/194451_5b6cff04_554725.png" width="100px" /></a>
WTM 快速开发框架,设计的核心理念就是 "尽一切可能提高开发效率"。WTM框架把常规编码结构化重复编码自动化它不仅是一个框架它是强有力的生产力工具目前 WTM 快速开发框架已深度集成 Blazor 欢迎大家使用 [传送门](https://wtmdoc.walkingtec.cn)
## 开发环境搭建
1. 安装 .net core sdk 最新版 [官方网址](http://www.microsoft.com/net/download)
2. 安装 Visual Studio 2019 最新版 [官方网址](https://visualstudio.microsoft.com/vs/getting-started/)
2. 安装 Visual Studio 2022 最新版 [官方网址](https://visualstudio.microsoft.com/vs/getting-started/)
3. 获取本项目代码 [BootstrapBlazor](https://gitee.com/LongbowEnterprise/BootstrapBlazor)
## 相关资源
@@ -56,7 +63,7 @@ Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架:
## QQ交流群
[![QQ](https://img.shields.io/badge/QQ-795206915(满)-red.svg?logo=tencent%20qq&logoColor=red)](https://qm.qq.com/cgi-bin/qm/qr?k=1-jF9-5WA_3GFiJgXem2U_AQfqbdyOlV&jump_from=webapi) [![QQ](https://img.shields.io/badge/QQ-675147445-green.svg?logo=tencent%20qq&logoColor=red)](https://qm.qq.com/cgi-bin/qm/qr?k=Geker7hCXK0HC-J8_974645j_n6w0OE0&jump_from=webapi)
[![QQ](https://img.shields.io/badge/QQ-795206915-green.svg?logo=tencent%20qq&logoColor=red)](https://qm.qq.com/cgi-bin/qm/qr?k=1-jF9-5WA_3GFiJgXem2U_AQfqbdyOlV&jump_from=webapi) [![QQ](https://img.shields.io/badge/QQ-675147445-green.svg?logo=tencent%20qq&logoColor=red)](https://qm.qq.com/cgi-bin/qm/qr?k=Geker7hCXK0HC-J8_974645j_n6w0OE0&jump_from=webapi)
## 视频教程
@@ -83,7 +90,7 @@ Blazor 应用基于组件。 Blazor 中的组件是指 UI 元素,例如页面
- 其他 均为临时分支
## 演示地址
[![website](https://img.shields.io/badge/Github-海外-success.svg?logo=buzzfeed&logoColor=red&color=red)](https://argozhang.github.io) [![website](https://img.shields.io/badge/linux-备站-success.svg?logo=buzzfeed&logoColor=green)](https://blazor.zylweb.cn) [![website](https://img.shields.io/badge/linux-主站-success.svg?logo=buzzfeed&logoColor=green)](https://www.blazor.zone)
[![website](https://img.shields.io/badge/Github-海外-success.svg?logo=buzzfeed&logoColor=red&color=red)](https://argozhang.github.io) [![website](https://img.shields.io/badge/linux-主站-success.svg?logo=buzzfeed&logoColor=green)](https://www.blazor.zone)
## GVP 奖杯
![项目奖杯](https://images.gitee.com/uploads/images/2021/0112/120620_e596ac3c_554725.png "GVP.png")

View File

@@ -0,0 +1,15 @@
[Unit]
Description=Bootstrap Admin Blazor Application
[Service]
Type=simple
WorkingDirectory=/usr/local/ba/blazor
Environment=ASPNETCORE_ENVIRONMENT=Production
ExecStart=/usr/bin/dotnet BootstrapBlazor.Server.dll --urls http://localhost:50853
ExecStop=/bin/kill -2 $MAINPID
KillMode=process
Restart=on-failure
RestartSec=1s
[Install]
WantedBy=multi-user.target

View File

@@ -3,9 +3,9 @@
cd ~/BootstrapBlazor
git pull
dotnet restore --no-cache
dotnet publish src/BootstrapBlazor.WebConsole -c Release
dotnet publish src/BootstrapBlazor.Server -c Release
systemctl stop ba.blazor
\cp -fr ~/BootstrapBlazor/src/BootstrapBlazor.WebConsole/bin/Release/net5.0/publish/* /usr/local/ba/blazor
\cp -fr ~/BootstrapBlazor/src/BootstrapBlazor.Server/bin/Release/net6.0/publish/* /usr/local/ba/blazor
systemctl start ba.blazor
systemctl status ba.blazor -l
systemctl status ba.blazor -l --no-pager

View File

@@ -3,4 +3,4 @@
cd ~/BootstrapBlazor
git pull
dotnet publish ~/BootstrapBlazor/src/BootstrapBlazor.WebAssembly.ClientHost -c Release -o /usr/local/ba/wasm/
dotnet publish ~/BootstrapBlazor/src/Wasm/BootstrapBlazor.WebAssembly.ClientHost -c Release -o /usr/local/ba/wasm/

56
scripts/linux/nginx.conf Normal file
View File

@@ -0,0 +1,56 @@
server {
listen 80;
server_name www.blazor.zone;
client_max_body_size 20m;
rewrite ^(.*)$ https://$host$1 redirect;
error_page 404 500 /50x.html;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_connect_timeout 1;
proxy_pass http://localhost:50853;
}
location /_blazor {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:50853/_blazor;
}
location = /50x.html {
root html;
}
error_page 404 500 502 503 504 /50x.html;
}
server {
listen 443 ssl;
server_name www.blazor.zone;
ssl_certificate blazor_zone.crt;
ssl_certificate_key blazor_zone.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header X-Frame-Options SAMEORIGIN;
location / {
proxy_connect_timeout 1;
proxy_pass http://localhost:50853;
}
location /_blazor {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:50853/_blazor;
}
}

View File

@@ -0,0 +1 @@
setx Bundle=True

View File

@@ -1,11 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project="..\Framework.props" />
<PropertyGroup>
<IsWebProject>true</IsWebProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Longbow.Tasks" Version="5.0.1" />
<PackageReference Include="BootstrapBlazor.FontAwesome" Version="6.*" />
<PackageReference Include="BootstrapBlazor.Middleware" Version="1.*" />
<PackageReference Include="Longbow.Logging" Version="5.2.0" />
<PackageReference Include="Longbow.Tasks" Version="5.*" />
</ItemGroup>
<ItemGroup>

View File

@@ -5,46 +5,42 @@
using BootstrapBlazor.Shared;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using System;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
namespace BootstrapBlazor.Server.Controllers.Api
namespace BootstrapBlazor.Server.Controllers.Api;
/// <summary>
///
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class CodeController : ControllerBase
{
/// <summary>
///
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class CodeController : ControllerBase
/// <param name="fileName"></param>
/// <param name="client"></param>
/// <param name="options"></param>
/// <returns></returns>
[HttpGet]
public async Task<string> Get([FromQuery] string fileName, [FromServices] HttpClient client, [FromServices] IOptions<WebsiteOptions> options)
{
/// <summary>
///
/// </summary>
/// <param name="fileName"></param>
/// <param name="client"></param>
/// <param name="options"></param>
/// <returns></returns>
[HttpGet]
public async Task<string> Get([FromQuery] string fileName, [FromServices] HttpClient client, [FromServices] IOptions<WebsiteOptions> options)
var ret = "";
client.BaseAddress = new Uri(options.Value.RepositoryUrl);
try
{
var ret = "";
client.BaseAddress = new Uri(options.Value.RepositoryUrl);
try
{
ret = await client.GetStringAsync(fileName);
}
catch (HttpRequestException ex) { ret = ex.StatusCode == HttpStatusCode.NotFound ? "无" : ex.StatusCode.ToString() ?? "网络错误"; }
catch (Exception) { }
return ret;
ret = await client.GetStringAsync(fileName);
}
/// <summary>
///
/// </summary>
/// <returns></returns>
[HttpOptions]
public string Options() => "";
catch (HttpRequestException ex) { ret = ex.StatusCode == HttpStatusCode.NotFound ? "无" : ex.StatusCode.ToString() ?? "网络错误"; }
catch (Exception) { }
return ret;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
[HttpOptions]
public string Options() => string.Empty;
}

View File

@@ -0,0 +1,71 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using BootstrapBlazor.Shared;
using Microsoft.AspNetCore.Mvc;
namespace BootstrapBlazor.Server.Controllers.Api;
/// <summary>
///
/// </summary>
[Route("api/[controller]/[action]")]
[ApiController]
public class GiteeController : ControllerBase
{
/// <summary>
/// Gitee Webhook
/// </summary>
/// <returns></returns>
[HttpPost]
public IActionResult Webhook([FromQuery] string? id, [FromServices] IConfiguration config, [FromServices] IDispatchService<GiteePostBody> dispatch, [FromBody] GiteePostBody payload)
{
bool ret = false;
if (Check())
{
// 全局推送
if (payload.HeadCommit != null || payload.Commits?.Count > 0)
{
dispatch.Dispatch(new DispatchEntry<GiteePostBody>()
{
Name = "Gitee",
Entry = payload
});
}
ret = true;
}
return ret ? Ok() : Unauthorized();
bool Check()
{
var configId = config.GetValue<string>("WebHooks:Gitee:Id");
var configToken = config.GetValue<string>("WebHooks:Gitee:Token");
var token = "";
if (Request.Headers.TryGetValue("X-Gitee-Token", out var vals))
{
token = vals.FirstOrDefault() ?? string.Empty;
}
return id == configId && token == configToken
&& payload.Id == configId && payload.Password == configToken;
}
}
/// <summary>
/// Webhook 测试接口
/// </summary>
/// <returns></returns>
[HttpGet]
public IActionResult Webhook()
{
return Ok(new { Message = "Ok" });
}
/// <summary>
/// 跨域握手协议
/// </summary>
/// <returns></returns>
[HttpOptions]
public string Options() => string.Empty;
}

View File

@@ -0,0 +1,38 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Shared;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace BootstrapBlazor.Server.Controllers.Api;
/// <summary>
///
/// </summary>
[Route("api/[controller]")]
[AllowAnonymous]
[ApiController]
public class LoginController : ControllerBase
{
/// <summary>
///
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
[HttpPost]
public IActionResult Post(User user)
{
IActionResult? response;
if (user.UserName == "admin" && user.Password == "123456")
{
response = new JsonResult(new { Code = 200, Message = "登录成功" });
}
else
{
response = new JsonResult(new { Code = 500, Message = "用户名或密码错误" });
}
return response;
}
}

View File

@@ -5,46 +5,45 @@
using Microsoft.AspNetCore.Localization;
using Microsoft.AspNetCore.Mvc;
namespace BootstrapBlazor.Server.Controllers
namespace BootstrapBlazor.Server.Controllers;
/// <summary>
///
/// </summary>
[Route("[controller]/[action]")]
public class CultureController : Controller
{
/// <summary>
///
/// </summary>
[Route("[controller]/[action]")]
public class CultureController : Controller
/// <param name="culture"></param>
/// <param name="redirectUri"></param>
/// <returns></returns>
public IActionResult SetCulture(string culture, string redirectUri)
{
/// <summary>
///
/// </summary>
/// <param name="culture"></param>
/// <param name="redirectUri"></param>
/// <returns></returns>
public IActionResult SetCulture(string culture, string redirectUri)
{
if (string.IsNullOrEmpty(culture))
{
HttpContext.Response.Cookies.Delete(CookieRequestCultureProvider.DefaultCookieName);
}
else
{
HttpContext.Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture, culture)));
}
return LocalRedirect(redirectUri);
}
/// <summary>
///
/// </summary>
/// <param name="redirectUri"></param>
/// <returns></returns>
public IActionResult ResetCulture(string redirectUri)
if (string.IsNullOrEmpty(culture))
{
HttpContext.Response.Cookies.Delete(CookieRequestCultureProvider.DefaultCookieName);
return LocalRedirect(redirectUri);
}
else
{
HttpContext.Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture, culture)));
}
return LocalRedirect(redirectUri);
}
/// <summary>
///
/// </summary>
/// <param name="redirectUri"></param>
/// <returns></returns>
public IActionResult ResetCulture(string redirectUri)
{
HttpContext.Response.Cookies.Delete(CookieRequestCultureProvider.DefaultCookieName);
return LocalRedirect(redirectUri);
}
}

View File

@@ -1,11 +1,11 @@
#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#For more information, please see https://aka.ms/containercompat
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /
COPY . .
@@ -14,6 +14,7 @@ FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
ENV LANG zh_CN.utf8
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "BootstrapBlazor.Server.dll"]

View File

@@ -0,0 +1,94 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using BootstrapBlazor.Server.Services;
using Microsoft.Extensions.Options;
using System.Reflection;
namespace Microsoft.Extensions.DependencyInjection;
/// <summary>
/// 后台任务扩展方法
/// </summary>
internal static class ServicesExtensions
{
/// <summary>
/// 添加示例后台任务
/// </summary>
/// <param name="services"></param>
public static IServiceCollection AddBootstrapBlazorServices(this IServiceCollection services)
{
// 增加错误日志
services.AddLogging(logging => logging.AddFileLogger());
// 增加后台任务服务
services.AddTaskServices();
services.AddHostedService<ClearUploadFilesService>();
// 增加演示网站服务
services.AddWebSiteServices();
// 增加 BootstrapBlazor 组件
services.AddBootstrapBlazor();
services.ConfigureJsonLocalizationOptions(options =>
{
// 附加自己的 json 多语言文化资源文件 如 zh-TW.json
options.AdditionalJsonAssemblies = new Assembly[]
{
typeof(BootstrapBlazor.Shared.App).Assembly,
typeof(BootstrapBlazor.Components.Chart).Assembly
};
});
// 设置地理位置定位器
services.ConfigureIPLocatorOption(op => op.LocatorFactory = sp => new BaiDuIPLocator());
// 增加多语言支持配置信息
services.AddRequestLocalization<IOptions<BootstrapBlazorOptions>>((localizerOption, blazorOption) =>
{
var supportedCultures = blazorOption.Value.GetSupportedCultures();
localizerOption.SupportedCultures = supportedCultures;
localizerOption.SupportedUICultures = supportedCultures;
});
// 增加 PetaPoco ORM 数据服务操作类
// 需要时打开下面代码
//services.AddPetaPoco(option =>
//{
// // 配置数据信息
// // 使用 SQLite 数据以及从配置文件中获取数据库连接字符串
// // 需要引用 Microsoft.Data.Sqlite 包,操作 SQLite 数据库
// // 需要引用 PetaPoco.Extensions 包PetaPoco 包扩展批量插入与删除
// option.UsingProvider<SQLiteDatabaseProvider>()
// .UsingConnectionString(Configuration.GetConnectionString("bb"));
//});
// 增加 FreeSql ORM 数据服务操作类
// 需要时打开下面代码
// 需要引入 FreeSql 对 SQLite 的扩展包 FreeSql.Provider.Sqlite
//services.AddFreeSql(option =>
//{
// option.UseConnectionString(FreeSql.DataType.Sqlite, Configuration.GetConnectionString("bb"))
#if DEBUG
// //开发环境:自动同步实体
// .UseAutoSyncStructure(true)
// //调试sql语句输出
// .UseMonitorCommand(cmd => System.Console.WriteLine(cmd.CommandText))
#endif
// ;
//});
// 增加 EFCore ORM 数据服务操作类
// 需要时打开下面代码
//services.AddEntityFrameworkCore<Shared.Pages.FooDbContext>(option =>
//{
// // 需要引用 Microsoft.EntityFrameworkCore.Sqlite 包,操作 SQLite 数据库
// option.UseSqlite(Configuration.GetConnectionString("bb"));
//});
return services;
}
}

View File

@@ -1,94 +0,0 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Shared;
using Longbow.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using System.IO;
using System.Linq;
using System.Threading;
using Task = System.Threading.Tasks.Task;
namespace Microsoft.Extensions.DependencyInjection
{
/// <summary>
/// 后台任务扩展方法
/// </summary>
internal static class TasksExtensions
{
/// <summary>
/// 添加示例后台任务
/// </summary>
/// <param name="services"></param>
public static IServiceCollection AddBlazorBackgroundTask(this IServiceCollection services)
{
services.AddSingleton<WeatherForecastService>();
services.AddTaskServices();
services.AddHttpClient();
services.AddVersionManager();
services.AddExampleService();
services.AddSingleton<IConfigureOptions<WebsiteOptions>, ConfigureOptions<WebsiteOptions>>();
services.AddHostedService<BlazorBackgroundServices>();
return services;
}
}
/// <summary>
/// 后台任务服务类
/// </summary>
internal class BlazorBackgroundServices : BackgroundService
{
private readonly IWebHostEnvironment? _env;
/// <summary>
///
/// </summary>
/// <param name="env"></param>
/// <param name="websiteOption"></param>
public BlazorBackgroundServices(IWebHostEnvironment env, IOptions<WebsiteOptions> websiteOption)
{
_env = env;
websiteOption.Value.WebRootPath = env.WebRootPath;
}
/// <summary>
/// 运行任务
/// </summary>
/// <param name="stoppingToken"></param>
/// <returns></returns>
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
TaskServicesManager.GetOrAdd("Clear Upload Files", token =>
{
if (_env != null)
{
var webSiteUrl = $"images{Path.DirectorySeparatorChar}uploader{Path.DirectorySeparatorChar}";
var filePath = Path.Combine(_env.WebRootPath, webSiteUrl);
if (Directory.Exists(filePath))
{
Directory.EnumerateFiles(filePath).Take(10).ToList().ForEach(file =>
{
try
{
if (token.IsCancellationRequested)
{
return;
}
File.Delete(file);
}
catch { }
});
}
}
return Task.CompletedTask;
}, TriggerBuilder.Build(Cron.Minutely(10)));
return Task.CompletedTask;
}
}
}

View File

@@ -1,70 +1,8 @@
@page "/"
@using BootstrapBlazor.Shared
@namespace BootstrapBlazor.Server
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
Layout = null;
Layout = "_Layout";
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<meta name="keywords" content="bootstrap,blazor,wasm,webassembly,UI,netcore,web,assembly">
<meta name="description" content="基于 Bootstrap 风格的 Blazor UI 组件库,用于研发企业级中后台产品。">
<meta name="author" content="argo (argo@163.com)">
<title>Bootstrap Blazor - 企业级 UI 组件库</title>
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="favicon.png">
<base href="~/">
<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css" asp-append-version="true">
<link rel="stylesheet" href="_content/BootstrapBlazor.Chart/css/bootstrap.blazor.chart.bundle.min.css" asp-append-version="true">
<link rel="stylesheet" href="_content/BootstrapBlazor.Markdown/css/bootstrap.blazor.markdown.min.css" asp-append-version="true">
<link rel="stylesheet" href="_content/BootstrapBlazor.Shared/lib/highlight/vs.css" asp-append-version="true">
<link rel="stylesheet" href="_content/BootstrapBlazor.Shared/css/site.css" asp-append-version="true">
<environment include="Staging,Production">
<script>
var _hmt = _hmt || [];
(function () {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?f147c9b2e3e0cc2b629c6390e5ffe377";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</environment>
</head>
<body>
<app>
@(await Html.RenderComponentAsync<App>(RenderMode.ServerPrerendered))
</app>
<div id="blazor-error-ui">
<environment include="Staging,Production">
An error has occurred. This application may no longer respond until reloaded.
</environment>
<environment include="Development">
An unhandled exception has occurred. See browser dev tools for details.
</environment>
<a href="" class="reload">Reload</a>
<a class="dismiss"><i class="fa fa-times"></i></a>
</div>
<div class="wwads-cn wwads-horizontal" data-id="72" style="max-width:350px"></div>
<script src="_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js" asp-append-version="true"></script>
<script src="_content/BootstrapBlazor.Chart/js/bootstrap.blazor.chart.bundle.min.js" asp-append-version="true"></script>
<script src="_content/BootstrapBlazor.TableExport/js/export.min.js" asp-append-version="true"></script>
<script src="_content/BootstrapBlazor.Markdown/js/bootstrap.blazor.markdown.min.js" asp-append-version="true"></script>
<script src="_content/BootstrapBlazor.Shared/lib/highlight/highlight.min.js" asp-append-version="true"></script>
<script src="_content/BootstrapBlazor.Shared/lib/summernote/summernote-zh-CN.min.js" asp-append-version="true"></script>
<script src="_content/BootstrapBlazor.Shared/js/common.js" asp-append-version="true"></script>
<script src="_framework/blazor.server.js" asp-append-version="true"></script>
<environment include="Staging,Production">
<script src="https://wwads.cn/js/makemoney.js" type="text/javascript" async></script>
</environment>
</body>
</html>
<component type="typeof(App)" render-mode="ServerPrerendered" />

View File

@@ -0,0 +1,66 @@
@using Microsoft.AspNetCore.Components.Web
@namespace BootstrapBlazor.Server
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="keywords" content="bootstrap,blazor,wasm,webassembly,UI,netcore,web,assembly">
<meta name="description" content="基于 Bootstrap 风格的 Blazor UI 组件库,用于研发企业级中后台产品。">
<meta name="author" content="argo (argo@163.com)">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="favicon.png">
<base href="~/">
<link rel="stylesheet" href="_content/BootstrapBlazor.FontAwesome/css/font-awesome.min.css">
<link rel="stylesheet" href="_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css" asp-append-version="true">
<link rel="stylesheet" href="_content/BootstrapBlazor.Chart/css/bootstrap.blazor.chart.bundle.min.css" asp-append-version="true">
<link rel="stylesheet" href="_content/BootstrapBlazor.Markdown/css/bootstrap.blazor.markdown.min.css" asp-append-version="true">
<link rel="stylesheet" href="_content/BootstrapBlazor.Shared/BootstrapBlazor.Shared.bundle.scp.css" asp-append-version="true">
<link rel="stylesheet" href="_content/BootstrapBlazor.Shared/lib/highlight/vs.css" asp-append-version="true">
<link rel="stylesheet" href="_content/BootstrapBlazor.Shared/css/site.css" asp-append-version="true">
<link rel="stylesheet" href="_content/BootstrapBlazor/css/motronic.min.css" asp-append-version="true">
<link rel="stylesheet" href="_content/BootstrapBlazor.Shared/css/motronic.css" asp-append-version="true">
<environment include="Staging,Production">
<script>
var _hmt = _hmt || [];
(function () {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?f147c9b2e3e0cc2b629c6390e5ffe377";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</environment>
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
</head>
<body>
@RenderBody()
<div id="blazor-error-ui">
<span>
<environment include="Staging,Production">
An error has occurred. This application may no longer respond until reloaded.
</environment>
<environment include="Development">
An unhandled exception has occurred. See browser dev tools for details.
</environment>
</span>
<a href="" class="reload">Reload</a>
<a class="dismiss"><i class="fa fa-times"></i></a>
</div>
<script src="_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js" asp-append-version="true"></script>
<script src="_content/BootstrapBlazor.Chart/js/bootstrap.blazor.chart.bundle.min.js" asp-append-version="true"></script>
<script src="_content/BootstrapBlazor.TableExport/js/export.min.js" asp-append-version="true"></script>
<script src="_content/BootstrapBlazor.Markdown/js/bootstrap.blazor.markdown.min.js" asp-append-version="true"></script>
<script src="_content/BootstrapBlazor.Shared/lib/highlight/highlight.min.js" asp-append-version="true"></script>
<script src="_content/BootstrapBlazor.Shared/lib/summernote/summernote-zh-CN.min.js" asp-append-version="true"></script>
<script src="_content/BootstrapBlazor.Shared/js/common.js" asp-append-version="true"></script>
<script src="_framework/blazor.server.js" asp-append-version="true"></script>
</body>
</html>

View File

@@ -2,35 +2,71 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.Options;
using System.Text;
namespace BootstrapBlazor.Server
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
builder.Services.AddCors();
builder.Services.AddResponseCompression();
builder.Services.AddControllers();
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddBootstrapBlazorServices();
// 获得当前主题配置
var themes = builder.Configuration.GetSection("Themes")
.GetChildren()
.Select(c => new KeyValuePair<string, string>(c.Key, c.Value));
builder.Services.ConfigureBootstrapBlazorOption(options =>
{
/// <summary>
///
/// </summary>
public class Program
{
/// <summary>
///
/// </summary>
/// <param name="args"></param>
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
// 统一设置 Toast 组件自动消失时间
options.ToastDelay = 4000;
options.Themes.AddRange(themes);
});
/// <summary>
///
/// </summary>
/// <param name="args"></param>
/// <returns></returns>
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
builder.Services.Configure<HubOptions>(option => option.MaximumReceiveMessageSize = int.MaxValue);
var app = builder.Build();
// 启用本地化
var option = app.Services.GetService<IOptions<RequestLocalizationOptions>>();
if (option != null)
{
app.UseRequestLocalization(option.Value);
}
// 启用转发中间件
app.UseForwardedHeaders(new ForwardedHeadersOptions() { ForwardedHeaders = ForwardedHeaders.All });
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseResponseCompression();
app.UseStaticFiles();
app.UseRouting();
app.UseCors(builder => builder.WithOrigins(app.Configuration["AllowOrigins"].Split(',', StringSplitOptions.RemoveEmptyEntries))
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials());
app.UseBootstrapBlazor();
app.MapDefaultControllerRoute();
app.MapBlazorHub();
app.MapFallbackToPage("/_Host");
app.Run();

View File

@@ -3,28 +3,26 @@
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"hotReloadProfile": "aspnetcore",
"applicationUrl": "http://localhost:50853/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"hotReloadProfile": "aspnetcore",
"WebConsole": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:50853/",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"BootstrapBlazor.WebConsole": {
"commandName": "Project",
"hotReloadProfile": "aspnetcore",
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:50853/"
}
},
"Docker": {
"commandName": "Docker",

View File

@@ -0,0 +1,67 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Shared;
using Longbow.Tasks;
using Microsoft.Extensions.Options;
namespace BootstrapBlazor.Server.Services;
/// <summary>
/// 后台任务服务类
/// </summary>
internal class ClearUploadFilesService : BackgroundService
{
private readonly IWebHostEnvironment _env;
/// <summary>
///
/// </summary>
/// <param name="env"></param>
/// <param name="websiteOption"></param>
public ClearUploadFilesService(IWebHostEnvironment env, IOptions<WebsiteOptions> websiteOption)
{
_env = env;
websiteOption.Value.WebRootPath = env.WebRootPath;
websiteOption.Value.ContentRootPath = env.ContentRootPath;
websiteOption.Value.IsDevelopment = env.IsDevelopment();
}
/// <summary>
/// 运行任务
/// </summary>
/// <param name="stoppingToken"></param>
/// <returns></returns>
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
_ = TaskServicesManager.GetOrAdd("Clear Upload Files", token =>
{
if (_env != null)
{
var webSiteUrl = $"images{Path.DirectorySeparatorChar}uploader{Path.DirectorySeparatorChar}";
var filePath = Path.Combine(_env.WebRootPath, webSiteUrl);
if (Directory.Exists(filePath))
{
Directory.EnumerateFiles(filePath).Take(10).ToList().ForEach(file =>
{
try
{
if (token.IsCancellationRequested)
{
return;
}
File.Delete(file);
}
catch { }
});
}
}
return Task.CompletedTask;
}, TriggerBuilder.Build(Cron.Minutely(10)));
return Task.CompletedTask;
}
}

View File

@@ -1,169 +0,0 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace BootstrapBlazor.Server
{
/// <summary>
///
/// </summary>
public class Startup
{
/// <summary>
///
/// </summary>
/// <param name="configuration"></param>
/// <param name="env"></param>
public Startup(IConfiguration configuration, IWebHostEnvironment env)
{
Configuration = configuration;
Enviroment = env;
}
/// <summary>
///
/// </summary>
public IConfiguration Configuration { get; }
/// <summary>
/// 获得 当前运行时环境
/// </summary>
public IWebHostEnvironment Enviroment { get; }
/// <summary>
///
/// </summary>
/// <param name="services"></param>
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
services.AddResponseCompression();
services.AddControllers();
services.AddRazorPages();
services.AddServerSideBlazor();
services.AddBlazorBackgroundTask();
// 增加 BootstrapBlazor 组件
services.AddBootstrapBlazor(options =>
{
// 统一设置 Toast 组件自动消失时间
options.ToastDelay = 4000;
options.Themes.AddRange(Configuration.GetSection("Themes")
.GetChildren()
.Select(c => new KeyValuePair<string, string>(c.Key, c.Value)));
}, options =>
{
// 附加自己的 json 多语言文化资源文件 如 zh-TW.json
options.AdditionalJsonAssemblies = new Assembly[]
{
typeof(BootstrapBlazor.Shared.App).Assembly,
typeof(BootstrapBlazor.Components.Chart).Assembly
};
});
// 增加多语言支持配置信息
services.AddRequestLocalization<IOptions<BootstrapBlazorOptions>>((localizerOption, blazorOption) =>
{
var supportedCultures = blazorOption.Value.GetSupportedCultures();
localizerOption.SupportedCultures = supportedCultures;
localizerOption.SupportedUICultures = supportedCultures;
});
// 增加 Table Excel 导出服务
services.AddBootstrapBlazorTableExcelExport();
// 增加 PetaPoco ORM 数据服务操作类
// 需要时打开下面代码
//services.AddPetaPoco(option =>
//{
// // 配置数据信息
// // 使用 SQLite 数据以及从配置文件中获取数据库连接字符串
// // 需要引用 Microsoft.Data.Sqlite 包,操作 SQLite 数据库
// // 需要引用 PetaPoco.Extensions 包PetaPoco 包扩展批量插入与删除
// option.UsingProvider<SQLiteDatabaseProvider>()
// .UsingConnectionString(Configuration.GetConnectionString("bb"));
//});
// 增加 FreeSql ORM 数据服务操作类
// 需要时打开下面代码
// 需要引入 FreeSql 对 SQLite 的扩展包 FreeSql.Provider.Sqlite
//services.AddFreeSql(option =>
//{
// option.UseConnectionString(FreeSql.DataType.Sqlite, Configuration.GetConnectionString("bb"))
#if DEBUG
// //开发环境:自动同步实体
// .UseAutoSyncStructure(true)
// //调试sql语句输出
// .UseMonitorCommand(cmd => System.Console.WriteLine(cmd.CommandText))
#endif
// ;
//});
// 增加 EFCore ORM 数据服务操作类
// 需要时打开下面代码
//services.AddEntityFrameworkCore<Shared.Pages.FooDbContext>(option =>
//{
// // 需要引用 Microsoft.EntityFrameworkCore.Sqlite 包,操作 SQLite 数据库
// option.UseSqlite(Configuration.GetConnectionString("bb"));
//});
// 增加 Table 数据服务操作类
services.AddTableDemoDataService();
}
/// <summary>
///
/// </summary>
/// <param name="app"></param>
/// <param name="env"></param>
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 启用本地化
app.UseRequestLocalization(app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>()!.Value);
app.UseForwardedHeaders(new ForwardedHeadersOptions() { ForwardedHeaders = ForwardedHeaders.All });
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseResponseCompression();
app.UseStaticFiles();
app.UseRouting();
app.UseCors(builder => builder.WithOrigins(Configuration["AllowOrigins"].Split(',', StringSplitOptions.RemoveEmptyEntries)).AllowAnyHeader().AllowAnyMethod().AllowCredentials());
app.UseEndpoints(endpoints =>
{
endpoints.MapDefaultControllerRoute();
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
});
}
}
}

View File

@@ -3,8 +3,7 @@
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
"Microsoft.AspNetCore": "Warning"
}
},
"AllowOrigins": "http://localhost:5000",

View File

@@ -2,8 +2,14 @@
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
"Microsoft.AspNetCore": "Warning"
},
"LgbFile": {
"IncludeScopes": true,
"LogLevel": {
"Default": "Error"
},
"FileName": "Error\\Log.log"
}
},
"AllowedHosts": "*",
@@ -19,18 +25,26 @@
"SupportedCultures": [
"zh-CN",
"en-US"
]
],
"TableSettings": {
"CheckboxColumnWidth": 36
}
},
"WebsiteOptions": {
"ServerUrl": "https://www.blazor.zone",
"AdminUrl": "https://admin.blazor.zone",
"ImageLibUrl": "https://imgs.blazor.zone",
"WasmUrl": "https://wasm.blazor.zone",
"TotalCount": 80
"TotalCount": 100
},
"Themes": {
"Ant Design (完善中)": "_content/BootstrapBlazor.Shared/css/ant.css",
"LayUI (完善中)": "_content/BootstrapBlazor.Shared/css/layui.css",
"Bluma (完善中)": "_content/BootstrapBlazor.Shared/css/bluma.css"
"Ant Design (完善中)": "ant",
"LayUI (完善中)": "layui"
},
"WebHooks": {
"Gitee": {
"Id": "",
"Token": ""
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

View File

@@ -1,102 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<meta name="keywords" content="bootstrap,blazor,wasm,webassembly,UI,netcore,web,assembly">
<meta name="author" content="argo (argo@163.com)">
<title>Microsoft Docs Learn</title>
<link rel="icon" href="https://devblogs.microsoft.com/visualstudio/wp-content/uploads/sites/4/2018/10/Microsoft-Favicon.png" sizes="32x32">
<link rel="icon" href="https://devblogs.microsoft.com/visualstudio/wp-content/uploads/sites/4/2018/10/Microsoft-Favicon.png" sizes="192x192">
<link rel="apple-touch-icon" href="https://devblogs.microsoft.com/visualstudio/wp-content/uploads/sites/4/2018/10/Microsoft-Favicon.png">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
<script>
var _hmt = _hmt || [];
(function () {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?f147c9b2e3e0cc2b629c6390e5ffe377";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<style>
body {
background-color: #f4f4f4;
}
main {
padding: 60px 16%;
margin: 60px 0;
box-shadow: 2px 2px 8px rgb(0 0 0 / 10%);
border-radius: 4px;
background-color: #fff;
}
article h1 {
text-align: center;
font-size: 1.8rem;
margin-bottom: 1.5rem;
}
article h2 {
font-size: 1.5rem;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md">
<main>
<article>
<h1>Docs & Learn Champion Best Practice Story</h1>
<div class="text-center">
<img src="imgs/Argo-Circle.png" style="width: 60px;" />
</div>
<div class="text-center" style="font-size:1.25rem;">
<div class="mt-2">Guangpo Zhang</div>
<div class="mt-2 mb-3" style="font-size:0.875rem; color: #616161;">April 27th, 2021</div>
</div>
<p>
I am honored to be awarded as <a href="https://mvp.microsoft.com/en-us/PublicProfile/5004174" target="_blank">Microsoft MVP</a> on <b>March 1st, 2021</b>. Being MVP has always been my dream for a senior developer who has kept active in technical communities about 20 years.
</p>
<p>
As soon as I joined the program, my CPM Christina Liang contacted with me immediately and arranged the onboarding meeting to introduce MVP Program and Docs & Learn Champion project. I thought Docs & Learn Champion was a fantastic project, which can help more people know MS Learn free learning platform, where they can find a systemtic knowledge and tool resource, so I registered this activity at once. Before I received my Creator ID, I have chose a dozen of Docs articles, vedios and learning modules from MS Docs and Learn website, prepared the original URLs to add my Creator ID later. Christina said I was as active and energetic as the generation of post 90s. Haha, it is my habit to take action fast. As a startup partner, I am very busy at work, so I treasure every minute in part time to build several personal technical websites, organize community learning groups and record learning videos, so when I think one thing is worth doing, I will take action fast to make it true, and more people can benefit from it soon.
</p>
<p>
I was also astonished when Christina told me my score during March, with <b>3,287</b> total unique and <b>21,250</b> page views. Seeing so many visitors are interested in MS Learn content, I have momentum to contribute more on this thing. Maybe it is just because of my sharing, someone know Blazor and MS product and services, and will make use of it in their daily work and get achievement in the future. Thats what make us feel proud as a Microsoft MVP.
</p>
<img src="imgs/Picture1.png" class="w-100 py-3" />
<p>Let me share my experience how I can attract 3,000+ visitors to see MS Docs and Learn website during one month.</p>
<h2>Firstly</h2>
<p>
I add Docs links of Blazor official learning content at outsanding position on my persoanl website: <a href="https://www.blazor.zone" target="_blank">www.blazor.zone</a>, and I also made a popup box to introduce 8 important articles on Blazor, which beginner shall read them to have a general concept. Here is a small trick that I set up the popup box to cover some website content, most people would like to click them to have a look out of curiosity. Frankly speaking, they are very good learning content, and I highly recommend people to read them in my learning groups. The dashboard data says these 8 articles have got largest clicks, with each one over <b>3,200</b> views.
</p>
<img src="imgs/Picture2.png" class="w-100 py-3" />
<img src="imgs/Picture3.png" class="w-100 py-3" />
<h2>Secondly</h2>
<p>I made two large-scale updates and advertisement for my website in March, which attracted new visitors that took <b>71.94%</b> of all visitors and attributed high clicks on my website. As shown in the screenshot below, you can see the visitors of my website in March was about 10,000 making <b>93,010</b> page views, so my Docs & Learn Champion unique visitors and page views are divided by my website data, we could find the transfer rates were <b>35.90%</b> and <b>22.8%</b> separately for unique visitors and page views. High percentage of my website visitors are interested in MS Learn content. </p>
<img src="imgs/Picture7.png" class="w-100 py-3" />
<img src="imgs/Picture4.png" class="w-100 py-3" />
<h2>Thirdly</h2>
<p>I made search engine optimization for some key words to get a satisfied result. Now, if people search words, such as blazor bootstrap ui in Chinese famous search engine Baidu.com, they will be led to my website, and then have great probabilities to click MS Learn links I inserted there. </p>
<img src="imgs/Picture5.png" class="w-100 py-3" />
<h2>Fourthly</h2>
<p>
I organized Blazor community, and a number of learning groups. I would send MS Learn and Docs articles and modules into these community groups as learning material or answers to their questions. My hardworking administrators will also help me send these articles to group members. We are happy to receive members feedback that they felt the material is valuable and many of them sent screenshot to me showing they finished all modules.
</p>
<img src="imgs/Picture6.png" class="w-100 py-3" />
<h2>Fifthly</h2>
<p>I have several open-source projects, which will be updated every Thursday. I will send MS Learn content together with my open-source update news to the audience to share the popularity of update news, which usually attract over <b>2,000</b> views till next morning. </p>
<h2>Sixthly</h2>
<p>Taking a ride from official release. When .Net releases the preview version, people all actively discuss the new features, so I will post some blogs in the topic of these new features inserting MS Learn article links. For example, Microsoft recently released .Net preview 3 with hot reload feature, so I also post some blogs introducing blazor support hot reload and MS Learn courses. </p>
<p>All in all, as a newcomer, there are a lot of things to be learned from experienced MVPs and CPMs. I hope my sharing can provide you with some reference. Through joining Docs & Learn Champion, I am excited to see so many developers are interested in Microsoft products and services, as well as this fantastic free MS Learn platform. It is a continuously updated storehouse of practical knowledge, and I hope more people would know it, use it and connect with each other to progress through my sharing. </p>
</article>
</main>
</div>
</div>
</div>
</body>
</html>

View File

@@ -1,12 +1,18 @@
<Router AppAssembly="@typeof(MainLayout).Assembly" PreferExactMatches="@true">
<Found Context="routeData">
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
</Found>
<NotFound>
<LayoutView Layout="@typeof(MainLayout)">
<p>正在玩命开发中 ...</p>
</LayoutView>
</NotFound>
</Router>
@inject IStringLocalizer<App> AppLocalizer
<BootstrapBlazorRoot>
<Router AppAssembly="@typeof(App).Assembly">
<Found Context="routeData">
<PageTitle>@AppLocalizer["Title"]</PageTitle>
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
</Found>
<NotFound>
<PageTitle>Not found</PageTitle>
<LayoutView Layout="@typeof(MainLayout)">
<p>正在玩命开发中 ...</p>
</LayoutView>
</NotFound>
</Router>
</BootstrapBlazorRoot>
<Title></Title>

View File

@@ -2,36 +2,101 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using BootstrapBlazor.Shared.Components;
using BootstrapBlazor.Shared.Exntensions;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Localization;
using Microsoft.JSInterop;
using System;
using System.Threading.Tasks;
namespace BootstrapBlazor.Shared
namespace BootstrapBlazor.Shared;
/// <summary>
///
/// </summary>
public sealed partial class App : IDisposable
{
[Inject]
[NotNull]
private IJSRuntime? JSRuntime { get; set; }
[Inject]
[NotNull]
private IStringLocalizer<App>? Localizer { get; set; }
[Inject]
[NotNull]
private IDispatchService<GiteePostBody>? DispatchService { get; set; }
[Inject]
[NotNull]
private ToastService? Toast { get; set; }
/// <summary>
/// OnInitialized 方法
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
DispatchService.Subscribe(Notify);
}
/// <summary>
///
/// </summary>
public sealed partial class App
/// <param name="firstRender"></param>
protected override async Task OnAfterRenderAsync(bool firstRender)
{
/// <summary>
///
/// </summary>
[Inject]
private IJSRuntime? JSRuntime { get; set; }
await base.OnAfterRenderAsync(firstRender);
/// <summary>
///
/// </summary>
/// <param name="firstRender"></param>
protected override async Task OnAfterRenderAsync(bool firstRender)
if (firstRender)
{
await base.OnAfterRenderAsync(firstRender);
if (firstRender && OperatingSystem.IsBrowser() && JSRuntime != null)
{
await JSRuntime.InvokeVoidAsync("$.loading");
}
await JSRuntime.InvokeVoidAsync("$.loading", OperatingSystem.IsBrowser(), Localizer["ErrorMessage"].Value, Localizer["Reload"].Value);
}
}
private async Task Notify(DispatchEntry<GiteePostBody> payload)
{
if (payload.CanDispatch())
{
var option = new ToastOption()
{
Category = ToastCategory.Information,
Title = "代码提交推送通知",
Delay = 30 * 1000,
ForceDelay = true,
#if DEBUG
IsAutoHide = false,
#endif
ChildContent = BootstrapDynamicComponent.CreateComponent<CommitItem>(new Dictionary<string, object?>
{
[nameof(CommitItem.Item)] = payload.Entry
}).Render()
};
await Toast.Show(option);
}
}
/// <summary>
///
/// </summary>
/// <param name="disposing"></param>
private void Dispose(bool disposing)
{
if (disposing)
{
DispatchService.UnSubscribe(Notify);
}
}
/// <summary>
///
/// </summary>
/// <exception cref="NotImplementedException"></exception>
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}

View File

@@ -1,9 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<IsPackable>true</IsPackable>
<Version>5.0.0</Version>
</PropertyGroup>
<Import Project="..\Framework.props" />
<ItemGroup>
<SupportedPlatform Include="browser" />
@@ -17,13 +14,15 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="BootstrapBlazor.Chart" Version="5.0.21" />
<PackageReference Include="BootstrapBlazor.Markdown" Version="5.0.21" />
<PackageReference Include="BootstrapBlazor.TableExport" Version="5.0.21" />
<PackageReference Include="BootstrapBlazor.Chart" Version="6.*" />
<PackageReference Include="BootstrapBlazor.Markdown" Version="6.*" />
<PackageReference Include="BootstrapBlazor.TableExport" Version="6.*" />
<PackageReference Include="System.Text.Json" Version="6.*" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BootstrapBlazor\BootstrapBlazor.csproj" />
<ProjectReference Include="..\Extensions\Components\BootstrapBlazor.Speech\BootstrapBlazor.Speech.csproj" />
</ItemGroup>
</Project>

View File

@@ -4,41 +4,40 @@
using System.ComponentModel;
namespace BootstrapBlazor.Shared.Common
namespace BootstrapBlazor.Shared.Common;
/// <summary>
/// 属性说明类
/// </summary>
public class AttributeItem
{
/// <summary>
/// 属性说明类
/// 获得/设置 参数
/// </summary>
public class AttributeItem
{
/// <summary>
/// 获得/设置 参数
/// </summary>
[DisplayName("参数")]
public string Name { get; set; } = "";
[DisplayName("参数")]
public string Name { get; set; } = "";
/// <summary>
/// 获得/设置 说明
/// </summary>
[DisplayName("说明")]
public string Description { get; set; } = "";
/// <summary>
/// 获得/设置 说明
/// </summary>
[DisplayName("说明")]
public string Description { get; set; } = "";
/// <summary>
/// 获得/设置 类型
/// </summary>
[DisplayName("类型")]
public string Type { get; set; } = "";
/// <summary>
/// 获得/设置 类型
/// </summary>
[DisplayName("类型")]
public string Type { get; set; } = "";
/// <summary>
/// 获得/设置 可选值
/// </summary>
[DisplayName("可选值")]
public string ValueList { get; set; } = "";
/// <summary>
/// 获得/设置 可选值
/// </summary>
[DisplayName("可选值")]
public string ValueList { get; set; } = "";
/// <summary>
/// 获得/设置 默认值
/// </summary>
[DisplayName("默认值")]
public string DefaultValue { get; set; } = "";
}
/// <summary>
/// 获得/设置 默认值
/// </summary>
[DisplayName("默认值")]
public string DefaultValue { get; set; } = "";
}

View File

@@ -4,29 +4,28 @@
using System.ComponentModel;
namespace BootstrapBlazor.Shared.Common
namespace BootstrapBlazor.Shared.Common;
/// <summary>
/// 事件说明类
/// </summary>
public class EventItem
{
/// <summary>
/// 事件说明类
/// 获得/设置 参数
/// </summary>
public class EventItem
{
/// <summary>
/// 获得/设置 参数
/// </summary>
[DisplayName("参数")]
public string Name { get; set; } = "";
[DisplayName("参数")]
public string Name { get; set; } = "";
/// <summary>
/// 获得/设置 说明
/// </summary>
[DisplayName("说明")]
public string Description { get; set; } = "";
/// <summary>
/// 获得/设置 说明
/// </summary>
[DisplayName("说明")]
public string Description { get; set; } = "";
/// <summary>
/// 获得/设置 类型
/// </summary>
[DisplayName("类型")]
public string Type { get; set; } = "";
}
/// <summary>
/// 获得/设置 类型
/// </summary>
[DisplayName("类型")]
public string Type { get; set; } = "";
}

View File

@@ -4,23 +4,22 @@
using System.ComponentModel;
namespace BootstrapBlazor.Shared.Common
namespace BootstrapBlazor.Shared.Common;
/// <summary>
/// 方法说明类
/// </summary>
public class MethodItem : EventItem
{
/// <summary>
/// 方法说明类
/// 参数
/// </summary>
public class MethodItem : EventItem
{
/// <summary>
/// 参数
/// </summary>
[DisplayName("参数")]
public string Parameters { get; set; } = "";
[DisplayName("参数")]
public string Parameters { get; set; } = "";
/// <summary>
/// 返回值
/// </summary>
[DisplayName("返回值")]
public string ReturnValue { get; set; } = "";
}
/// <summary>
/// 返回值
/// </summary>
[DisplayName("返回值")]
public string ReturnValue { get; set; } = "";
}

View File

@@ -4,9 +4,9 @@
<Table TItem="BootstrapBlazor.Shared.Common.AttributeItem" Items="Items">
<TableColumns>
<TableColumn @bind-Field="@context.Name" />
<TableColumn @bind-Field="@context.Description" AllowTextWrap="true" />
<TableColumn @bind-Field="@context.Description" TextWrap="true" />
<TableColumn @bind-Field="@context.Type" />
<TableColumn @bind-Field="@context.ValueList" AllowTextWrap="true" />
<TableColumn @bind-Field="@context.ValueList" TextWrap="true" />
<TableColumn @bind-Field="@context.DefaultValue" />
</TableColumns>
</Table>

View File

@@ -0,0 +1,41 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Shared.Common;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Localization;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public sealed partial class AttributeTable
{
[Inject]
[NotNull]
private IStringLocalizer<AttributeTable>? Localizer { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
[NotNull]
public string? Title { get; set; }
/// <summary>
///
/// </summary>
[Parameter] public IEnumerable<AttributeItem>? Items { get; set; }
/// <summary>
/// OnInitialized 方法
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
Title ??= Localizer[nameof(Title)];
}
}

View File

@@ -1,12 +1,23 @@
<div class="@ClassName">
@foreach (var m in Message.Reverse())
{
<div class="log-item">@m</div>
<div class="log-item">
@if (IsHtml)
{
@((MarkupString)m)
}
else
{
@m
}
</div>
}
</div>
@code {
protected System.Collections.Concurrent.ConcurrentQueue<string> Message { get; set; } = new System.Collections.Concurrent.ConcurrentQueue<string>();
protected System.Collections.Concurrent.ConcurrentQueue<string> Message { get; set; } = new();
private bool IsHtml { get; set; }
/// <summary>
/// 获得 按钮样式集合
@@ -25,8 +36,9 @@
[Parameter(CaptureUnmatchedValues = true)]
public IDictionary<string, object>? AdditionalAttributes { get; set; }
public void Log(string message)
public void Log(string message, bool isHtml = false)
{
IsHtml = isHtml;
Message.Enqueue($"{DateTimeOffset.Now}: {message}");
Class = "";
if (Message.Count > 3) Message.TryDequeue(out var s);

View File

@@ -0,0 +1,79 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Rendering;
using Microsoft.JSInterop;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public partial class ChartToast : ComponentBase, IDisposable
{
/// <summary>
///
/// </summary>
[Inject]
private ToastService? ToastService { get; set; }
[Inject]
private IJSRuntime? JSRuntime { get; set; }
private JSInterop<ChartToast>? Interope { get; set; }
/// <summary>
/// BuildRenderTree 方法
/// </summary>
/// <param name="builder"></param>
protected override void BuildRenderTree(RenderTreeBuilder builder)
{
builder.OpenComponent<Toast>(0);
builder.CloseComponent();
}
/// <summary>
/// OnAfterRenderAsync 方法
/// </summary>
/// <param name="firstRender"></param>
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await base.OnAfterRenderAsync(firstRender);
if (firstRender && JSRuntime != null)
{
if (Interope == null) Interope = new JSInterop<ChartToast>(JSRuntime);
await Interope.InvokeVoidAsync(this, "", "_initChart", nameof(ShowToast));
}
}
/// <summary>
///
/// </summary>
[JSInvokable]
public void ShowToast()
{
ToastService?.Show(new ToastOption() { Title = "友情提示", Content = "屏幕宽度过小,如果是手机请横屏观看" });
}
/// <summary>
///
/// </summary>
/// <param name="disposing"></param>
private void Dispose(bool disposing)
{
if (disposing) Interope?.Dispose();
}
/// <summary>
///
/// </summary>
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}

View File

@@ -0,0 +1,7 @@
<div class="d-flex fw-bold mb-1">
<span class="text-success flex-fill">@Timestamp</span>
<span>共 @TotalCount 个提交</span>
</div>
<div>提交作者: <span class="text-info fw-bold">@Author</span></div>
<div>分支名称: <span class="text-info fw-bold">@Branch</span></div>
<div>提交信息: <a href="@Url" target="_blank">@Message</a></div>

View File

@@ -0,0 +1,52 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using Microsoft.AspNetCore.Components;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public partial class CommitItem
{
/// <summary>
///
/// </summary>
[Parameter]
[NotNull]
[EditorRequired]
public GiteePostBody? Item { get; set; }
private string? Author { get; set; }
private string? Timestamp { get; set; }
private string? Message { get; set; }
private string? Url { get; set; }
private string? Branch { get; set; }
private string? TotalCount { get; set; }
/// <summary>
/// OnInitialized 方法
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
var commit = Item.HeadCommit;
TotalCount = Item.Commits?.Count.ToString() ?? "1";
if (commit != null)
{
Timestamp = commit.Timestamp.ToString("yyyy-MM-dd HH:mm:ss");
Author = commit.Author.Name;
Message = commit.Message;
Url = commit.Url;
Branch = Item.GetBranchName();
}
}
}

View File

@@ -0,0 +1,63 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Components;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public sealed partial class ComponentCard
{
private string ImageUrl => $"_content/BootstrapBlazor.Shared/images/{Image}";
private string? ClassString => CssBuilder.Default("col-12 col-sm-6 col-md-4 col-lg-3")
.AddClass("d-none", IsHide)
.Build();
/// <summary>
/// 获得/设置 Header 文字
/// </summary>
[Parameter]
public string Text { get; set; } = "未设置";
/// <summary>
/// 获得/设置 组件图片
/// </summary>
[Parameter]
public string Image { get; set; } = "Divider.svg";
/// <summary>
/// 获得/设置 链接地址
/// </summary>
[Parameter]
public string? Url { get; set; }
[CascadingParameter]
private List<string>? ComponentNames { get; set; }
[CascadingParameter]
private ComponentCategory? Parent { get; set; }
[CascadingParameter]
private string? SearchText { get; set; }
/// <summary>
/// OnInitialized 方法
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
ComponentNames?.Add(Text);
Parent?.Add(this);
}
/// <summary>
///
/// </summary>
internal bool IsHide => !string.IsNullOrEmpty(SearchText) && !Text.Contains(SearchText, StringComparison.OrdinalIgnoreCase);
}

View File

@@ -1,9 +1,15 @@
<div class="coms-cate">
<div class="@ClassString">
<h3>
<span>@Text</span>
<RenderTemplate>
<Badge IsPill="true" Color="Color.Success">@CardCount</Badge>
</RenderTemplate>
</h3>
<h4>@Desc</h4>
@if (!string.IsNullOrEmpty(Desc))
{
<h4>@Desc</h4>
}
<div class="coms-demo">
<div class="row g-3">
@@ -12,11 +18,4 @@
</CascadingValue>
</div>
</div>
<RenderTemplate>
@if (Cards.Count > 0)
{
<Badge IsPill="true" Color="Color.Success">@Cards.Count</Badge>
}
</RenderTemplate>
</div>

View File

@@ -0,0 +1,58 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Components;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public sealed partial class ComponentCategory
{
/// <summary>
///
/// </summary>
[Parameter]
public RenderFragment? ChildContent { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public string? Text { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public string? Desc { get; set; }
private List<ComponentCard> Cards { get; } = new List<ComponentCard>();
internal void Add(ComponentCard card) => Cards.Add(card);
private int CardCount => Cards.Where(c => !c.IsHide).Count();
private bool IsRendered { get; set; }
private string? ClassString => CssBuilder.Default("coms-cate")
.AddClass("d-none", IsRendered && CardCount == 0)
.Build();
/// <summary>
///
/// </summary>
/// <param name="firstRender"></param>
protected override void OnAfterRender(bool firstRender)
{
base.OnAfterRender(firstRender);
if (firstRender)
{
IsRendered = true;
}
}
}

View File

@@ -0,0 +1,98 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Options;
using Microsoft.JSInterop;
using System.Globalization;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public partial class CultureChooser
{
[Inject]
[NotNull]
private IOptions<BootstrapBlazorOptions>? BootstrapOptions { get; set; }
[Inject]
[NotNull]
private IStringLocalizer<CultureChooser>? Localizer { get; set; }
[Inject]
[NotNull]
private NavigationManager? NavigationManager { get; set; }
private string? ClassString => CssBuilder.Default("culture-selector")
.AddClassFromAttributes(AdditionalAttributes)
.Build();
private string SelectedCulture { get; set; } = CultureInfo.CurrentUICulture.Name;
[NotNull]
private string? Label { get; set; }
/// <summary>
/// OnInitialized 方法
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
Label ??= Localizer[nameof(Label)];
}
private async Task SetCulture(SelectedItem item)
{
if (OperatingSystem.IsBrowser())
{
var cultureName = item.Value;
if (cultureName != CultureInfo.CurrentCulture.Name)
{
await JSRuntime.InvokeVoidAsync(identifier: "$.blazorCulture.set", cultureName);
var culture = new CultureInfo(cultureName);
CultureInfo.CurrentCulture = culture;
CultureInfo.CurrentUICulture = culture;
NavigationManager.NavigateTo(NavigationManager.Uri, forceLoad: true);
}
}
else
{
// 使用 api 方式 适用于 Server-Side 模式
if (SelectedCulture != item.Value)
{
var culture = item.Value;
var uri = new Uri(NavigationManager.Uri).GetComponents(UriComponents.PathAndQuery, UriFormat.Unescaped);
var query = $"?culture={Uri.EscapeDataString(culture)}&redirectUri={Uri.EscapeDataString(uri)}";
// use a path that matches your culture redirect controller from the previous steps
NavigationManager.NavigateTo("/Culture/SetCulture" + query, forceLoad: true);
}
}
}
private static string GetDisplayName(CultureInfo culture)
{
string? ret;
if (OperatingSystem.IsBrowser())
{
ret = culture.Name switch
{
"zh-CN" => "中文(中国)",
"en-US" => "English (United States)",
_ => ""
};
}
else
{
ret = culture.NativeName;
}
return ret;
}
}

View File

@@ -0,0 +1,52 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public partial class CustomerSelectDialog
{
private IEnumerable<SelectedItem>? Items2;
private readonly IEnumerable<SelectedItem> Items3 = new SelectedItem[]
{
new SelectedItem ("", "请选择 ..."),
new SelectedItem ("Beijing", "北京"),
new SelectedItem ("Shanghai", "上海")
};
/// <summary>
/// 级联绑定菜单
/// </summary>
/// <param name="item"></param>
private async Task OnCascadeBindSelectClick(SelectedItem item)
{
// 模拟异步通讯获取数据
await Task.Delay(100);
if (item.Value == "Beijing")
{
Items2 = new SelectedItem[]
{
new SelectedItem("1","朝阳区"),
new SelectedItem("2","海淀区"),
};
}
else if (item.Value == "Shanghai")
{
Items2 = new SelectedItem[]
{
new SelectedItem("1","静安区"),
new SelectedItem("2","黄浦区"),
};
}
else
{
Items2 = Enumerable.Empty<SelectedItem>();
}
StateHasChanged();
}
}

View File

@@ -12,10 +12,10 @@
<EditorForm TModel="Foo">
<FieldItems>
<EditorItem @bind-Field="@context.Id" Editable="false" />
<EditorItem @bind-Field="@context.Hobby" Data="@Hobbys" />
<EditorItem @bind-Field="@context.Hobby" Items="@Hobbys" />
</FieldItems>
</EditorForm>
<div class="modal-footer table-modal-footer">
<div class="modal-footer mt-3">
<button type="button" class="btn btn-secondary" @onclick="@(e => OnClose?.Invoke())">
<i class="fa fa-times"></i>
<span>关闭</span>
@@ -25,8 +25,6 @@
</ValidateForm>
}
<Toast />
@code {
[Inject]
[NotNull]
@@ -46,7 +44,6 @@
[NotNull]
private IEnumerable<SelectedItem>? Hobbys { get; set; }
/// <summary>
///
/// </summary>

View File

@@ -0,0 +1,25 @@
@inherits BootstrapComponentBase
<AnchorLink Text="@Title" Id="@Name" />
<p>@(new MarkupString(Introduction))</p>
<h5>@SubTitle</h5>
<div class="card card-demo">
<div class="card-body">
@ChildContent
</div>
@if (ShowCode)
{
<div class="card-footer" @ref="BlockElement">
<div class="card-footer-code collapse">
<Pre @key="@RazorFileName" CodeFile="@RazorFileName" BlockTitle="@BlockTitle"></Pre>
</div>
<a class="card-footer-control collapsed" data-bs-toggle="collapse">
<i class="fa fa-caret-up"></i>
<span class="card-demo-text"></span>
</a>
</div>
}
</div>

View File

@@ -0,0 +1,90 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Localization;
using Microsoft.JSInterop;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public sealed partial class DemoBlock
{
private ElementReference BlockElement { get; set; }
/// <summary>
/// 获得/设置 组件 Title 属性
/// </summary>
[Parameter]
[NotNull]
public string? Title { get; set; }
/// <summary>
/// 获得/设置 组件说明信息
/// </summary>
[Parameter]
public string Introduction { get; set; } = "未设置";
/// <summary>
/// 文件名 从ComponentLayout传递过来的razor文件名
/// </summary>
[CascadingParameter(Name = "RazorFileName")]
public string? RazorFileName { get; set; }
/// <summary>
/// 获得/设置 组件内容
/// </summary>
[Parameter]
public RenderFragment? ChildContent { get; set; }
/// <summary>
/// 获得/设置 是否显示代码块 默认 true 显示
/// </summary>
[Parameter]
public bool ShowCode { get; set; } = true;
[NotNull]
private string? SubTitle { get; set; }
[Inject]
[NotNull]
private IStringLocalizer<DemoBlock>? Localizer { get; set; }
/// <summary>
/// 获得/设置 友好链接锚点名称
/// </summary>
[Parameter]
public string? Name { get; set; }
private string BlockTitle => Name ?? Title;
/// <summary>
/// OnInitialized 方法
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
Title ??= Localizer[nameof(Title)];
SubTitle ??= Localizer[nameof(SubTitle)];
}
/// <summary>
/// OnAfterRenderAsync
/// </summary>
/// <param name="firstRender"></param>
/// <returns></returns>
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await base.OnAfterRenderAsync(firstRender);
if (firstRender)
{
await JSRuntime.InvokeVoidAsync("$.bb_block", BlockElement);
}
}
}

View File

@@ -0,0 +1 @@
改变标题栏中下拉框此处会更改: @Value

View File

@@ -0,0 +1,31 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public partial class DialogBodyFoo
{
private string? Value { get; set; }
private List<SelectedItem> Items { get; } = new(new[]
{
new SelectedItem("beijing", "北京"),
new SelectedItem("shanghai", "上海")
});
/// <summary>
///
/// </summary>
public Task UpdateAsync(string val)
{
Value = Items.First(i => i.Value == val).Text;
StateHasChanged();
return Task.CompletedTask;
}
}

View File

@@ -0,0 +1,40 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Components;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public partial class DialogDemo
{
/// <summary>
///
/// </summary>
[NotNull]
public string? Value { get; set; }
[Inject]
[NotNull]
private DialogService? DialogService { get; set; }
/// <summary>
/// OnInitialized 方法
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
Value = DateTime.Now.ToString();
}
private Task OnClickButton() => DialogService.Show(new DialogOption()
{
Title = $"弹窗 {Value}",
Component = BootstrapDynamicComponent.CreateComponent<DialogDemo>()
});
}

View File

@@ -0,0 +1,4 @@
<h5 class="modal-title">自定义 Header</h5>
<div class="d-flex flex-fill justify-content-end me-3">
<Select TValue="string" Items="Items" Value="Value" OnSelectedItemChanged="OnSelectedItemChanged" style="max-width: 120px;" />
</div>

View File

@@ -0,0 +1,52 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Components;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public partial class DialogHeaderFoo
{
[NotNull]
private IEnumerable<SelectedItem>? Items { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public string? Value { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public Func<string, Task>? OnValueChanged { get; set; }
/// <summary>
///
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
Items = new[]
{
new SelectedItem("beijing", "北京"),
new SelectedItem("shanghai", "上海")
};
}
private async Task OnSelectedItemChanged(SelectedItem item)
{
Value = item.Value;
if (OnValueChanged != null)
{
await OnValueChanged(Value);
}
}
}

View File

@@ -0,0 +1,17 @@
<div class="row form-inline g-3">
<div class="col-12 col-sm-6">
<BootstrapInput @bind-Value="Value.Name" ShowLabel="true" DisplayText="姓名" />
</div>
<div class="col-12 col-sm-6">
<BootstrapInput @bind-Value="Value.Count" ShowLabel="true" DisplayText="数量" />
</div>
</div>
@code {
/// <summary>
///
/// </summary>
[Parameter]
[NotNull]
public Foo? Value { get; set; }
}

View File

@@ -1,10 +1,12 @@
<div class="table-attr">
<h4>事件 Events</h4>
@inject IStringLocalizer<EventTable> Localizer
<div class="table-attr">
<h4>@Localizer["Title"]</h4>
<Table TItem="BootstrapBlazor.Shared.Common.EventItem" Items="Items">
<TableColumns>
<TableColumn @bind-Field="@context.Name" />
<TableColumn @bind-Field="@context.Description" AllowTextWrap="true" />
<TableColumn @bind-Field="@context.Description" TextWrap="true" />
<TableColumn @bind-Field="@context.Type" />
</TableColumns>
</Table>

View File

@@ -0,0 +1,8 @@
<div class="row form-inline g-3">
<div class="col-12 col-sm-6">
<BootstrapInput @bind-Value="Value.Name" ShowLabel="true" DisplayText="姓名" />
</div>
<div class="col-12 col-sm-6">
<Select @bind-Value="Value.Count" ShowLabel="true" DisplayText="数量" Items="CountItems" />
</div>
</div>

View File

@@ -0,0 +1,38 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Components;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public partial class FooSearch
{
/// <summary>
///
/// </summary>
[Parameter]
[NotNull]
public FooSearchModel? Value { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public EventCallback<FooSearchModel> ValueChanged { get; set; }
/// <summary>
///
/// </summary>
public List<SelectedItem> CountItems { get; } = new List<SelectedItem>()
{
new SelectedItem("", "全部"),
new SelectedItem("1", "小于 30"),
new SelectedItem("2", "大于等于 30 小于 70"),
new SelectedItem("3", "大于等于 70 小于 100")
};
}

View File

@@ -0,0 +1,91 @@
@using Microsoft.Extensions.DependencyInjection
@inject VersionService VersionManager
@inject IStringLocalizer<InstallContent> Localizer
<h3>@Title</h3>
<h4>环境准备</h4>
<p class="mt-3">确保系统安装</p>
<ul>
<li><code>visual studio 2019</code> 或者 <code>visual studio 2022</code></li>
<li><code>net5</code> 或者 <code>net6</code></li>
</ul>
<div><code>BootstrapBlazor</code> 目前支持 <code>net5/net6</code></div>
<h4>使用 BootstrapBlazor Project Template 扩展创建项目</h4>
<p>您可以通过 <a href="templates">[传送门]</a> 下载安装扩展后,通过扩展创建项目</p>
<h4>使用 Visual Studio 创建项目</h4>
<h5 class="mb-3">步骤一、创建项目</h5>
<div class="code-label mb-2">1. 打开 Visual Studio 2019 或者 Visual Studio 2022</div>
<div class="code-label mb-2">2. 创建一个新项目</div>
<div class="code-label mb-2">3. 选择 <b>Blazor App</b> 并单击 <b>下一步</b>, 为项目选择一个名称和位置,然后点击 <b>Create</b></div>
<img src="_content/BootstrapBlazor.Shared/images/create-new-application.png" style="border-radius: 6px;" class="d-none d-sm-block" />
@ChooseTemplate
<h5 class="mb-3">步骤二、将 BootstrapBlazor 组件添加到现有项目</h5>
<div class="code-label mb-2">1. 通过 <b>nuget.org</b> 源搜索 <code>BootstrapBlazor</code></div>
<div class="mb-2">右键点击解决方案中的项目并选择 <b>Manage Nuget Packages</b></div>
<Pre class="no-highlight">dotnet add package BootstrapBlazor --version @Version</Pre>
<img src="_content/BootstrapBlazor.Shared/images/manage-nuget-packages-for-server-app.png" style="border-radius: 6px;" class="d-none d-sm-block" />
<div class="code-label mt-3 mb-2">2. 安装 BootstrapBlazor 包</div>
<img src="_content/BootstrapBlazor.Shared/images/nuget_install.png" style="width: 1000px; border-radius: 6px;" class="d-none d-sm-block" />
<div class="code-label mt-3 mb-2">3. 添加样式表文件</div>
<div class="mb-3">在宿主文件中增加主题样式表</div>
@SheetTemplate
<Tips>
<div>@((MarkupString)Localizer["Tips2"].Value)</div>
</Tips>
<Pre>&lt;head&gt;
...
&lt;!-- 增加代码 !--&gt;
<b>
// 需引用 BootstrapBlazor.FontAwesome 包
&lt;link href="_content/BootstrapBlazor.FontAwesome/css/font-awesome.min.css" rel="stylesheet"&gt;
&lt;link href="_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css" rel="stylesheet"&gt;
</b>
...
&lt;link href="css/site.css" rel="stylesheet"&gt;
&lt;link href="BlazorApp1.styles.css" rel="stylesheet"&gt;
&lt;/head&gt;</Pre>
<div class="code-label mb-3">4. 添加 Javascript 文件</div>
@ScriptsTemplate
<Pre>&lt;body&gt;
...
&lt;!-- 增加代码 !--&gt;
<b>&lt;script src="_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js"&gt;&lt;/script&gt;</b>
...
&lt;script src="_framework/blazor.server.js"&gt;&lt;/script&gt;
&lt;/body&gt;</Pre>
<div class="code-label mb-2">5. 注册 BootstrapBlazor 服务</div>
@ServicesTemplate
<div class="code-label mb-2">6. 增加命名空间引用</div>
<div class="mb-1">将以下内容添加到 <code>~/_Imports.razor</code> 文件中,以便 <code>Razor</code> 文件中能识别组件</div>
<Pre><b>@@using BootstrapBlazor.Components</b></Pre>
<div class="code-label mb-2">7. 增加 <code>BootstrapBlazorRoot</code> 组件到 <code>~/App.razor</code> 文件中</div>
<Pre>&lt;BootstrapBlazorRoot&gt;
&lt;Router AppAssembly="@@typeof(App).Assembly"&gt;
&lt;Found Context="routeData"&gt;
&lt;PageTitle&gt;Title&lt;/PageTitle&gt;
&lt;RouteView RouteData="@@routeData" DefaultLayout="@@typeof(MainLayout)" /&gt;
&lt;FocusOnNavigate RouteData="@@routeData" Selector="h1" /&gt;
&lt;/Found&gt;
&lt;NotFound&gt;
&lt;PageTitle&gt;Not found&lt;/PageTitle&gt;
&lt;LayoutView Layout="@@typeof(MainLayout)"&gt;
&lt;p&gt;正在玩命开发中 ...&lt;/p&gt;
&lt;/LayoutView&gt;
&lt;/NotFound&gt;
&lt;/Router&gt;
&lt;/BootstrapBlazorRoot&gt;</Pre>
<h5 class="mb-3">步骤三、页面中使用组件</h5>
<div class="mb-1">最后一步是在页面中使用 <code>BootstrapBlazor</code> 组件并在浏览器中运行它。例如:</div>
<div class="code-label mb-2">1. 在页面中增加一个 <code>Button</code> 按钮</div>
<Pre>&lt;Button Color="Color.Primary" Icon="fa fa-fa" Text="测试" /&gt;</Pre>
<div class="code-label mb-2">2. 在 <b>Visual studio 2022</b> 中 <kbd>F5</kbd> 运行应用程序</div>
<img src="_content/BootstrapBlazor.Shared/images/preview.png" style="border-radius: 6px;" class="d-none d-sm-block" />

View File

@@ -0,0 +1,69 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using Microsoft.AspNetCore.Components;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public sealed partial class InstallContent
{
/// <summary>
/// 获得/设置 版本号字符串
/// </summary>
private string Version { get; set; } = "latest";
/// <summary>
///
/// </summary>
[Parameter]
public string Title { get; set; } = "服务器端 Blazor 安装教程";
/// <summary>
///
/// </summary>
[Parameter]
public string HostFile { get; set; } = "Pages/_Host.cshtml";
/// <summary>
///
/// </summary>
[Parameter]
public RenderFragment? ChooseTemplate { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public RenderFragment? SheetTemplate { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public RenderFragment? ScriptsTemplate { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public RenderFragment? ServicesTemplate { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public RenderFragment? ChildContent { get; set; }
/// <summary>
/// OnInitializedAsync 方法
/// </summary>
/// <returns></returns>
protected override async Task OnInitializedAsync()
{
Version = await VersionManager.GetVersionAsync();
}
}

View File

@@ -4,7 +4,7 @@
<Table TItem="BootstrapBlazor.Shared.Common.MethodItem" Items="Items">
<TableColumns>
<TableColumn @bind-Field="@context.Name" />
<TableColumn @bind-Field="@context.Description" AllowTextWrap="true" />
<TableColumn @bind-Field="@context.Description" TextWrap="true" />
<TableColumn @bind-Field="@context.Parameters" />
<TableColumn @bind-Field="@context.ReturnValue" />
</TableColumns>

View File

@@ -0,0 +1,42 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Shared.Common;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Localization;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public sealed partial class MethodTable
{
[Inject]
[NotNull]
private IStringLocalizer<MethodTable>? Localizer { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
[NotNull]
public string? Title { get; set; }
/// <summary>
///
/// </summary>
[Parameter] public IEnumerable<MethodItem>? Items { get; set; }
/// <summary>
/// OnInitialized 方法
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
Title ??= Localizer[nameof(Title)];
}
}

View File

@@ -1,7 +1,7 @@
<div class="pre-code" @ref="PreElement">
@if (!Loaded)
{
<p>正在加载 ...</p>
<p class="loading">正在加载 ...</p>
}
else
{

View File

@@ -0,0 +1,114 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using BootstrapBlazor.Shared.Services;
using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
/// Pre 组件
/// </summary>
public sealed partial class Pre
{
private ElementReference PreElement { get; set; }
private bool Loaded { get; set; }
private bool CanCopy { get; set; }
/// <summary>
/// 获得 样式集合
/// </summary>
/// <returns></returns>
private string? ClassName => CssBuilder.Default()
.AddClassFromAttributes(AdditionalAttributes)
.Build();
[Inject]
[NotNull]
private CodeSnippetService? Example { get; set; }
/// <summary>
/// 获得/设置 IJSRuntime 实例
/// </summary>
[Inject]
[NotNull]
private IJSRuntime? JSRuntime { get; set; }
/// <summary>
/// 获得/设置 子组件 CodeFile 为空时生效
/// </summary>
[Parameter]
public RenderFragment? ChildContent { get; set; }
/// <summary>
/// 获得/设置 用户自定义属性
/// </summary>
/// <returns></returns>
[Parameter(CaptureUnmatchedValues = true)]
public IDictionary<string, object>? AdditionalAttributes { get; set; }
/// <summary>
/// 获得/设置 示例文档名称
/// </summary>
[Parameter]
public string? CodeFile { get; set; }
/// <summary>
/// 获得/设置 代码段的标题
/// </summary>
[Parameter]
public string? BlockTitle { get; set; }
/// <summary>
/// OnInitializedAsync 方法
/// </summary>
/// <returns></returns>
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
if (ChildContent == null)
{
await GetCodeAsync();
}
else
{
Loaded = true;
CanCopy = true;
}
}
/// <summary>
/// OnAfterRender 方法
/// </summary>
/// <param name="firstRender"></param>
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (Loaded)
{
await JSRuntime.InvokeVoidAsync("$.highlight", PreElement);
}
}
private async Task GetCodeAsync()
{
if (!string.IsNullOrEmpty(CodeFile))
{
var code = await Example.GetCodeAsync(CodeFile, BlockTitle);
if (!string.IsNullOrEmpty(code))
{
ChildContent = builder =>
{
builder.AddContent(0, code);
};
}
CanCopy = !string.IsNullOrEmpty(code) && !code.StartsWith("Error: ");
}
Loaded = true;
}
}

View File

@@ -1,10 +1,11 @@
@inject IOptions<WebsiteOptions> WebsiteOption
@inject IStringLocalizer<QQGroup> Localzier
<div>
QQ群BootstrapAdmin & Blazor
@Localzier["Group"]BootstrapAdmin & Blazor
<a class="mx-1" target="_blank" href="@WebsiteOption.Value.QQGroup1Link">
<span class="text-danger fa fa-qq">
<span class="ms-1"><b>795206915(满)</b></span>
<span class="text-success fa fa-qq">
<span class="ms-1"><b>795206915</b></span>
</span>
</a>
<a class="mx-1" target="_blank" href="@WebsiteOption.Value.QQGroup2Link">
@@ -12,5 +13,5 @@
<span class="ms-1"><b>675147445</b></span>
</span>
</a>
欢迎加群讨论
@Localzier["Welcome"]
</div>

View File

@@ -1,4 +1,4 @@
<ul class="ul-demo">
<ul class="ul-demo mb-3">
<li>更改数值后,点击 <code>确认</code> 返回主页面并 <b>更新</b> 数值</li>
<li>点击其余按钮时关闭弹窗 <b>不更新</b> 数值</li>
</ul>

View File

@@ -0,0 +1,40 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Components;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public partial class ResultDialogDemo : ComponentBase, IResultDialog
{
/// <summary>
///
/// </summary>
[Parameter]
public int Value { get; set; } = 1;
/// <summary>
///
/// </summary>
[Parameter]
public EventCallback<int> ValueChanged { get; set; }
/// <summary>
///
/// </summary>
public async Task OnClose(DialogResult result)
{
if (result == DialogResult.Yes)
{
if (ValueChanged.HasDelegate)
{
await ValueChanged.InvokeAsync(Value);
}
}
}
}

View File

@@ -5,5 +5,3 @@
<TableColumn @bind-Field="@context.Email" />
</TableColumns>
</Table>
<Message />

View File

@@ -0,0 +1,143 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Components;
using System.ComponentModel;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public partial class ResultDialogDemo2 : ComponentBase, IResultDialog
{
private List<Foo> SelectedRows { get; set; } = new List<Foo>();
[NotNull]
private List<Foo>? Items { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public IEnumerable<string>? Emails { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public EventCallback<IEnumerable<string>> EmailsChanged { get; set; }
[CascadingParameter(Name = "BodyContext")]
private object? BodyContext { get; set; }
[Inject]
[NotNull]
private MessageService? MessageService { get; set; }
/// <summary>
///
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
var context = BodyContext as FooContext;
Items = GenerateItems(context?.Count ?? 10);
Emails = context?.Emails?.Split(";") ?? Array.Empty<string>();
SelectedRows = Items.Where(i => Emails.Any(mail => mail == i.Email)).ToList();
}
private Task<QueryData<Foo>> OnQueryAsync(QueryPageOptions option) => Task.FromResult(new QueryData<Foo>()
{
TotalCount = Items.Count,
Items = Items
});
/// <summary>
///
/// </summary>
/// <returns></returns>
public async Task<bool> OnClosing(DialogResult result)
{
var ret = true;
if (result == DialogResult.Yes && !SelectedRows.Any())
{
await MessageService.Show(new MessageOption()
{
Content = "请至少选择一位用户!"
});
ret = false;
}
return ret;
}
/// <summary>
///
/// </summary>
public async Task OnClose(DialogResult result)
{
if (result == DialogResult.Yes)
{
if (EmailsChanged.HasDelegate)
{
Emails = SelectedRows.Where(r => !string.IsNullOrEmpty(r.Email)).Select(r => r.Email!).ToList();
await EmailsChanged.InvokeAsync(Emails);
}
}
}
/// <summary>
///
/// </summary>
/// <returns></returns>
private static List<Foo> GenerateItems(int startId) => new(Enumerable.Range(startId, 10).Select(i => new Foo()
{
Id = i,
Name = $"张三 {i:d4}",
Email = $"zhangsan{i:d4}@163.com"
}));
/// <summary>
///
/// </summary>
public class FooContext
{
/// <summary>
///
/// </summary>
public int Count { get; set; }
/// <summary>
///
/// </summary>
public string? Emails { get; set; }
}
/// <summary>
///
/// </summary>
private class Foo
{
/// <summary>
///
/// </summary>
[DisplayName("员工ID")]
public int? Id { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("员工姓名")]
public string? Name { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("员工邮箱")]
public string? Email { get; set; }
}
}

View File

@@ -0,0 +1,31 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using Microsoft.AspNetCore.Components;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public sealed partial class State
{
/// <summary>
/// 获得/设置 是否为新组件 默认为 false
/// </summary>
[Parameter]
public bool IsNew { get; set; }
/// <summary>
/// 获得/设置 是否为更新功能 默认为 false
/// </summary>
[Parameter]
public bool IsUpdate { get; set; }
/// <summary>
/// 获得/设置 组件数量
/// </summary>
[Parameter]
public int Count { get; set; }
}

View File

@@ -2,13 +2,9 @@
<div @ref="@ThemeElement" class="theme">
<div class="btn btn-theme" data-bs-toggle="tooltip" title="@Title" data-bs-placement="left">
<div class="theme-bar">
<span class="theme-color bg-danger"></span>
<span class="theme-color bg-success"></span>
</div>
<div class="theme-bar">
<span class="theme-color bg-info"></span>
<span class="theme-color bg-warning"></span>
<img src="_content/BootstrapBlazor.Shared/images/m.svg" class="m-logo" />
<div class="pulse pulse-warning">
<span class="pulse-ring"></span>
</div>
</div>

View File

@@ -0,0 +1,91 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Options;
using Microsoft.JSInterop;
namespace BootstrapBlazor.Shared.Components;
/// <summary>
///
/// </summary>
public partial class ThemeChooser
{
private ElementReference ThemeElement { get; set; }
[NotNull]
private IEnumerable<SelectedItem>? Themes { get; set; }
[NotNull]
private string? Title { get; set; }
[NotNull]
private string? HeaderText { get; set; }
[Inject]
[NotNull]
private IStringLocalizer<ThemeChooser>? Localizer { get; set; }
[Inject]
[NotNull]
private IOptions<BootstrapBlazorOptions>? BootstrapOptions { get; set; }
[Inject]
[NotNull]
private IOptions<WebsiteOptions>? SiteOptions { get; set; }
/// <summary>
/// OnInitialized 方法
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
Title ??= Localizer[nameof(Title)];
HeaderText ??= Localizer[nameof(HeaderText)];
Themes = BootstrapOptions.Value.Themes.Select(kv => new SelectedItem(kv.Value, kv.Key));
SiteOptions.Value.CurrentTheme = Themes.FirstOrDefault(i => i.Text == "Motronic")?.Value ?? "";
}
/// <summary>
/// OnAfterRenderAsync 方法
/// </summary>
/// <param name="firstRender"></param>
/// <returns></returns>
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await base.OnAfterRenderAsync(firstRender);
if (firstRender)
{
await JSRuntime.InvokeVoidAsync("$.initTheme", ThemeElement);
}
}
private async Task OnClickTheme(SelectedItem item)
{
SiteOptions.Value.CurrentTheme = item.Value;
await JSRuntime.InvokeVoidAsync("$.setTheme", LinksCache[item.Value]);
}
private string? GetThemeItemClass(SelectedItem item) => CssBuilder.Default("theme-item")
.AddClass("active", SiteOptions.Value.CurrentTheme == item.Value)
.Build();
private Dictionary<string, ICollection<string>> LinksCache { get; } = new(new KeyValuePair<string, ICollection<string>>[]
{
new("bootstrap.blazor.bundle.min.css", new List<string>()),
new("motronic.min.css", new string[]
{
"_content/BootstrapBlazor/css/motronic.min.css",
"_content/BootstrapBlazor.Shared/css/motronic.css"
}),
new("ant", new List<string>()),
new("layui", new List<string>())
});
}

View File

@@ -1,16 +1,12 @@
@inherits BootstrapComponentBase
@inject IStringLocalizer<Tips> Localizer
<Alert AdditionalAttributes="@AdditionalAttributes" ShowBar="true" Color="@Color">
<h4><i class="@Icon"></i>@Title</h4>
<h4><i class="@Icon"></i>@Localizer["Title"]</h4>
@ChildContent
</Alert>
@code {
/// <summary>
/// 获得/设置 显示文本
/// </summary>
[Parameter]
public string Title { get; set; } = "小技巧";
/// <summary>
/// 获得/设置 图标

View File

@@ -0,0 +1,53 @@
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// Website: https://www.blazor.zone or https://argozhang.github.io/
using BootstrapBlazor.Components;
namespace BootstrapBlazor.Shared.Components;
class TreeDataFoo
{
public string? Code { get; set; }
public string? ParentCode { get; set; }
public string? Text { get; set; }
public string Icon { get; set; } = "fa fa-fa";
public bool IsActive { get; set; }
/// <summary>
///
/// </summary>
/// <returns></returns>
public static List<TreeItem> GetTreeItems()
{
var items = new List<TreeItem>
{
new TreeItem() { Text = "导航一", Id = "1010" },
new TreeItem() { Text = "导航二", Id = "1020" },
new TreeItem() { Text = "导航三", Id = "1030" },
new TreeItem() { Text = "子菜单一", Id = "1040", ParentId = "1020" },
new TreeItem() { Text = "子菜单二", Id = "1050", ParentId = "1020" },
new TreeItem() { Text = "子菜单三", Id = "1060", ParentId = "1020" },
new TreeItem() { Text = "孙菜单一", Id = "1070", ParentId = "1050" },
new TreeItem() { Text = "孙菜单二", Id = "1080", ParentId = "1050" },
new TreeItem() { Text = "孙菜单三", Id = "1090", ParentId = "1050" },
new TreeItem() { Text = "曾孙菜单一", Id = "1100", ParentId = "1080" },
new TreeItem() { Text = "曾孙菜单二", Id = "1110", ParentId = "1080" },
new TreeItem() { Text = "曾孙菜单三", Id = "1120", ParentId = "1080" },
new TreeItem() { Text = "曾曾孙菜单一", Id = "1130", ParentId = "1100" },
new TreeItem() { Text = "曾曾孙菜单二", Id = "1140", ParentId = "1100" },
new TreeItem() { Text = "曾曾孙菜单三", Id = "1150", ParentId = "1100" }
};
// 算法获取属性结构数据
return items.CascadingTree().ToList();
}
}

View File

@@ -2,18 +2,23 @@
<p><b>B 站相关视频链接</b></p>
@if (string.IsNullOrEmpty(VideoUrl))
@if (VideoUrl.Any())
{
<div class="mb-3">暂无</div>
foreach (var url in VideoUrl)
{
<div class="mb-3">
<a class="fa fa-video-camera" href="@url" target="_blank"><span class="ms-2">[传送门]</span></a>
</div>
}
}
else
{
<a class="fa fa-video-camera mb-3" href="@VideoUrl" target="_blank"><span class="ms-2">[传送门]</span></a>
<div class="mb-3">暂无</div>
}
@code {
[NotNull]
private string? VideoUrl { get; set; }
private List<string> VideoUrl { get; } = new List<string>();
[Parameter]
public string? Name { get; set; }
@@ -27,7 +32,7 @@ else
if (!string.IsNullOrEmpty(Name) && Options.Value.Videos.TryGetValue(Name, out var url))
{
VideoUrl = $"{Options.Value.VideoUrl}{url}";
VideoUrl.AddRange(url.Split(';').Select(a => $"{Options.Value.VideoUrl}{a}"));
}
}
}

Some files were not shown because too many files have changed in this diff Show More