Compare commits

...

1120 Commits

Author SHA1 Message Date
Argo Zhang
5529bd5d00 fix(Swal): add ZIndex style variable (#6557)
* fix(Swal): add style

* chore: bump version 9.9.1
2025-08-05 14:13:25 +08:00
Argo Zhang
33e2aeef64 feat(Toolbar): add Toolbar component (#6547)
* feat: 增加 Toolbar 组件

* refactor: 增加命名空间

* doc: 增加本地化

* doc: 增加源码映射

* doc: 增加工具栏菜单

* doc: 增加工具栏示例

* refactor: 更新内部实现逻辑

* doc: 更新示例

* doc: 增加注释

* refactor: 重构组件名称

* doc: 更新示例

* feat(CheckboxLIst): support ItemTemplate on Button mode

* refactor: 代码格式化

* feat(RadioLIst): support ItemTemplate on Button mode

* feat: 增加 IsWrap 参数

* doc: 更新示例

* doc: 更新示例

* feat(CheckboxList): add ShowButtonBorderColor parameter

* feat(RadioList): add ShowButtonBorderColor parameter

* refactor: 精简样式名称

* test: 更新示例

* test: 增加单元测试

* chore: bump version 9.9.1-beta06

* test: 更新单元测试

* test: 增加功能测试

* revert: 撤销更改

* test: 增加单元测试

* refactor: 增加 disposing 参数使用

* refactor: 更改代码消除异常

* doc: 更新样式

* test: 增加单元测试

* test: 增加单元测试

* test: 增加单元测试

* test: 增加单元测试
2025-08-05 12:58:19 +08:00
Argo Zhang
0b6c36e7d4 feat(ValidateForm): use IOptionsMonitor option (#6555) 2025-08-05 10:46:28 +08:00
Argo Zhang
096d3a7156 fix(INetworkMonitorService): support safari browser (#6553)
* fix(Net): check browser support connection

* chore: bump version 9.9.1-beta06
2025-08-05 10:39:44 +08:00
Argo Zhang
582eebd071 feat(IBrowserFingerService): add GetClientHubIdAsync method (#6551)
* feat(IBrowserFingerService): add GetClientHubIdAsync method

* feat: 增加 getClientHubId 导出方法

* doc: 更新示例

* doc: 调整间隙

* refactor: 更新脚本降低对浏览器的要求

* doc: 文本框更改为只读

* test: 增加单元测试
2025-08-05 10:33:17 +08:00
Argo Zhang
cc70a2c756 doc(Home): add responsive support for logo image (#6549)
* refactor: 精简样式

* refactor: 增加响应式支持

* refactor: 更新样式

* doc: 微调 OTP 样式
2025-08-05 10:26:48 +08:00
Argo Zhang
a65e2464c5 feat(ToggleButton): add ToggleButton component (#6545)
* feat: 增加 ToggleButton 组件

* doc: 增加示例

* chore: 更新 Sortable 依赖

* test: 更新 Table 单元测试

* test: 增加单元测试提高覆盖率

* chore: 更新项目依赖

* refactor: 重构代码

* test: 增加单元测试

* doc: 更新示例

* chore: bump version 9.9.1-beta05
2025-08-04 11:37:28 +08:00
Argo Zhang
69ce39edce fix(BootstrapBlazorDataAnnotationsValidator): add IDispose interface (#6543)
* refactor: 移除扩展方法

* refactor: 增加 IDisposable 接口

* chore: bump version 9.9.1-beta04

* refactor: 精简代码
2025-08-04 09:19:07 +08:00
Argo Zhang
1435764235 feat(ISortableList): add ISortableList interface (#6527)
* feat: 增加 Key 参数

* refactor: 使用回调方法 GetKeyByITem 获得行 Key 值

* chore: bump version 9.9.1-beta02

* doc: 调整示例

* refactor: 增加键值

* doc: 更新示例

* refactor: 内置可拖动行样式

* feat: 增加 ISortableList 接口

* chore: bump version 9.9.1-beta04

* chore: 更新 SortableList 组件

* refactor: 增加级联参数

* refactor: 内置 SortableList 行键值逻辑向下兼容

* revert: 撤销更改

* revert: 撤销 Key 参数

* revert: 撤销依赖

* revert: 临时移除 OnGetRowKey 回调方法
2025-08-04 09:14:07 +08:00
Argo Zhang
09e200c29d feat(RadioList): add outline style (#6540)
* refactor: 更改样式

* style: 微调样式

* style: 调整样式

* test: 更新单元测试
2025-08-03 10:29:44 +08:00
Argo Zhang
b008908e71 feat(CheckboxList): add outline style (#6538)
* chore: 更新 CheckboxList 实现逻辑

* refactor: 微调样式

* refactor: 开发模式不使用后台服务

* Revert "chore: 更新 CheckboxList 实现逻辑"

This reverts commit 312fad38e4.

# Conflicts:
#	src/BootstrapBlazor/Components/Checkbox/CheckboxList.razor.cs

* Revert "refactor: 微调样式"

This reverts commit 061ca856fd.

# Conflicts:
#	src/BootstrapBlazor/Components/Checkbox/CheckboxList.razor.cs

* feat: 同步 bs 实现

* doc: 更新示例

* style: 微调样式

* style: 调整样式
2025-08-03 10:25:05 +08:00
Argo Zhang
184b491a4c fix(Collapse): show Icon and Text both (#6536)
* refactor: 更新逻辑图标与文本可以一起显示

* chore: bump version 9.9.1-beta03
2025-08-03 10:19:48 +08:00
Argo Zhang
e12f5cd839 feat(Bootstrap): bump bootstrap 5.3.7 (#6534)
* chore: bump version 5.3.7

* chore: bump version 5.3.7
2025-08-03 09:46:31 +08:00
Mydashixiong
175fd46e35 feat(Table): support CssClass on CardView mode (#6525)
* feat(TableColumn):Table的RenderMode模式为CardView 时Column属性 CssClass

让Table的RenderMode模式为CardView 时,修改 Column属性 CssClass 可以生效

* refactor: 重构代码

* test: 增加单元测试

* chore: bump version 9.9.1-beta02

---------

Co-Authored-By: Mydashixiong <136679228+Mydashixiong@users.noreply.github.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2025-08-02 10:05:55 +08:00
Argo Zhang
db1fc338eb doc(TaskService): disable task service on dev mode (#6529) 2025-08-02 09:38:13 +08:00
Argo Zhang
ad7593c818 feat(Table): add IsPopover parameter on PageInfo (#6524)
* refactor: add IsPopover parameter

* chore: bump version 9.9.1-beta01
2025-08-01 15:52:41 +08:00
Argo Zhang
a37909573c fix(PdfViewer): no render when url is empty (#6522) 2025-08-01 10:13:36 +08:00
Argo Zhang
4a2b9a4a9e doc(Home): update link address (#6520)
* doc: 调整 Home 页面 Header 间隙

* doc: 更新加入我们地址链接

* doc: 更新贡献指南链接
2025-08-01 09:15:53 +08:00
Argo Zhang
22a2212592 feat(PdfViewer): add PageIndex parameter (#6515)
* feat: 增加 PageIndex

* chore: bump version 9.0.5

* chore: bump version 9.9.0
2025-07-31 13:12:17 +08:00
Argo Zhang
ccfb30f72c fix(Message): should clear when use same option (#6513)
* doc: 更新示例

* fix: 防止多次添加相同 Id

* doc: 更新示例

* refactor: 增加取消动画逻辑

* refactor: 更新变量名称

* chore: 增加 null 赋值
2025-07-31 13:03:29 +08:00
Argo Zhang
a296a6d230 feat(ImageViewer): support dynamic update Url parameter (#6510)
* refactor: 预览组件 Id 提前生成

* refactor: 更新时重构 img 引用
2025-07-30 11:24:07 +08:00
Argo Zhang
6fbacbcaf5 fix(MultiSelectGeneric): update value when bind-Value changed (#6505)
* feat: 增加 IModelEqualityComparer 接口

* chore: bump version 9.8.3-beta01
2025-07-29 11:25:09 +08:00
Argo Zhang
a36dd1361e doc(AutoGenerateColumn): update final value logic documentation (#6502)
* doc: 更新表格标签文档

* doc: 增加权重大小逻辑
2025-07-28 09:29:50 +08:00
Argo Zhang
c9269f2217 feat(Badge): use text-bg-color class (#6498)
* refactor: use text-bg-color class

* refactor: 更改样式名称

* refactor: 更新样式

* test: 更新单元测试
2025-07-27 18:15:25 +08:00
Argo Zhang
b02aca8817 refactor(NetworkMonitor): add try/finally keep release simaphore slim (#6496) 2025-07-27 09:07:18 +08:00
Argo Zhang
c3eba6bbc9 chore(Config): update configuration files (#6494)
* chore: 更改邮件地址

* chore: 更新配置文件
2025-07-26 21:48:08 +08:00
Argo Zhang
df25e04f9a doc(QQGroup): update the DOM layout (#6492) 2025-07-25 15:50:49 +08:00
Argo Zhang
8ced895635 doc(Template5): add auto focus function (#6490)
* doc(Template5): 更新脚本增加自动获得焦点功能

* chore: add null check
2025-07-25 14:17:40 +08:00
Argo Zhang
b6d1fee0c3 doc(CodeEditor): add sample cdoe for CodeEditor (#6488)
* doc: 更新 CodeEditor 示例文档

* chore: 增加 CodeEditor 依赖

* doc: 增加行号
2025-07-25 12:35:32 +08:00
Argo Zhang
6b73e28e8b feat(TableToolbarButton): add IsOutline parameter (#6486)
* refactor(TableToolbarButton): add missing parameter

* chore: bump version 9.8.2
2025-07-24 12:50:43 +08:00
Argo Zhang
967b5ca8b5 doc(IOptions): use IOptions improve performance (#6485)
* refactor: 改用 IOptions<WebsiteOptions> 节约性能

* refactor: 移除 IOptionsMonitor 使用

* doc: 更正单词拼写错误

* refactor: 重构方法
2025-07-24 12:34:29 +08:00
Argo Zhang
981fd03bda feat(FluentSystemIcons): add microsoft fluent free icon set (#6483)
* doc: 增加多语言资源文件

* feat: 增加样式加载

* doc: 增加示例

* doc: 更新示例

* chore: 更新依赖 9.0.1 版本

* doc: 增加微软图标菜单

* doc: 更新文档

* doc: 更新注释文档

* doc: 更新文档
2025-07-24 12:06:03 +08:00
Argo Zhang
29f1e950eb chore(FontAwesome): bump version 9.1.0 (#6480) 2025-07-24 10:11:47 +08:00
Argo Zhang
4ea6624209 doc(TcpSocket): update TcpSokcet sample code (#6477)
* feat: 移动 Socket 相关代码到扩展包

* test: 更新单元测试

* doc: 更新示例

* chore: 增加对 TcpSocket 项目依赖
2025-07-23 18:14:50 +08:00
Argo Zhang
ca862b015a refactor(ITcpSocketFactory): move socket to extension package (#6475)
* feat: 移动 Socket 相关代码到扩展包

* test: 更新单元测试
2025-07-23 16:15:36 +08:00
Argo Zhang
54342accf8 fix(FlipClock): update digit after switch visible (#6473)
* refactor: 修复缓存导致数字不更新问题

* chore: bump version 9.8.2-beta05
2025-07-23 12:09:18 +08:00
Argo Zhang
fc34c3c576 doc(TreeView): add auto expand after drag sample code (#6471)
* refactor: 更新示例

* feat: 增加节点回调方法

可设置展开复选等功能

* doc: 更新拖动到子节点时父节点自动展开功能

* refactor: 精简代码

* test: 更新单元测试
2025-07-23 11:40:47 +08:00
Argo Zhang
e0f10c09d5 doc(Template5): add transition animation (#6469)
* refactor: 移除广告位

* feat: 增加过渡动画

* doc: 增加打包文件
2025-07-23 09:59:19 +08:00
Argo Zhang
ddc61cd14e feat(Collapse): redesign HeaderTemplate function (#6467)
* refactor: 更改 HeaderTemplate 模板

* doc: 更新示例

* chore: bump version 9.8.2-beta04

Co-Authored-By: 逆流的鱼 <84623480+leilei-liu@users.noreply.github.com>

---------

Co-authored-by: 逆流的鱼 <84623480+leilei-liu@users.noreply.github.com>
2025-07-22 18:09:54 +08:00
Argo Zhang
e862e7574f feat(ISocketDataConverter): add ConfigureSocketDataConverters method (#6463)
* refactor: 更改文件目录结构

* refactor: 代码格式化

* refactor: 增加重构方法精简代码

* refactor: 精简方法名称

* doc: 更新配置转换器集合文档
2025-07-22 12:44:27 +08:00
Argo Zhang
bbae67e158 fix(TabItem): layout OnErrorHandleAsync callback not work on tab item (#6461)
* doc: 更新文档

* feat: TabItem 内容报错时支持自定义异常处理

* chore: bump version 9.8.2-beta03
2025-07-22 12:07:19 +08:00
Argo Zhang
373f5c789c chore(Topolopy): bump version 9.0.1 (#6459)
bump meta2d version 1.0.88
2025-07-22 11:40:42 +08:00
Argo Zhang
336bfe7fb1 feat(Localization): add ru-RU localization file (#6455)
* chore: 增加俄语支持

* chore: 增加俄语资源文件链接
2025-07-21 14:45:33 +08:00
Argo Zhang
476490250c chore(DockView): bump version 9.1.18 (#6453) 2025-07-21 13:16:38 +08:00
Argo Zhang
1008101234 doc(LoginTemplate): use ValidateForm in login form (#6451)
* refactor: 重构登录 UI 支持键盘

* doc: 更新模板内使用表单
2025-07-20 15:40:49 +08:00
Argo Zhang
a324fe469f feat(SocketDataConverterCollections): add global converter configuration function (#6449)
* feat: 增加 ISocketDataConverter 接口

* feat: 增加 SocketDataConverterCollections 配置类

* test: 增加单元测试

* test: 更新单元测试

* test: 增加单元测试

* doc: 更新文档

* feat: 增加 SocketDataConverterCollections 配置项自动获取属性标签逻辑
2025-07-20 11:17:17 +08:00
Argo Zhang
4bc092d681 feat(SocketDataConveter): remove abstract keyword (#6447)
* refactor: 更改 SocketDataConverter 虚类

* doc: 更新文档

* doc: 更新相关文档说明

* test: 提高代码覆盖率
2025-07-19 11:45:31 +08:00
Argo Zhang
f1ad7618dd doc(Html2Pdf): add QA documentation (#6445) 2025-07-19 11:33:30 +08:00
Argo Zhang
a8b3a46017 refactor(IntersectionObserver): add margin bottom stype (#6442)
* doc: 更新文档

* refactor: 增加样式修复手机或者整页面时不触发滚动问题
2025-07-19 01:54:11 +00:00
Argo Zhang
c8bc51a28a refactor(LoadMore): use UseElementViewport false value (#6440)
* refactor: 更新默认设置

* refactor: 增加 UseElementViewport 参数设置

* refactor: 更改默认值为 false

* doc: 更新注释

* refactor: 移除冗余参数

* doc: 格式化文档

* refactor: 更改默认值为 true

* refactor: 设置 UseElementViewport 值 false
2025-07-19 09:20:53 +08:00
nhren
5e3dab8d5f feat(LoadMore): add LoadMore component (#6436)
* 增加触底加载LoadMore

* refactor: 更新示例文档

* refactor: 更新使用元素视口逻辑

* chore: 撤销更改

* chore: 撤销更改

* chore: 移动组件目录

* doc: 增加多语言支持

* refactor: 调整结构精简样式

* refactor: 增加逻辑检查

* doc: 增加 LoadMore 示例

* refactor: 更改参数名称提高可读性

* doc: 更新示例文档

* feat: 增加阈值参数

* test: 补充 LoadMore 单元测试

* doc: 更新文档

* chore: bump version 9.8.2-beta02

Co-Authored-By: nhren <wj8511@qq.com>

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-07-18 15:58:47 +08:00
Argo Zhang
4dad565a02 feat(HtmlToPdf): add support to ARM browsers (#6438)
* feat: 增加 IWebProxy 接口可以设置网络代理

* wip: 增加 IWebProxy 接口

* chore: 更新 HTML PDF 依赖到 9.0.3
2025-07-18 01:52:20 +00:00
Argo Zhang
235f38a0e3 doc(LoginTemplate): add animation for temple5 (#6434)
* doc: 增加动画特效

* doc: 增加动画样式

* refactor: 样式格式化
2025-07-17 10:40:14 +08:00
Diego2098
2c0b1ff652 doc(readme): correct demo address (#6430)
Co-Authored-By: Diego2098 <82756760+kimdiego2098@users.noreply.github.com>
---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-07-17 08:38:00 +08:00
Argo Zhang
9328c8a7e2 fix(DateTimePicker): can't clear value when set MinValue (#6428)
* fix: 修复设置 MinValue 值导清空按钮不工作问题

* test: 更新单元测试

* chore: bump version 9.8.2-beta01
2025-07-16 16:29:49 +08:00
Argo Zhang
3570038dbb doc(readme): add TG ecosystem Partners (#6427) 2025-07-16 15:42:33 +08:00
Argo Zhang
ab6431b2ee doc(ISocketDataPropertyConverter): add ISocketDataPropertyConverter documentation (#6425)
* refactor: 增加数据保护

* doc: 增加通讯数据转实体类示例文档

* doc: 增加实体类文档
2025-07-16 14:27:38 +08:00
Argo Zhang
fdbe93594d feat(ISocketDataPropertyConverter): add ISocketDataPropertyConverter interface (#6422)
* feat(ISocketDataConverter): add ISocketDataConverter interface (#6420)

* feat: 增加数据转换器设计

* refactor: 数据处理器增加数据转化器适配

* test: 增加单元测试

* refactor: 更新判断转换成功逻辑

* test: 更新单元测试

* feat: 增加 SocketDataConverter 标签

* feat: 增加 Parse 转化器

* test: 增加单元测试

* feat: 增加无符号数据类型转换

* test: 增加单元测试

* refactor: 精简代码

* test: 更新单元测试

* feat: 增加防止死锁逻辑

* test: 增加单元测试

* refactor: 重构代码

* feat: 增加转换器

* feat: 增加 GetConverterByType 扩展方法

* test: 更新单元测试

* test: 增加单元测试
2025-07-16 11:19:29 +08:00
Argo Zhang
4fffebd10b feat(AvatarUpload): preview function may be required (#6418)
* chore: 更新 Logging 到最新版本

* doc: 更新单词拼写错误

* refactor: 增加预览功能

* feat: 增加预览实例方法

* test: 增加单元测试

* feat: bump version 9.8.1
2025-07-15 09:57:51 +08:00
Argo Zhang
c47c61beca refactor(INetworkMonitor): update return type nullable NetworkMonitorState (#6417)
* refactor: 更改返回值为可为空对象

* test: 更新单元测试
2025-07-14 04:20:36 +00:00
Argo Zhang
a1b8cbf08e feat(CherryMarkdown): add Language parameter (#6413)
* feat(CherryMarkdown): add Language parameter

* chore: bump version 9.0.3
2025-07-14 11:04:14 +08:00
Argo Zhang
9465cae520 feat(DockView): add shadow for float panel (#6415) 2025-07-14 10:44:47 +08:00
Argo Zhang
56f936e2a0 test(IThrottleDispatcherFactory): improve code coverage (#6411)
* test: 更新单元测试

* test: 更新单元测试
2025-07-13 20:08:38 +08:00
Argo Zhang
cd6c8fd1f5 refactor(INetworkMonitorService): add reuse state function (#6409)
* doc: 移除 SDK 文本

* doc: 增加网络状态菜单

* doc: 增加网络状态源码映射

* doc: 增加网络状态示例

* doc: 增加指示器示例文档

* feat: 增加 INetworkMonitorService 服务

* refactor: 实现 INetworkMonitorService 逻辑

* doc: 更新示例

* refactor: 支持离线状态

* doc: 更新文档

* refactor: 更新细节

* test: 更新单元测试

* doc: 更新文档

* feat: 增加状态复用逻辑

* refactor: 增加超时设置
2025-07-13 17:54:48 +08:00
Argo Zhang
8daec76686 feat(INetworkMonitorService): add INetworkMonitorService service (#6407)
* doc: 移除 SDK 文本

* doc: 增加网络状态菜单

* doc: 增加网络状态源码映射

* doc: 增加网络状态示例

* doc: 增加指示器示例文档

* feat: 增加 INetworkMonitorService 服务

* refactor: 实现 INetworkMonitorService 逻辑

* doc: 更新示例

* refactor: 支持离线状态

* doc: 更新文档

* refactor: 更新细节

* test: 更新单元测试
2025-07-13 17:38:55 +08:00
Argo Zhang
61ef8f7409 feat(NetworkMonitor): add NetworkMonitor component (#6405)
* refactor: 增加 NetworkMonitor 组件

* doc: 增加使用示例

* feat: 增加 Indicator 参数

* style: 增加样式

* feat: 增加网络状态指示器组件

* feat: 增加离线状态指示

* refactor: 撤销更改

* doc: 更新示例

* feat: 增加恢复 Online 状态后重置数据方法

* refactor: 减少一次网络请求

* style: 更新样式

* refactor: 调整参数顺序

* refactor: 复用代码

* doc: 增加资源文件

* test: 增加单元测试

* test: 更新单元测试

* doc: 更新资源文件

* test: 增加单元测试

* doc: 更新示例

* refactor: 重构代码
2025-07-13 09:34:29 +08:00
Argo Zhang
7441314758 doc(WebClientService): add IpLocator function documentation (#6403)
* doc: 增加内置定位器描述说明

* doc: 更新客户端连接信息服务文档
2025-07-12 11:17:17 +08:00
Argo Zhang
146778f0f0 doc(IIpLocatorProvider): update use locator documentation (#6401)
* refactor: 重构代码提高可读性

* doc: 更新定位器文档
2025-07-12 10:58:53 +08:00
Argo Zhang
2f59a8db16 feat(Table): disable editing in virtual scroll mode (#6399)
* refactor: 重构逻辑保证虚拟滚动模式下禁止编辑

* feat: 虚拟滚动模式下禁止编辑

* chore: bump version 9.8.1-beta06

Co-Authored-By: shakugans <81663852+shakugans@users.noreply.github.com>

---------

Co-authored-by: shakugans <81663852+shakugans@users.noreply.github.com>
2025-07-11 20:23:33 +08:00
Argo Zhang
c70eca956f fix(Table): UI not refreshed after save when set ScrollMode to Virtual (#6397)
* refactor: 改用 QueryAsync 方法

* chore: bump version 9.8.1-beta05

Co-Authored-By: shakugans <81663852+shakugans@users.noreply.github.com>

---------

Co-authored-by: shakugans <81663852+shakugans@users.noreply.github.com>
2025-07-11 19:24:42 +08:00
Argo Zhang
5d2ed311fb feat(ITcpSocketClient): add OnConnecting callback (#6392)
* doc: 增加数据处理器文档说明

* doc: 增加自动重连示例

* doc: 增加自动重连菜单

* feat: 增加 Connect 连接回调

* feat: 拆分自动重连逻辑

* feat: 远端关闭后销毁 TcpClient 实例

* doc: 增加重连示例

* test: 增加 OnConnect 回调单元测试

* refactor: 更新日志开启逻辑

* test: 增加服务器断开单元测试

* doc: 增加自动重连菜单

* doc: 增加文件映射

* doc: 更新自动重连文档

* refactor: 删除样式文件
2025-07-11 08:18:25 +00:00
Argo Zhang
39578edde6 refactor(Select): rename IsUseActiveWhenValueIsNull parameter (#6390)
* feat: 更改参数 IsUseActiveWhenValueIsNull 为 IsUseDefaultItemWhenValueIsNull

* test: 更新单元测试

* chore: bump version 9.8.1-beta04

---------

Co-Authored-By: Francisco Lima <36736375+franciscojml@users.noreply.github.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2025-07-11 13:02:16 +08:00
Argo Zhang
c8e95e9fa0 test(ITcpSocketFactory): improve code coverage (#6387)
* test: 增加连接延时

* refactor: 精简单元测试

* wip: 临时注移除单元测试

* refactor: 精简代码移除 ITcpSocketClient 实现类

* test: 更新单元测试

* test: 增加连接取消单元测试

* revert: 撤销单元测试

* test: 更新单元测试
2025-07-11 12:14:37 +08:00
Symin
b0245db885 feat(TreeView): scripts to implement drag and drop function (#6380)
* feat:DraggableTree

* fix:修正格式错误

* 添加TreeView拖拽功能测试

* Enhance TreeView drag-and-drop and add comprehensive tests

Improved TreeView drag-and-drop logic to handle moving nodes without parents and updated node removal accordingly. Added and expanded unit tests to cover moving nodes as last child, first child, and as siblings below, ensuring correct parent/child relationships and node ordering. Also added clarifying comments in TreeViewRow for drag-and-drop preview UI.

* Add draggable TreeView demo with drop restrictions

Introduced a new demo block showcasing draggable TreeView nodes, including logic to restrict certain drag-and-drop operations. Added localized strings for the new demo in both English and Chinese. Updated the backend to provide a sample data set and drop event handler enforcing the restrictions.

* Refactor TreeView drag-and-drop and improve tests

Refactored TreeView and TreeViewRow to require OnItemDrop and remove null checks, simplifying drag-and-drop logic. Updated tests to cover cases where OnItemDrop is not set and to verify drag-and-drop visual feedback.

* refactor: 代码格式化

* refactor: 代码规范化

* refactor: 提高可读性

* refactor: 代码格式化

* refactor: 代码重构调整位置

* refactor: 更改参数名称为 AllowDrag

* revert: 重构 Row 对拖动支持

* refactor: 移除预留占位节点

* revert: 撤销更改

* revert: 撤销更改

* revert: 撤销 TreeDropType 类型

* doc: 更新文档

* test: 撤销单元测试更改

* refactor: 移除命名空间

* revert: 撤销 AllowDrag 参数

* revert: 撤销 AllowDrag 参数

* style: 调整样式

* style: 整理样式

* feat: JS 实现客户端拖动动画样式

* style: 精简样式

* feat: 增加 TriggerDragEnd 逻辑

* feat: JavaScript 实现拖动逻辑

* feat: 实现 OnDragItemEndAsync 逻辑

* doc: 更新示例

* feat: 增加重置客户端 DOM 逻辑

* doc: 更新示例

* doc: 撤销示例注释

* doc: 增加注释

* test: 更新单元测试

* fix: 增加逻辑保护

* doc: 更新文档

* chore: bump version 9.8.1-beta03

---------

Co-Authored-By: Symin <syminomega@outlook.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2025-07-10 19:30:31 +08:00
Argo Zhang
694361509d doc(Table): remove SortList sample (#6384) 2025-07-10 12:07:26 +08:00
Argo Zhang
b84dd4cda9 doc(Uploader): add UseUploaderStaticFiles extension method (#6382)
* doc: 更新资源文件

* doc(Uploader): add UseUploaderStaticFiles extension method
2025-07-09 14:31:15 +08:00
Symin
b442af2a57 feat(TreeView): support Darg and Drop function (#6121)
* feat:DraggableTree

* fix:修正格式错误

* 添加TreeView拖拽功能测试

* Enhance TreeView drag-and-drop and add comprehensive tests

Improved TreeView drag-and-drop logic to handle moving nodes without parents and updated node removal accordingly. Added and expanded unit tests to cover moving nodes as last child, first child, and as siblings below, ensuring correct parent/child relationships and node ordering. Also added clarifying comments in TreeViewRow for drag-and-drop preview UI.

* Add draggable TreeView demo with drop restrictions

Introduced a new demo block showcasing draggable TreeView nodes, including logic to restrict certain drag-and-drop operations. Added localized strings for the new demo in both English and Chinese. Updated the backend to provide a sample data set and drop event handler enforcing the restrictions.

* Refactor TreeView drag-and-drop and improve tests

Refactored TreeView and TreeViewRow to require OnItemDrop and remove null checks, simplifying drag-and-drop logic. Updated tests to cover cases where OnItemDrop is not set and to verify drag-and-drop visual feedback.

* refactor: 代码格式化

* refactor: 代码规范化

* refactor: 提高可读性

* refactor: 代码格式化

* Revert "Enhance TreeView drag-and-drop and add comprehensive tests"

This reverts commit 3c8f5a153f.

* Revert "Merge branch 'main' into main"

This reverts commit 7ea39da6e7, reversing
changes made to 3c8f5a153f.

* Revert "Add draggable TreeView demo with drop restrictions"

This reverts commit 906f2aa5a6.

# Conflicts:
#	src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor
#	src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor.cs

* Revert "Refactor TreeView drag-and-drop and improve tests"

This reverts commit 81235e91b5.

# Conflicts:
#	src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs

* Revert "添加TreeView拖拽功能测试"

This reverts commit de2be13a62.

* Revert "feat:DraggableTree"

This reverts commit 8ae88250d1.

# Conflicts:
#	src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor.cs
#	src/BootstrapBlazor/Components/TreeView/TreeView.razor
#	src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs

* revert: 撤销更改

* revert: 撤销更改

* revert: 撤销更改

* revert: 撤销更改

---------

Co-Authored-By: Symin <syminomega@outlook.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2025-07-09 10:02:07 +08:00
Argo Zhang
1ae85795a8 feat(ThrottleDispatcher): refine code improve readability (#6379)
* refactor: 精简代码逻辑

* test: 更新单元测试

* test: 精简命名空间
2025-07-08 16:01:40 +08:00
Argo Zhang
e3d081edd9 feat(ITcpSocketClient): add concurrency connect logic (#6377)
* feat: 增加锁控制并发

* refactor: 合并重连方法提高可读性

* feat: 使用 SemaphoreSlim 信号量控制重连并发逻辑

* test: 增加重连单元测试
2025-07-08 15:51:43 +08:00
Argo Zhang
84764e3a02 feat(ITcpSocketClient): add AutoConnect parameter (#6372)
* feat: 增加自动重连配置

* refactor: 使用取消令牌

* refactor: 更改参数为 IsAutoReconnect

* test: 更新单元测试

* feat: 断线时也需要触发 ReceivedCallBack 回调

* refactor: 提高性能避免线程切换

* feat: 连接方法增加保护

* refactor: 增加 Reconnect 方法

* test: 增加重连单元测试

* feat: 增加发送接收时断线重连机制

* test: 增加发送接收时断开重连单元测试
2025-07-07 19:11:15 +08:00
Argo Zhang
7e2f1f1567 feat(SocketClientOptions): add EnableLog parameter (#6371)
* feat(SocketClientOptions): add EnableLog parameter

* test: 增加单元测试
2025-07-07 14:25:11 +08:00
Argo Zhang
786b2c15aa fix(MultiselectGeneric): two-way binding not working (#6370)
* refactor: 移除 EditSubmitKeyString 字符串

* refactor: 格式化代码

* fix: 增加选中值与 Value 同步机制

* chore: bump version 9.8.1-beta02
2025-07-07 12:37:31 +08:00
Argo Zhang
20a64443f0 chore(DockView): bump version 9.1.16 (#6369) 2025-07-06 14:30:14 +08:00
Argo Zhang
fb36b0468a doc(DataPackageAdapter): update ReceiveAsync comment (#6361)
* refactor: 移除 ReceiveAsync 方法

* Revert "refactor: 移除 ReceiveAsync 方法"

This reverts commit 6cba73eca3.

* refactor: 调整目录结构

* test: 增加单元测试注释

* revert: 撤销接收方法

* refactor: 代码重构

* test: 更新单元测试

* doc: 增加手动接收数据示例

* doc: 更改关键字

* doc: 增加一发一收的模拟服务

* doc: 更新手动接收示例

* doc: 更新说明文档

* doc: 更新示例

* doc: 更新图标

* test: 更新单元测试

* test: 增加连接超时单元测试

* doc: 更新日志格式
2025-07-06 11:16:50 +08:00
Argo Zhang
c3caf7d7c7 fix(Progress): culture causes decimal points to be changed to commas (#6362)
* refactor: 格式化增加文化信息

* doc: 更新示例

* chore: bump version 9.8.1-beta01
2025-07-05 10:44:14 +08:00
Argo Zhang
48f8936027 feat(DirectoryInfoExtensions): add recursive parameter (#6358)
* refactor: 增加文件夹拷贝扩展方法

* test: 更新单元测试

* test: 更新单元测试
2025-07-04 14:09:59 +08:00
Argo Zhang
6aa2bd6e7b test(ITcpSocketClient): improve code coverage (#6356)
* test: 重构代码提高覆盖率

* refactor: 更改接口方法名称

* refactor: 增加 SetDataPackageAdapter 扩展方法

* refactor: 精简代码

* feat: 增加 SetDataPackageAdapter 方法

* test: 更新单元测试

* test: 增加单元测试

* doc: 增加移除的路由
2025-07-04 08:27:24 +08:00
yacper
1afd090438 fix(Search): DisplayText needs to be shown on first load (#6351)
* fix bug #6350

* refactor: 重构 OnSearch 参数更改为可为空

---------
Co-Authored-By: yacper <668255+yacper@users.noreply.github.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2025-07-03 15:15:46 +08:00
Argo Zhang
e755e92239 test(DataPackageAdapter): add unit test (#6353)
* test: 更新发送失败单元测试

* test: 更新单元测试

* test: 修复 FixLengthDataPackageHandler 单元测试

* test: 更新粘包通讯单元测试

* test: 更新终止符数据处理器单元测试

* refactor: 移除 SendAsync 方法

* test: 精简单元测试

* test: 补充单元测试提高覆盖率

* refactor: 更改代码提高代码覆盖率
2025-07-03 14:35:16 +08:00
Argo Zhang
ad6f782c58 doc(Coms): remove Coms page (#6349)
* doc: 移除组件总览页面

* doc: 移除相关组件图片

* refactor: 快速上手增加组件总数信息

* doc: 移除组件菜单

* doc: 全屏按钮 Tooltip 增加本地化

* doc: 更改布局模拟器返回链接
2025-07-03 12:29:26 +08:00
Argo Zhang
1dd1e19644 doc(IDataPackageAdapter): add DataPackageAdapter sample code (#6345)
* refactor: 移除数据处理

* refactor: 增加数据适配器接口

* refactor: 重构 ReceiveAsync 方法

* refactor: 更改为实类

* feat: 增加模拟分包逻辑

* doc: 实现接收逻辑

* doc: 更新示例

* doc: 更新示例代码
2025-07-02 19:40:43 +08:00
Mydashixiong
37db88ab9f feat(DateTimePicker): add Color parameter (#6342)
* feat(DateTimePicker):DateTimePicker增加Color样式属性

DateTimePicker增加Color样式属性,默认Color.None

* test: 增加单元测试

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-07-02 15:11:37 +08:00
Argo Zhang
889410f642 feat(FullScreenButton): adjust the gap (#6341)
* refactor: 调整 Tab 工具栏全屏按钮样式

* style: 增加等宽样式
2025-07-02 00:58:46 +00:00
Argo Zhang
a408e98676 fix(Dialog): not trigger OnCloseAsync multiple dialog (#6339)
* fix: 修复未触发 OnCloseAsync 回调问题

* chore: bump version 9.8.0
2025-07-01 05:20:58 +00:00
Argo Zhang
f8d6acccb7 fix(LookupFilter): use first item as default value when value is null (#6338)
* refactor: 调整参数位置

* Revert "fix(EnumFilter): incorrect selected value (#6334)"

This reverts commit daf9af9b38.

* Revert "fix(BoolFilter): set default value is empty"

This reverts commit 26e33c3876.

* Reapply "fix(BoolFilter): set default value is empty"

This reverts commit 4509634ed2.

* Reapply "fix(EnumFilter): incorrect selected value (#6334)"

This reverts commit 3f3e12513f.

* refactor: 增加中文注释

* refactor: 支持默认值

* test: 增加单元测试
2025-07-01 13:17:37 +08:00
Argo Zhang
1bcf624cc9 fix(BoolFilter): set default value is empty (#6336) 2025-07-01 02:15:34 +00:00
Argo Zhang
daf9af9b38 fix(EnumFilter): incorrect selected value (#6334) 2025-07-01 09:58:56 +08:00
Argo Zhang
8775218a3b doc(ITcpSocketClient): add DataHandler sample code (#6331)
* doc: 增加接收数据示例文档说明

* refactor: 重构代码

* doc: 更新配置类说明

* doc: 增加数据适配器文档

* refactor: 更新接收数据示例代码

* doc: 增加数据适配器菜单

* doc: 更新示例

* doc: 增加后台服务
2025-06-30 20:29:12 +08:00
jin momiji
ef8270975d feat(Step): add CurrentStepIndex property (#6316)
* feat(Step): add 'CurrentStepIndex' to obtain the real-time value of _currentStepIndex

* test: 增加单元测试

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-06-29 09:07:40 +08:00
Argo Zhang
618b956c9c feat(ISocketClientProvider): add ISocketClientProvider service (#6329)
* refactor: 重构实现逻辑增加 ISocketClientProvider 服务

* wip: 移除注释

* test: 增加单元测试

* refactor: 精简代码

* test: 测试连接超时
2025-06-28 23:32:54 +08:00
Argo Zhang
f43449cffb feat(TcpSocketClientBase): update generic class (#6327)
* feat: 增加 SocketClientOptions 配置类

* feat: TcpSocketClientBase 更改为泛型类提高复用能力

* test: 更新单元测试

* refactor: 增加 SocketClient 基类

* test: 增加 空 Logger 单元测试

* test: 增加 DefaultSocketClient 单元测试

* test: 增加 DefaultSocketClient 单元测试

* test: 移除命名空间

* test: 更新单元测试
2025-06-28 18:25:43 +08:00
Argo Zhang
5d1457b33f doc(ITcpSocketClient): add Receive documentation (#6322)
* refactor: 精简代码提高可读性

* refactor: 更新连接状态返回值

* feat: 更新读取数据长度

* feat: 更新远端节点数据

* refactor: 更新自动接收逻辑增加已连接逻辑判断

* chore: bump version 9.8.0-beta07

* doc: 更新文档

* feat: 增加模拟 Socket 服务端服务

* doc: 更新文档

* doc: 增加 Socket 实战

* refactor: 代码格式化

* refactor: 更改 Func 类型支持异步

* refactor: 更改为私有属性

* doc: 更新示例

* test: 更新单元测试

* refactor: 重构 Socket Server 模拟器

* test: 更新单元测试

* doc: 完善示例

* refactor: 微调日志逻辑

* refactor: 增加异常捕获

* doc: 更新示例

* doc: 增加接收数据示例文档
2025-06-28 11:02:38 +08:00
Argo Zhang
2abfb68a85 feat(Console): update OnClear support async (#6325)
* refactor: 代码格式化

* refactor: 更改 Func 类型支持异步

* refactor: 更改为私有属性

* doc: 更新示例

* test: 更新单元测试
2025-06-28 08:51:23 +08:00
Argo Zhang
a8c8dc7339 feat(TcpSocketClientBase): add TcpSocketClientBase class (#6320)
* refactor: 更改为异步销毁接口

* feat: 增加基类

* refactor: 更改 Close 为 CloseAsync

* test: 更新单元测试

* refactor: 代码重构精简逻辑

* refactor: 精简代码逻辑
2025-06-27 09:11:18 +08:00
Argo Zhang
45c99798c7 feat(ITcpSocketClient): add Timeout parameter (#6318)
* feat: 增加 ReceiveAsync 方法

* doc: 增加默认值说明

* feat: 增加是否自动接收参数

* feat: 增加超时设置

* feat: 根据接口增加新设置

* feat: 增加接收数据实现

* feat: 缓存更改为 64K

* feat: 增加连接超时功能

* test: 增加连接超时单元测试

* feat: 实现发送超时逻辑

* feat: 增加接收数据逻辑

* test: 增加单元测试

* test: 增加重连功能

* test: 更新单元测试

* feat: LocalEndPoint 更改未可为空
2025-06-27 08:33:35 +08:00
Argo Zhang
342ff517fc pef(Upload): add bufferSize parameter for improve save file performance (#6314)
* refactor: 精简代码

* feat: 增加 BufferSize 参数

* doc: 更新示例文档

* chore: bump version 9.8.0-beta06
2025-06-26 10:48:49 +08:00
Argo Zhang
5779d48485 doc(OfficeViewer): update nuget download link (#6312) 2025-06-26 10:35:47 +08:00
Argo Zhang
db3423995b refactor(Tab): remove tabs-body-content-wrap html node (#6310)
* refactor: 移除 tabs-body-content-wrap 恢复老版本结构

* revert: 恢复单元测试

* chore: bump version 9.8.0-beta05

Co-Authored-By: Kim Kokholm <kokholm@gmail.com>

---------

Co-authored-by: Kim Kokholm <kokholm@gmail.com>
2025-06-26 08:49:37 +08:00
Argo Zhang
560bb21327 feat(Table): add AutoSearchOnInput parameter (#6306)
* feat: add AutoSearchOnInput parameter

* feat: 更新代码

* test: 更新单元测试

* chore: bump version 9.8.0-beta04

Co-Authored-By: Jaders77 <jaders77@hotmail.fr>

---------

Co-authored-by: Jaders77 <jaders77@hotmail.fr>
2025-06-25 14:48:47 +08:00
Argo Zhang
29d02df022 feat(Select): add IsUseActiveWhenValueIsNull parameter (#6304)
* feat: 增加 IsUseActiveWhenValueIsNull 参数

* test: 增加单元测试
2025-06-25 14:08:31 +08:00
Argo Zhang
10fc77cce5 feat(Table): add NotSupportedColumnFilterMessage parameter (#6302)
* feat(Table): 增加  NotSupportedMessage 参数

* doc: 增加文档地址提示

* test: 更新单元测试

* refactor: 更改参数名称

* doc: 增加 html 支持

* refactor: 增加标签
2025-06-25 10:48:01 +08:00
Argo Zhang
2dc0cfffef fix(Table): unsupported filter data type cause filter icon misalignment (#6298)
* wip: 临时提交

* chore: bump version 9.8.0-beta03

Co-Authored-By: shakugans <81663852+shakugans@users.noreply.github.com>

* refactor: 重构 NotSupportFilter 组件

* refactor: 重构 TableColumnFilter 组件

* refactor: 增加搜索重置按钮样式

* test: 更新单元测试

* test: 更新单元测试

* refactor: 使用基类本地化服务

* test: 补充单元测试

* test: 更新单元测试

---------

Co-authored-by: shakugans <81663852+shakugans@users.noreply.github.com>
2025-06-25 10:11:46 +08:00
Argo Zhang
79b91d90a9 feat(Table): add default css for Reset/Search button (#6300)
* refactor: 增加搜索重置按钮样式

* test: 更新单元测试
2025-06-25 09:29:10 +08:00
Argo Zhang
de03bba9a0 feat(Table): update TableResetSearchButtonIcon icon (#6297)
* feat: 更改重置搜索按钮图标

* feat: 更改重置搜索条件图标
2025-06-25 08:40:52 +08:00
Argo Zhang
72186d342d fix(Tab): should not rerender tabitem after close (#6294)
* refactor: 更改 Key 为 Guid

* refactor: 增加 wrap 样式

* refactor: 使用 Find 方法

* fix: 修复关闭标签页导致后续标签页重绘问题

* chore: bump version 9.8.0-beta02

* chore: bump version 9.8.0-beta03

Co-Authored-By: Ockyd007 <71997133+ockyd007@users.noreply.github.com>

* Revert "chore: bump version 9.8.0-beta03"

This reverts commit 25b6158e8d.

---------

Co-authored-by: Ockyd007 <71997133+ockyd007@users.noreply.github.com>
2025-06-24 18:13:49 +08:00
Argo Zhang
efa9089f21 feat(Upload): support drag/drop upload function (#6290)
* doc: 代码格式化

* doc: 代码格式化

* refactor: 代码格式化

* feat: 增加拖动支持

* feat: 增加拖动支持

* refactor: 头像上传框精简代码

* refactor: 精简 dom 结构

* refactor: 精简 CardUpload 结构

* chore: bump version 9.8.0-beta01

Co-Authored-By: movieliang <16262928+movieliang@users.noreply.github.com>

---------

Co-authored-by: movieliang <16262928+movieliang@users.noreply.github.com>
2025-06-24 05:02:47 +00:00
Argo Zhang
3a3b8cc5ea feat(OfficeViewer): add OfficeViewer component (#6287)
* wip: 临时提交

* doc: 增加示例文件

* doc: 增加菜单

* doc: 增加 Office 文档预览组件资源文件

* doc: 增加源码映射

* doc: 更新示例文件减小文件体积

* doc: 更正预览文档链接

* doc: 依赖更改为包

* chore: bump version 9.7.4

* chore: 更改组件名称
2025-06-24 11:18:58 +08:00
Mydashixiong
547980d7a9 refactor(ImageViewer): image element is not closed (#6285)
* ImagePreviewer 修复html标签 img

修复img没有结束符

* chore: 代码格式化

Co-Authored-By: Mydashixiong <136679228+Mydashixiong@users.noreply.github.com>

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-06-24 11:17:49 +08:00
Argo Zhang
ed4a2a4043 feat(OtpInput ): support responsive layout (#6284)
* refactor: 移动变量节点位置方便覆盖

* refactor: 更改样式名称纠正单词拼写错误

* doc: 更新样式
2025-06-24 09:11:45 +08:00
Argo Zhang
d4d76e49ad feat(ITcpSocketClient): add TouchSocket extensions (#6268)
* chore: 更新解决方案增加扩展包

* feat: 增加 ReceivedCallBack 回调方法

* test: 增加单元测试

* doc: 更新示例文档

* test: 增加 TouchSocket 单元测试

实现功能后单元测试应该可以通过的

* doc: 更新粘包分包文档

* feat: 增加 SendAsync 扩展方法

* test: 增加单元测试

* feat(tcp): 替换同步关闭方法为异步方法

将 `Close` 方法替换为异步的 `CloseAsync` 方法,以支持异步关闭操作并释放资源。`CloseAsync` 方法接受一个消息和一个可选的取消令牌作为参数,并返回一个 `ValueTask<bool>`,指示关闭操作的结果。原有的 `Close` 方法被移除,相关的资源释放逻辑被整合到新的异步方法中。

* refactor(tests): 使用异步方法关闭连接

在 TcpSocketFactoryTest.cs 和 TouchSocketTest.cs 中,将连接关闭逻辑从 client.Close() 更改为 await client.CloseAsync(string.Empty),以支持异步关闭连接并提高性能

* doc: 更新数据处理器相关文档

* refactor: 增加 ConnectAsync 扩展方法

* refactor: 更改关闭方法为同步方法

* test: 更新单元测试

* doc: 增加数据适配器文档

* doc: 增加新服务标记

* refactor: 更新 ITcpSocketFactory 接口定义

* feat: 增加 GetOrCreate 扩展方法

* test: 更新单元测试

* test: 增加单元测试

* refactor: 更改 GetOrCreate 签名

* test: 更新单元测试

* refactor: 根据最新设计重构 TouchSocket 实现

* refactor: 整理项目文件

* wip: 临时移除稍后再开分支合并到另外分支上

* chore: bump version 9.7.4-beta08

Co-Authored-By: 若汝棋茗 <76547834+rrqm@users.noreply.github.com>

---------
Co-authored-by: 若汝棋茗 <76547834+rrqm@users.noreply.github.com>
2025-06-23 15:00:57 +08:00
Argo Zhang
0df17f52cf feat(ITcpSocketFactory): redesign GetOrCreate method (#6282)
* refactor: 更改 GetOrCreate 签名

* test: 更新单元测试
2025-06-23 14:07:03 +08:00
Argo Zhang
7826f2281d chore(TableExport): bump TableExport version 9.2.6 (#6280) 2025-06-23 13:36:50 +08:00
Argo Zhang
556fcf3abe refactor(ITcpSocketFactory): add GetOrCreate extension method (#6277)
* refactor: 更新 ITcpSocketFactory 接口定义

* feat: 增加 GetOrCreate 扩展方法

* test: 更新单元测试

# Conflicts:
#	test/UnitTest/Services/TcpSocketFactoryTest.cs

* test: 增加单元测试
2025-06-22 19:39:04 +08:00
Argo Zhang
0caed5aa3a doc(ITcpSocketFactory): add DataAdapter documentation (#6275)
* doc: 增加数据适配器文档

* doc: 增加新服务标记
2025-06-22 19:34:26 +08:00
Argo Zhang
4fdc480909 feat(ITcpSocketClient): add ConnectAsync extension method (#6273)
* doc: 更新数据处理器相关文档

* refactor: 增加 ConnectAsync 扩展方法

* feat: 增加 ConvertToIPAddress 扩展方法

* feat: 更改 DefaultTcpSocketClient 构造函数

* test: 纠正冗余代码

* test: 更新单元测试
2025-06-21 20:38:40 +08:00
Argo Zhang
ea1c142496 feat(ITcpSocketClient): add SendAsync extensions method (#6269)
* doc: 更新粘包分包文档

* feat: 增加 SendAsync 扩展方法

* test: 增加单元测试
2025-06-20 12:55:13 +08:00
Argo Zhang
4ce223e19b feat(ITcpSocketClient): add ReceivedCallback property (#6266)
* feat: 增加 ReceivedCallBack 回调方法

* test: 增加单元测试

* doc: 更新示例文档
2025-06-20 12:24:49 +08:00
Argo Zhang
31a2a958b6 feat(ITcpSocketClient): use ReadOnlyMemory improve performance (#6264)
* refactor: 使用 ReadOnlyMemory 只读类提供性能

* test: 更新单元测试
2025-06-20 11:15:15 +08:00
Argo Zhang
c2343f5e38 feat(FixLengthDataPackageHandler): support multiple sticky package (#6262)
* feat: 支持多次粘包处理功能

* test: 增加单元测试

* refactor: 代码重构提高可读性

* refactor: 精简代码提高可读性
2025-06-20 10:20:35 +08:00
Argo Zhang
62ed6e6ebc feat(DelimiterDataPackageHandler): add DelimiterDataPackageHandler class (#6260)
* feat: 增加分隔符数据处理器

* refactor: 更新分隔符数据处理器

* test: 更新单元测试

* test: 增加单元测试

* refactor: 支持多分隔符

* test: 更新单元测试
2025-06-19 19:12:44 +08:00
Argo Zhang
9bd5946050 perf(TreeView): use Remove method improve performance (#6258)
* perf: 优化性能

* chore: bump version 9.7.4-bta09

Co-Authored-By: Diego2098 <82756760+kimdiego2098@users.noreply.github.com>

---------

Co-authored-by: Diego2098 <82756760+kimdiego2098@users.noreply.github.com>
2025-06-19 16:26:53 +08:00
Argo Zhang
e3971e7af3 doc(ITcpSocketFactory): add ITcpSocketFactory documentation (#6256)
* doc: 增加 Socket 示例

* chore: 增加 Socket 服务菜单

* doc: 增加源码映射文件
2025-06-19 15:35:51 +08:00
Argo Zhang
07d63755b1 feat(ITcpSocketFactory): add ITcpSocketFactory service (#6254)
* feat: 增加扩展方法判断当前环境是否为 IsWasm

* feat: 增加 ITcpSocketFactory 服务

* refactor: 更新 ConnectAsync 接口

* test: 更新单元测试

* refactor: 增加 ITcpSocketClient 服务

* test: 增加单元测试

* refactor: 重构日志实例逻辑

* refactor: 精简代码

* refactor: 增加取消记录日志逻辑

* refactor: 增加 Close 方法

* test: 增加实例单元测试

* feat: 增加 IDataPackageAdapter 接口

* refactor: 增加设置本地节点逻辑

* refactor: 增加数据处理器功能

* refactor: 增加 virtual 关键字

* test: 增加单元测试

* test: 更新单元测试

* feat: 增加数据处理类

* refactor: 增加连接后自动接收逻辑

* test: 增加单元测试

* refactor: 增加接收任务取消逻辑

* refactor: 精简代码逻辑

* test: 更新单元测试

* refactor: 实现拆包粘包处理逻辑

* refactor: 优化代码 Logger 不为空

* test: 更新单元测试

* test: 增加 SendAsync 单元测试

* test: 增加 Factory 单元测试

* test: 精简单元测试

* test: 增加 IsWasm 单元测试

* refactor: 接收方法内异常改为日志

* refactor: 防止缓存区被释放

* refactor: 精简代码提高可读性

* Revert "refactor: 接收方法内异常改为日志"

This reverts commit 44e4bd3768.

* refactor: 更正方法名称为 HandleStickyPackage

* refactor: 更改申请缓存区代码

* refactor: 重构拆包方法名称
2025-06-19 14:43:34 +08:00
jin momiji
48a7777fd9 feat(Table): add ShowColorWhenToolbarButtonsCollapsed parameter (#6251)
* feat(Table): add 'ShowColorWhenToolbarButtonsCollapsed' attribute in 'table' component, add some css style

* chore: bump version 9.7.4-beta08

Co-Authored-By: jin momiji <105467851+momijijin@users.noreply.github.com>

* test: 增加单元测试

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-06-18 18:37:48 +08:00
yacper
1469626de4 fix(Table): update table column order in OnColumnCreating not work (#6242)
* bugfix: Table控件中,如果OnColumnCreating回调中修改了Column项的Order,并不会起作用

* revert: 撤销更改

* refactor: 代码格式化

* refactor: 私有变量内部化提高可读性

* refactor: 更改为结构体

* refactor: 使用中间变量传递列集合

* fix: 修复排序逻辑混乱问题

* chore: bump version 9.7.4-beta07

Co-Authored-By: yacper <668255+yacper@users.noreply.github.com>

---------

Co-authored-by: Argo Zhang <argo@live.ca>
Co-authored-by: yacper <668255+yacper@users.noreply.github.com>
2025-06-18 09:39:07 +08:00
jin momiji
e6c8012704 feat(IpAddress): support ArrowLeft/Right key (#6244)
* feat(IpAddress): add keydownEvent.code ['Space','ArrowLeft','ArrowRight','Backspace'] expansion operations

* fix(IpAddress): Fix the issue where pressing 'Backspace' would delete an extra character when switching to the previous cell.

* fix(IpAddress): Re-write the validation for cells that have content consisting solely of blank spaces.

* refactor: 撤销更改

* refactor: 清除空格

* refactor: 删除中文注释

* refactor: 更新选中部分数字逻辑

* feat: 增加获得焦点后全选逻辑

---------
Co-Authored-By: jin momiji <105467851+momijijin@users.noreply.github.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2025-06-17 16:19:44 +08:00
Argo Zhang
863a2089a3 doc(Select): update ShowSwal sample code (#6248)
* refactor: 更新示例

* doc: 更新文档
2025-06-17 15:23:14 +08:00
Argo Zhang
b7e67a8690 feat(ErrorLogger): add EnableILogger parameter (#6246)
* feat: 增加 EnableErrorLoggerILogger 配置项

* feat: 增加 EnableILogger 参数

* feat: 增加 EnableILogger 参数

* feat: 增加 EnableErrorLoggerILogger 参数

* test: 增加单元测试
2025-06-17 14:22:06 +08:00
Argo Zhang
d97672f33d feat(DockView): add overflow style for floating window (#6241) 2025-06-16 18:07:06 +08:00
Diego2098
bed5200193 perf(Table): use ReferenceEqualityComparer instance (#6238)
* 缓存字典设置引用比较器

* 添加比较器

* chore: bump version 9.7.4-beta06

Co-Authored-By: Diego2098 <82756760+kimdiego2098@users.noreply.github.com>

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-06-16 17:22:46 +08:00
Argo Zhang
21048883aa feat(cherry-markdown): add IsSupportMath parameter (#6237)
* doc: 增加 IsSupportMath 参数

* chore: bump version 9.0.1

Co-Authored-By: j4587698 <24642446+j4587698@users.noreply.github.com>

---------

Co-authored-by: j4587698 <24642446+j4587698@users.noreply.github.com>
2025-06-16 13:20:35 +08:00
Argo Zhang
9b51e50374 fix(Select): trigger OnSelectedItemsChanged after clear (#6234)
* feat: trigger OnSelectedItemChanged callback

* feat: 增加 OnSelectedItemsChanged 回调逻辑

* refactor: 触发 OnSelectedItemChanged 回调

* refactor: 增加 OnSelectedItemChanged 回调方法

* test: 更新单元测试

* chore: bump version 9.7.4-beta05
2025-06-15 09:56:57 +08:00
Argo Zhang
6850f1a89b feat(Light): rename class name light to bb-light (#6232)
* refactor: 更改样式类名为 bb-light 防止冲突

* chore: bump version 9.7.4-beta04

* test: 更新单元测试
2025-06-14 18:16:35 +08:00
Argo Zhang
c926f58725 feat(Vditor): add Vditor component (#6228)
* doc: 更新示例说明文档

* doc: 增加示例文档

* test: 增加单元测试

* doc: 增加菜单

* doc: 增加源码映射

* doc: 增加方法示例

* refactor: 更新 Pre 样式

* doc: 更新 Vditor 组件示例

* chore: 增加 Vditor 依赖
2025-06-14 17:26:46 +08:00
Argo Zhang
a3f422712e doc(Pre): update Pre style (#6230) 2025-06-14 17:25:45 +08:00
Argo Zhang
98384ca8de chore(meta): update keywork for google seo (#6226) 2025-06-13 14:13:17 +08:00
Argo Zhang
6f84d88f76 feat(FlipClock): add ShowYear parameter (#6224)
* feat: 增加 ShowYear 参数

* doc: 更新示例

* test: 更新单元测试

* refactor: 重构脚本

* doc: 更新示例

* refactor: 精简代码减少依赖项
2025-06-13 13:34:38 +08:00
Argo Zhang
48289a4f4e feat(FlipClock): add ShowMonth parameter (#6222)
* feat: 增加 ShowMonth 参数

* doc: 增加示例

* test: 增加单元测试

* refactor: 更新变量名称
2025-06-13 11:48:01 +08:00
Mydashixiong
1c0abc46ab feat(FlipClock): add ShowDay parameter (#6218)
* 修改FlipClock

增加ShowDay参数

* refactor: 代码格式化

* doc: 增加 ShowDay 示例

* refactor: 精简代码

* refactor: 增加 Day 逻辑

* feat: 增加容器 overflow 样式防止溢出

* doc: 增加 ShowDay 示例

* doc: 参数文档本地化

* test: 增加单元测试

* chore: bump version 9.7.4-beta03

Co-Authored-By: Mydashixiong <136679228+Mydashixiong@users.noreply.github.com>

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-06-13 11:22:33 +08:00
Ralf Baussenwein
280219afb9 doc(Localization): update german translations (#6217)
* Update german translations

* chore: bump version 9.7.4-beta02

Co-Authored-By: Ralf Baussenwein <14016098+rabauss@users.noreply.github.com>

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-06-13 09:43:46 +08:00
Argo Zhang
c0e88780bd fix(Tab): add OrdinalIgnoreCase parameter compatible locales (#6215)
* refactor: 移除 RouteTabFactory 老代码

* fix: 增加忽略文化信息代码

* chore: bump version 9.7.3-beta01

* refactor: 提升性能
2025-06-12 08:47:51 +08:00
Argo Zhang
f120ef67ad doc(Bootstrap): remove dynamic load bootstrap doc (#6214) 2025-06-12 08:18:18 +08:00
Argo Zhang
e4203dd7a2 fix(OtpInput): should show mask char in readonly/disabled status (#6212)
* refactor: 重构 DOM 使用 input 元素

* chore: 移除 console.log 语句

* refactor: 增加只读禁用逻辑

* style: 精简样式

* refactor: 格式化逻辑

* test: 更新单元测试
2025-06-11 19:19:45 +08:00
Argo Zhang
80ef545dce fix(ErrorLogger): throw exception on wasm mode (#6210)
* fix: 修复 Wasm 下无法使用 Host 问题

* chore: bump version 9.7.3

* refactor: 注入 MockHostEnvironment 实现类

* Revert "fix: 修复 Wasm 下无法使用 Host 问题"

This reverts commit a54d3d4a55.

* feat: 增加调试环境支持

* refactor: 增加排除标签
2025-06-11 17:42:16 +08:00
Argo Zhang
d5cd54c2ce doc(IpLocator): add WebClientOptions usage documentation (#6208) 2025-06-11 14:50:18 +08:00
Argo Zhang
f94e3c0491 revert(Bootstrap): revert dynamic load bootstrap module (#6205)
* chore: 更新自动化脚本

* chore: bump version 9.7.2

* Revert "chore: 更新自动化脚本"

This reverts commit 697b1d28e3.

* chore: 更新脚本

* Revert "feat(Bootstrap): support dynamic load bootstrap javascript (#6201)"

This reverts commit 5cdf89afeb.

* revert: 撤销更改
2025-06-11 13:06:20 +08:00
Argo Zhang
a828f38b7f feat(Print): support cavas html element (#6203)
* refactor: 移除 console.log 语句

* refactor: 兼容 canvas 元素

* chore: bump version 9.7.1
2025-06-11 10:36:09 +08:00
Argo Zhang
5cdf89afeb feat(Bootstrap): support dynamic load bootstrap javascript (#6201)
* chore: 增加模块动态导入

* refactor: 移除脚本显式加载
2025-06-11 09:25:22 +08:00
Argo Zhang
75553b846c feat(Select): redesign OnBeforeSelectedItemChange logic (#6199)
* refactor: 重构 ShowSwal 逻辑

* refactor: 更改 ShowSwal 默认值
2025-06-10 15:34:58 +08:00
Argo Zhang
7ba4e74ac7 feat(BootstrapServiceBase): update exception message (#6197)
* refactor: 更新变量名称

* refactor: 变量规范化消除警告信息

* doc: 更新提示信息
2025-06-10 14:44:19 +08:00
Argo Zhang
6549430f2e doc(BootstrapBlazorRoot): update usage documentation (#6195)
* doc(Download): update download component documentation

* refactor: 增加 RootTemplate 细化 Root 组件使用方法
2025-06-10 13:20:04 +08:00
Argo Zhang
684400448c doc(Upload): update drop upload component documetation (#6193) 2025-06-09 19:03:24 +08:00
Argo Zhang
d3a9ef4188 feat(Bootstrap): bump dependence 5.3.6 (#6191)
* chore: 更新样式

* chore: 更新脚本

* chore: 移除 bundle 脚本

* refactor: 使用模块化脚本

* Revert "refactor: 使用模块化脚本"

This reverts commit 71fc38c611.

* Revert "chore: 移除 bundle 脚本"

This reverts commit b7ebfa53d1.

* chore: 删除文件
2025-06-09 18:55:58 +08:00
Argo Zhang
015b93de24 feat(Stack): rename bb_stack to bb-stack (#6189)
* refactor(Stack): 更新样式名称

* test: 更新单元测试
2025-06-09 14:59:27 +08:00
MadLongTom
f201bff143 fix(Login): update Template5 login template return button style (#6186)
* fix(template5): fix return button css style

* chore: bump version 9.7.1-beta07

---------

Co-Authored-By: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2025-06-09 13:02:20 +08:00
Argo Zhang
8738cafff4 feat(PdfViewer): add embedded parameter (#6185) 2025-06-08 15:32:21 +08:00
Argo Zhang
0ad43d2884 feat(PdfViewer): use HTTPS protocal (#6183) 2025-06-08 14:51:52 +08:00
Argo Zhang
fdbfbc8cf9 chore(Docker): update ENV lang variable (#6181) 2025-06-07 20:17:42 +08:00
Argo Zhang
a6e1b04dad feat(ImageCropper): add OnCropChangedAsync parameter (#6179)
* chore: bump version 9.0.3

* feat(ImageCropper): add OnCropChangedAsync parameter
2025-06-07 20:02:56 +08:00
Argo Zhang
9a88fa62f3 feat(ImageCropper): add Preview parameter (#6177)
* refactor: bump version 9.0.2

* doc: 增加预览功能

* doc: 增加文档
2025-06-07 12:27:08 +08:00
Argo Zhang
2e6e63ceee feat(ImageCorpper): update AspectRatio type to float (#6175)
* refactor: 增加比率参数示例

* chore: bump version 9.0.1
2025-06-06 16:25:35 +08:00
Argo Zhang
4353628cb7 fix(Select): search icon not vertical center when use BI icon theme (#6173)
* doc: 更改默认值

* refactor: 修复 bi md 图标库搜索按钮不居中问题

* chore: bump version 9.7.1-beta06
2025-06-06 15:57:33 +08:00
Argo Zhang
c507f68b5c feat(PdfViewer): add UseGoogleDocs parameter (#6170)
* chore: bump version 9.0.1

* feat: 增加 UseGoogleDocs 参数
2025-06-06 14:59:37 +08:00
Argo Zhang
16b02fe94a test(Upload): improve code coverage (#6168)
* refactor: 获得文件扩展名方法

* test: 测试单元测试

* Revert "test: 测试单元测试"

This reverts commit 83be2fa166.

* chore: 更新 codecov action 版本

* refactor: 更改可为空检查

* test: 增加 Flags 参数

* chore: 更新 action 版本

* revert: 恢复代码

* test: 更新单元测试
2025-06-06 13:30:46 +08:00
Argo Zhang
d139e8cf9c doc(PdfViewer): add OnLoaded event callback sample code (#6166) 2025-06-06 11:14:38 +08:00
XEE LEE
c3330247b3 doc(Login): add microsoft login template (#6162)
* Add transitional login page and update navigation menu

* refactor: 重构模板名称

* refactor: 精简代码

* doc: 代码格式化

* refactor: 增加移动端适配

* doc: 更新打包内容

---------

Co-Authored-By: Ethan Lee <33386249+h2ls@users.noreply.github.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2025-06-06 08:52:17 +08:00
Argo Zhang
30110267d2 feat(PdfViewer): add PdfViewer component (#6164)
* chore: 增加 PdfViewer 包

* doc: 增加 PdfViewer 示例

* chore: 增加源码映射

* doc: 增加菜单
2025-06-06 08:19:49 +08:00
Argo Zhang
406eb19923 feat(IFrame): add attributes support (#6160) 2025-06-05 13:08:27 +08:00
Argo Zhang
16cc7d49a9 feat(Upload): use local preview instead of base64 format (#6157)
* feat: 增加 readFileToBlobAsync 方法

* chore: 方法重命名

* feat: 增加 getPreviewUrl 方法

* refactor: 改用客户端预览方法

* doc: 更新头像上传示例

* refactor: 增加 CanPreviewCallback 回调方法

* refactor: 增加图片预览功能

* refactor: 增加返回值注释

* test: 更新单元测试

* chore: bump version 9.7.1-beta05
2025-06-05 12:46:08 +08:00
Argo Zhang
7e580f94cb feat(Upload): redesign upload components (#6049) 2025-06-05 10:36:09 +08:00
Argo Zhang
e8d8aca4f0 doc(Icon): reorder icon category (#6155) 2025-06-05 09:49:31 +08:00
WilliamLiu1997
c234b76292 feat(SelectTree): add CanExpandWhenDisabled parameter (#6128)
* 获取或设置当SelectTree 节点处于禁用状态时,节点是否可以展开或折叠。默认值为 false。

* test: 增加单元测试

* chore: bump version beta02

Co-Authored-By: WilliamLiu1997 <55923229+williamliu1997@users.noreply.github.com>

* chore: bump version 9.7.1-beta03

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: Admin <Admin>
Co-authored-by: Argo Zhang <argo@live.ca>
2025-06-05 01:06:01 +00:00
Argo Zhang
8b477838ee feat(IErrorLogger): support Release mode only show exception message (#6152)
* chore: 增加 Hosting 依赖

* refactor: 增加开发模式检查

* test: 更新单元测试

* refactor: 重构代码
2025-06-04 18:31:35 +08:00
Argo Zhang
4640cae828 refactor(Tab): remove ShowErrorLoggerToast parameter (#6150)
* refactor: 关闭 TabItem 的 Toast 弹窗

* refactor: 更改变量

* refactor: ShowToast 默认值更改为 false

* refactor: 移除 ShowErrorLoggerToast 参数
2025-06-04 13:20:47 +08:00
Argo Zhang
3167b47a42 feat(TabItem): Implement IHandlerException interface (#6148)
* refactor: 更改参数值

* feat: 增加 HandlerException 实现逻辑

* test: 补充单元测试

* feat: 增加全局配置参数

* test: 更新单元测试

* test: 增加 TabItemContent 单元测试
2025-06-04 11:25:44 +08:00
XEE LEE
2df033c050 feat(ImageViewer): support change zoomSpeed (#6145)
* add zoomSpeed parameter

* Add ZoomSpeed parameter and remove zoomSpeed from viewer

* update demo

* refactor: 调整格式

* refactor: 移除注释

* refactor: 更改参数为可为空

* refactor: 移除预编译

* refactor: 增加缩放率检查逻辑

* fix: 修复 keydown 事件销毁导致其他钩子失效问题

---------

Co-Authored-By: Ethan Lee <33386249+h2ls@users.noreply.github.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2025-06-04 09:19:02 +08:00
Argo Zhang
5acba45e55 feat(TabItem): add ErrorLogger support on TabItem (#6143)
* refactor: 重构 IErrorLogger 数据类型

* refactor: 增加 Tab 组件异常捕获参数

* refactor: TabItem 增加独立捕获异常能力
2025-06-03 17:32:09 +08:00
Argo Zhang
7336b9ef9f revert(IErrorLogger): revert update bool to nullable bool (#6141) 2025-06-03 17:29:15 +08:00
Argo Zhang
b63ed8adb7 feat(TabItem): support ErrorLogger catch exception (#6139)
* refactor: 重构代码

* refactor: 更改 IErrorLogger 接口

* refactor: 改造 Layout 组件

* refactor: 增强 TabItemContent 支持生命周期异常捕获

* chore: bump version 9.7.1-beta03

* wip: 临时提交

* Revert "wip: 临时提交"

This reverts commit d841341604.

* refactor: 撤销更新

* refactor: 代码格式化

* test: 撤销单元测试更改

* test: 更新单元测试

* refactor: 更新 ErrorLogger 是否开启逻辑

* refactor: 移除 IHandlerException 接口

* test: 增加单元测试
2025-06-03 14:50:54 +08:00
Argo Zhang
1f5e494b14 chore(Bootstrap): load bootstrap unbundle javascript on debug mode (#6137)
* refactor: 删除打包脚本

* chore: 更新打包脚本

* chore: 忽略打包脚本

* chore: 更新忽略文件
2025-06-03 13:34:48 +08:00
Argo Zhang
450937c59f doc(SelectGeneric): update IsEditable paraemeter sample code (#6135)
* refactor: 精简代码

* doc: 增加注释

* doc: 更新示例

* chore: bump version 9.7.1-beta03

Co-Authored-By: yswCode <56284285+yswcode@users.noreply.github.com>

---------

Co-authored-by: yswCode <56284285+yswcode@users.noreply.github.com>
2025-06-03 13:00:54 +08:00
Argo Zhang
f81d4008a8 feat(IErrorLogger): redesign parameter data type (#6132)
* refactor: 更改 IErrorLogger 接口

* refactor: 改造 Layout 组件

* test: 更新单元测试
2025-06-02 16:58:30 +08:00
Argo Zhang
6f83053df3 refactor(DynamicElement): refactor code to improve readability (#6130)
* refactor: 重构代码提高可读性

* refactor: 更新逻辑

* Revert "refactor: 更新逻辑"

This reverts commit 042c3033fa.

* Revert "refactor: 重构代码提高可读性"

This reverts commit 92bc40ddd4.

* Reapply "refactor: 重构代码提高可读性"

This reverts commit c929fbe496.
2025-06-02 14:13:35 +08:00
Argo Zhang
16731b9e58 refactor(IdComponentBase): update Id generator (#6126) 2025-06-01 19:10:32 +08:00
Argo Zhang
5fdaee0d23 feat(TabItem): add Id parameter (#6124)
* chore: bump version 9.7.1-beta02

Co-Authored-By: MusaZ <6318180+musaz@users.noreply.github.com>

* feat-tab

---------

Co-authored-by: MusaZ <6318180+musaz@users.noreply.github.com>
2025-06-01 09:48:57 +08:00
Argo Zhang
0289df5047 feat(SelectGeneric): add reset logic when TextConvertToValueCallback return null (#6123)
* feat: 增加 resetValue 方法

* refactor: 移除 tabindex 参数

* refactor: 增加输入 TextConvertToValueCallback 返回空时重置逻辑

* test: 增加单元测试

* test: 更新单元测试

---------

Co-Authored-By: j4587698 <24642446+j4587698@users.noreply.github.com>
2025-05-31 20:08:21 +08:00
John
dae37ad10c fix(BootstrapBlazorErrorBoundary): improve BuildRenderTree logic to render error or fallback content (#6114)
* fix(BootstrapBlazorErrorBoundary): improve BuildRenderTree logic to render error or fallback content (#6113)

- Only renders ChildContent when there is no exception.
- Renders custom ErrorContent if provided, otherwise renders default error content.

* test: 更新单元测试

* doc: 更新全局异常示例

* feat: 增加基类重置方法

* refactor: 消除警告信息

* chore: bump version 9.7.1-beta01

Co-Authored-By: John <1931909+flyliononline@users.noreply.github.com>

* doc: 更新文档

* refactor: 恢复模板代码

---------

Co-authored-by: Argo Zhang <argo@live.ca>
Co-authored-by: John <1931909+flyliononline@users.noreply.github.com>
2025-05-30 13:04:56 +00:00
Argo Zhang
b80e875f0a feat(Layout): integrated ErrorLogger handler global exception (#6119)
* refactor: 代码格式化

* feat: Layout 内置 ErrorLogger

* Revert "feat: Layout 内置 ErrorLogger"

This reverts commit 945c9526e2.

* doc: 更新文档

* refactor: 更新逻辑

* Reapply "feat: Layout 内置 ErrorLogger"

This reverts commit 041f6c27d1.

* test: 增加单元测试

* refactor: 增加页面生命周期报错时自定义异常处理逻辑

* test: 更新单元测试

* refactor: 增加单元测试

* test: 移除单元测试

* doc: 移除命名空间
2025-05-30 12:27:40 +08:00
Argo Zhang
c06050cd3e feat(BootstrapBlazorOptions): add ShowErrorLoggerToast parameter (#6117)
* feat: 增加 ShowErrorLoggerToast 参数

* test: 增加单元测试
2025-05-30 09:10:28 +08:00
Argo Zhang
7065ff2df1 feat(IValidateComponent): update ToggleMessage return value as Task (#6112)
* chore: bump version 9.7.0

* refactor: ToggleMessage 方法更改为 Task

# Conflicts:
#	src/BootstrapBlazor/Components/Validate/IValidateComponent.cs
#	src/BootstrapBlazor/Components/Validate/ValidateBase.cs

* refactor: 增加 await 关键字

* refactor: 更改为异步方法
2025-05-29 10:15:01 +08:00
Argo Zhang
a6167cd7cb fix(SelectGeneric): add dropdown-menu-body class (#6110)
* fix(SelectGeneric): 修复 body 丢失高度问题

* chore: bump version 9.6.5-beta03

Co-Authored-By: j4587698 <24642446+j4587698@users.noreply.github.com>

---------

Co-authored-by: j4587698 <24642446+j4587698@users.noreply.github.com>
2025-05-29 09:54:51 +08:00
Argo Zhang
a0834cda42 refactor(Validate): update dispose method (#6108) 2025-05-28 10:50:06 +08:00
Argo Zhang
4ad4ea4969 feat(Card): add HeaderPaddingY parameter (#6106)
* feat: 增加 HeaderPaddingY 参数调整 header y 轴间隙

* refactor: 代码格式化

* doc: 增加文档

* test: 增加单元测试

* test: 更新单元测试
2025-05-28 09:15:48 +08:00
Argo Zhang
a7d575b8c1 feat(MultiSelectGeneric): add MultiSelectGeneric component (#6103)
* refactor: 删除冗余样式

* feat: 增加多选泛型组件

* doc: 更新示例

* doc: 增加文档
2025-05-27 16:27:08 +08:00
Argo Zhang
89d90772f2 refactor(BootstrapInputGroupLabel): use DynamicElement unified tag (#6101)
* refactor: 精简代码

* style: 代码格式化
2025-05-27 14:43:05 +08:00
Argo Zhang
2ba3fc8e08 refactor(Fork): update custom command to local (#6099)
* refactor: 增加 ValidateForm 判断条件

* refactor: 撤销更新

* refactor: 移除自定义脚本
2025-05-27 14:07:28 +08:00
Argo Zhang
b331fc3db0 feat(MultiSelectFilter): add MultiSelectFilter component (#6097)
* refactor: 移除 bind-value event 语句

* refactor: 增加 MultiSelectFilter 组件

* test: 增加单元测试

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试
2025-05-26 20:46:38 +08:00
Argo Zhang
ac20831cd0 doc(FilterProvider): add documentation for FilterProvider (#6095) 2025-05-26 12:26:20 +08:00
Argo Zhang
5246cce79b feat(Meeting): add Meeting component (#6092)
* 添加Meet示例

* 例子中添加更多说明以及支持自定义服务器地址

* doc: 增加菜单

* chore: 增加源码映射关系

* doc: 更新示例

* chore: 更新依赖

* refactor: 精简代码

---------

Co-authored-by: jx <jx@jvxiang.com>
2025-05-25 09:51:03 +08:00
Argo Zhang
ea34fd6aec fix(Table): remove ShowExtendEditButton/ShowExtendDeleteButton check condition (#6090)
* fix: 移除 ShowExtendEditButton ShowExtendDeleteButton 判断条件

* test: 更新单元测试

* chore: bump version 9.6.5-beta02

Co-Authored-By: Mick Bao <78190214+bgycn@users.noreply.github.com>

---------

Co-authored-by: Mick Bao <78190214+bgycn@users.noreply.github.com>
2025-05-25 01:08:05 +00:00
Argo Zhang
de715633c0 chore(TableExport): bump version 9.2.5 (#6088) 2025-05-24 14:29:27 +08:00
Argo Zhang
a86514f247 fix(Layout): authorization failure in virtual directory mode (#6086)
* feat: 增加扩展方法

* fix: 修复二级虚拟目录 Layout 无法显示问题

* chore: bump version 9.6.5-beta01

Co-Authored-By: kid5791 <171754454+kid5791@users.noreply.github.com>

* chore: bump version 9.6.5-beta02

Co-Authored-By: dejan <huangyy98@outlook.com>

* test: 增加单元测试

* refactor: 更改方法名称

* test: 更新单元测试

---------

Co-authored-by: kid5791 <171754454+kid5791@users.noreply.github.com>
Co-authored-by: dejan <huangyy98@outlook.com>
2025-05-23 19:56:25 +08:00
Argo Zhang
2b7554a228 chore(UniverSheet): bump version 9.0.5 (#6085)
remove console log
2025-05-23 11:56:32 +08:00
Argo Zhang
c5be0c75cb doc(UniverSheet): update documentation remove UnSubscribe call (#6083) 2025-05-23 11:41:14 +08:00
Argo Zhang
863017cdc2 chore(Fork): update branch variable in script (#6081) 2025-05-23 10:46:54 +08:00
Argo Zhang
03e52bda1c fix(Splitting): bump version 9.0.3 (#6079) 2025-05-22 18:02:31 +08:00
Argo Zhang
36a0211e50 feat(Table): add IsAutoScrollTopWhenClickPage parameter (#6077)
* refactor: 更新键值

* feat: 增加 IsAutoScrollTopWhenClickPage 参数

* doc: 更新示例

* chore: bump vesion 9.6.4

* refactor: 更新单元测试

* refactor: 重构代码

* refactor: 合并脚本

* test: 更新单元测试
2025-05-22 14:01:58 +08:00
Argo Zhang
10a6739988 feat(ErrorLogger): do not show the exception info on DEBUG mode (#6075)
* refactor: 增加 Debug 模式逻辑

* refactor: 增加注释

* chore: bump version 9.6.4-beta06
2025-05-21 19:40:41 +08:00
Argo Zhang
04bb996cf0 doc(Select): add generic type documentation (#6072) 2025-05-21 15:48:50 +08:00
Argo Zhang
003b3ff2b4 chore(Fork): add Push All custom command (#6069) 2025-05-21 09:48:27 +08:00
Argo Zhang
de132b950c chore(Fork): add custom action script (#6065) 2025-05-20 09:14:02 +08:00
Argo Zhang
d570c8d3ab test(Localizer): update localizer test project folder path (#6062) 2025-05-20 08:57:21 +08:00
Argo Zhang
2518f86303 fix(CheckbxoList): resolve mvvm not work (#6060)
* refactor: 修复值不稳定问题

* chore: bump version 9.6.4-beta05

Co-Authored-By: coding doge <17444754+coddoge@users.noreply.github.com>

* test: 更新单元测试

---------

Co-authored-by: coding doge <17444754+coddoge@users.noreply.github.com>
2025-05-20 08:47:49 +08:00
Argo Zhang
49b1c06c29 fix(Textarea): set UseShiftEnter to true not work (#6059)
* fix(Textarea): update javascript for shift+enter key combination event

* chore: bump version 9.6.4-beta04
2025-05-19 21:00:41 +08:00
Argo Zhang
6d1860f53e fix(Watermark): multiple elements not displayed (#6058)
Co-Authored-By: BBFish <135418544+newwebfish@users.noreply.github.com>
2025-05-19 17:31:58 +08:00
Argo Zhang
97bd421323 feat(Select): add ShowSwal parameter (#6053)
* feat: 增加 ShowSwal 参数

* doc: 更新文档

* chore: bump version 9.6.4-beta03

Co-Authored-By: AApuci <44996451+AApuci@users.noreply.github.com>

* doc: 更新参数文档

* doc: 更新文档

---------

Co-authored-by: AApuci <44996451+AApuci@users.noreply.github.com>
2025-05-18 14:27:56 +08:00
Argo Zhang
521f95a814 fix(Select): shoulde keep selected item when OnBeforeSelectedItemChange return false (#6052)
* fix: 修复 OnBeforeSelectedItemChange 返回 false 后值仍改变问题

* chore: bump version 9.6.4-beta02

Co-Authored-By: AApuci <44996451+AApuci@users.noreply.github.com>

---------

Co-authored-by: AApuci <44996451+AApuci@users.noreply.github.com>
2025-05-18 13:09:16 +08:00
Argo Zhang
df129864ed doc(Reconnector): update support sdk version (#6051)
* doc: 更新重连组件文档

* refactor: 更新文档关键字
2025-05-18 12:24:12 +08:00
Argo Zhang
1b75d1cc6a chore(Action): remove stale action (#6048)
* chore: 更新 action

* chore: 更正配置

* refactor: 移除不使用的 action

* chore: 更新分支
2025-05-18 11:17:06 +08:00
Argo Zhang
cd681efd65 fix(Table): line no support SortableList (#6045)
* fix: 修复拖动导致不更新问题

* doc: 更新示例

* chore: bump version 9.6.4-beta02

* chore: bump version 9.6.4-beta02

Co-Authored-By: ChrisHsieh999 <206642680+chrishsieh999@users.noreply.github.com>

* chore: bump version 9.6.4-beta02

* chore: bump version 9.6.3-beta01

* test: 更新单元测试

---------

Co-authored-by: ChrisHsieh999 <206642680+chrishsieh999@users.noreply.github.com>
2025-05-17 20:13:24 +08:00
Argo Zhang
61769ed69e refactor(Toast): update javascript logic (#6042)
* refactor: 更新弹窗脚本

* chore: bump version 9.6.4-beta01

Co-Authored-By: Symin <syminomega@outlook.com>

---------

Co-authored-by: Symin <syminomega@outlook.com>
2025-05-17 09:50:44 +08:00
Argo Zhang
d5cbb732ec feat(Message): support async update content use same option (#6040)
* doc: 更新示例

* feat: 支持保持相同消息

* doc: 更新本地化

* refactor: 优化性能

* refactor: 完善逻辑
2025-05-16 22:13:08 +08:00
Argo Zhang
ab6c3c130e refactor(Toast): perfect AutoHide logic (#6039)
* refactor: 优化性能

* refactor: 完善逻辑
2025-05-16 22:09:32 +08:00
Argo Zhang
bd404f7f6e feat(Toast): support async update content use same option (#6037)
* doc: 重构代码

* doc: 更新参数说明文档

* refactor: 移除不使用的服务

* doc: 增加线程阻塞通知示例

* feat: 增加 Toast 更新脚本

* refactor: 代码优化

* refactor: 支持内容动态更新逻辑

* doc: 增加多语言支持

* refactor: 修复示例

* doc: 更新示例代码
2025-05-16 21:24:54 +08:00
Argo Zhang
2fec2d0037 feat(MultipleFilterBase): remove MultipleFilterBase use FilterBase (#6033)
* refactor(FilterProvider): refactoring to improve code readability

* refactor: 移除 MultipleFilterBase 基类
2025-05-16 09:02:35 +08:00
Argo Zhang
356f3b2e54 refactor(FilterProvider): refactoring to improve code readability (#6031) 2025-05-16 08:52:30 +08:00
Argo Zhang
a556aee055 feat(FilterProvider): add FilterProvider component (#6029)
* feat: 增加 FilterProvider 组件

* test: 增加单元测试

* refactor: 更改过滤器

* revert: 兼容老组件

* revert: 撤销更改结构

* doc: 更新示例

* doc: 代码格式化

* chore: bump version 9.6.3

* refactor: 重构组件

* refactor: 移除 Filter 组件
2025-05-15 12:22:11 +08:00
Argo Zhang
9abd34626c fix(NavigateToExtensions): not work NavigateTo extension method (#6026)
* fix: 修复 TabItemTextOptions 设置文本失败问题

* chore: bump version 9.6.2

Co-Authored-By: adminyr <105772658+adminyr@users.noreply.github.com>

---------

Co-authored-by: adminyr <105772658+adminyr@users.noreply.github.com>
2025-05-14 18:30:49 +08:00
Argo Zhang
44c3b45112 feat(Select): add IsAutoClearSearchTextWhenCollapsed parameter (#6024)
* refactor: 重构代码

* feat: 增加 IsAutoClearSearchTextWhenCollapsed 参数

* feat: 增加 OnCollapsed 回调方法

* test: 增加单元测试

* test: 增加单元测试

* doc: 更新文档

* doc: 更新注释文档

* doc: 增加注释

* chore: bump version 9.6.2-beta06
2025-05-14 17:20:11 +08:00
Argo Zhang
665d46f5a1 refactor(IgnoreWhenExport): update AutoGenerateColumnAttribute logic (#6023)
* refactor: 增加显示实现逻辑

* test: 增加单元测试

* test: 增加单元测试

* test: 更新单元测试
2025-05-14 14:48:16 +08:00
Argo Zhang
124f84b427 feat(TableFilter): redesign filter system (#6020)
* doc: 更新注释

* refactor: 重新设计 FilterTemplate 模板

* refactor: 移除预编译宏

* refactor: 重新设计过滤器

* refactor: 增加枚举类型过滤器

* refactor: 增加布尔类型过滤器

* refactor: 重构 Filter 结构

* refactor: 更新 TableColumnDateTimeFilter 组件

* feat: 增加 TableColumnStringFilter 组件

* feat: 增加 NumberFilter 组件

* refactor: 更新 NumberFilter 组件

* refactor: 增加 Lookup 过滤器

* chore: 移除老的过滤器

* refactor: 增加 TableColumnMultiFilter 过滤去

* refactor: 恢复组件名称

* doc: 根据最新组件设计重构自定义过滤组件

* refactor: 增加忽略检查设置

* refactor: 增加 HasFilter 扩展方法

* doc: 更新示例

* refactor: 精简代码

* refactor: 重构过滤器

* refactor: 更新扩展方法

* refactor: 精简代码

* test: 更新单元测试

* refactor: 重构代码

* refactor: 调整过滤器结构

* refactor: 重构代码

* refactor: 代码重构

* doc: 更新示例

* refactor: 增加 Count 参数

* refactor: 增加 IsHeaderRow 参数设置

* refactor: 重构 IsHeaderRow 逻辑

* refactor: 重构组件名称

* feat: 设计 Title 参数

* refactor: 重构方法名称

* revert: 撤销更改

* revert: 回复文档示例

* Revert "revert: 回复文档示例"

This reverts commit 38140b5bba.

* Revert "revert: 撤销更改"

This reverts commit bd7699de36.

* doc: 更新示例

* refactor: 移除 FieldKey 接口参数

* refactor: 更新过滤器类名

* refactor: 重构代码

* test: 增加单元测试

* test: 更新 EnumFilter 单元测试

* test: 增加 BoolFilter 单元测试

* test: 增加 EnumFilter 单元测试

* test: 增加 DateTimeFilter 单元测试

* test: 增加 NumberFilter 单元测试

* test: 增加 LookupFilter 单元测试

* test: 增加 MultiFilter 单元测试

* refactor: 精简代码

* refactor: 代码格式化

* refactor: 更改判断逻辑

* doc: 增加注释

* refactor: 增加 SearchFilterAction 单元测试

* refactor: 精简代码

* refactor: 使用 razor 文件

* refactor: 重构代码

* test: 补充单元测试

* refactor: 重构代码

* test: 增加单元测试

* refactor: 精简代码

* test: 更新单元测试

* test: 更新单元测试
2025-05-14 14:29:37 +08:00
Argo Zhang
051fdbae46 refactor(Table): update logic for IgnoreWhenExport parameter (#6018)
* revert: 撤销对可见列逻辑更改

* feat: 增加导出时过滤列逻辑

* chore: bump version 9.6.2-beta05

* refactor: 增加 GetExportColumns 扩展方法

* fix: 修复条件不正确问题

* test: 增加单元测试
2025-05-13 14:16:39 +08:00
Argo Zhang
e957946357 feat(Table): skip validate on Excel model (#6017)
* refactor: Table  Excel 模式禁止 Validate

* test: 更新单元测试

* chore: bump version 9.6.2-beta04
2025-05-12 20:07:09 +08:00
Argo Zhang
316eca5021 feat(Table): add EnableKeyboardNavigationCell parameter (#6015)
* refactor: 增加 EnableKeyboardNavigationCell 参数

* refactor: 更新脚本

* test: 更新单元测试

* chore: bump version 9.6.2-beta03

* doc: 增加导出配置文档
2025-05-11 10:22:02 +08:00
Argo Zhang
0a920d3940 feat(TableColumn): add IgnoreWhenExport parameter (#6011)
* feat: 增加 TableExportAttribute 标签类

* feat: 增加 IgnoreWhenExport 参数

* feat: 增加 IgnoreWhenExport 参数

* revert: 删除 TableExportAttribute

* refactor: 增加参数标签

* refactor: 增加参数继承逻辑

* test: 增加单元测试
2025-05-10 12:11:05 +08:00
Argo Zhang
f89a1fa933 feat(MultiFilter): add StringComparison parameter (#6010)
* feat: 增加比较参数

* doc: 更新注释

* test: 更新单元测试
2025-05-10 09:38:27 +08:00
Diego2098
d86aa37efa feat(Localizer): add GetStringFromBaseType logic support base type (#6006)
* 属性自动尝试从父类中获取json语言资源

* test: 更新单元测试

* refactor: 重构代码

* 增加单元测试

* revert: 撤销更改

* test: 更新单元测试

* refactor: 更新单元测试

* chore: bump version 9.6.2-beta02

Co-Authored-By: Diego2098 <82756760+kimdiego2098@users.noreply.github.com>

---------

Co-Authored-By: Argo Zhang <argo@live.ca>
2025-05-09 19:17:48 +08:00
Argo Zhang
cd0284c612 doc(FullScreenButton): add FullScreenOption documentation (#6005)
* refactor: 增加全屏按钮源码映射配置

* chore: 更新本地化文件

* chore: 增加全屏按钮菜单

* refactor: 更新全屏服务文档

* doc: 增加全屏按钮示例

* doc: 更新文档

* feat: 增加 Selector 支持

* doc: 增加 FullScreenOption 说明

* test: 增加单元测试
2025-05-09 15:49:12 +08:00
Argo Zhang
56b990761a fix(ErrorLogger): add custom OnErrorHandleAsync on Layout not work (#6004)
* refactor: 增加 OnErrorHandleAsync 处理逻辑

* chore: bump version 9.6.2-beta01

Co-Authored-By: Jayce Liu <129018443+kaishao628@users.noreply.github.com>

* Revert "refactor: 增加 OnErrorHandleAsync 处理逻辑"

This reverts commit 75d4f366eb.

* refactor: 增加自定义异常处理逻辑优先处理

* test: 更新单元测试

* refactor: 精简代码

---------

Co-authored-by: Jayce Liu <129018443+kaishao628@users.noreply.github.com>
2025-05-09 15:02:53 +08:00
Argo Zhang
7d3ac79855 feat(Tab): update FullScreen targetId (#5996)
* style: 更新样式

* feat: 移除全屏 Id 设置

* refactor: 更新扩展方法

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试

* chore: bump version 9.6.1

Co-Authored-By: UnicronOrigin <49175555+unicronorigin@users.noreply.github.com>

---------

Co-authored-by: UnicronOrigin <49175555+unicronorigin@users.noreply.github.com>
2025-05-08 00:26:46 -07:00
Argo Zhang
91d0f52e36 refactor(Table): rename ProhibitEdit/Delete method name (#5999)
* refactor: 更新方法名称

* test: 更新单元测试
2025-05-08 00:25:35 -07:00
AiZhen
417d198ddc feat(Table): enhances the validation logic for edit and delete operations (#5992)
* 增强编辑和删除操作的按钮状态检查

添加了对编辑按钮禁用状态的检查,确保在编辑时考虑行的可编辑性和按钮的可用性。同时,更新了删除操作的逻辑,增加了对删除按钮禁用状态的检查,以提高代码的健壮性。

* refactor: 重构代码

* test: 增加单元测试

* test: 更新单元测试

---------

Co-Authored-By: AiZhen <aizhen@aizhen.vip>
Co-Authored-By: AiZhen <53560110+AiYuZhen@users.noreply.github.com>
Co-Authored-By: Argo Zhang <argo@live.ca>
2025-05-07 22:32:23 -07:00
Argo Zhang
a92587e1bf doc(MFA): add enable 2FA sample code (#5994)
* chore: bump version 9.6.1-beta04

* test: bump version 9.6.1-beta05

* chore: test push auto

* style: 更新样式

* doc: 更新 MFA 示例

* chore: bump version 9.6.1-beta04

Co-Authored-By: ChenHan819 <58500809+chenhan819@users.noreply.github.com>

* chore: bump version 9.6.1-beta03

---------

Co-authored-by: ChenHan819 <58500809+chenhan819@users.noreply.github.com>
2025-05-08 09:55:33 +08:00
Argo Zhang
d456d8cd88 feat(DockView): bump version 9.1.13 (#5985)
* chore: bump version 9.1.13

* chore: bump version 9.6.1-beta03

Co-Authored-By: Brent-bai <71217629+brent-bai@users.noreply.github.com>

---------

Co-authored-by: Brent-bai <71217629+brent-bai@users.noreply.github.com>
2025-05-07 13:49:22 +08:00
Argo Zhang
8addd2b3a8 feat(Dialog): add Show<TComponent> extension method (#5983)
* feat: 增加 Show 泛型扩展方法

* test: 增加单元测试

* chore: bump version 9.6.1-beta03

Co-Authored-By: WarriorBlue <15247822+warriorblue@users.noreply.github.com>

* doc: 更新注释

* refactor: 更新文档

---------

Co-authored-by: WarriorBlue <15247822+warriorblue@users.noreply.github.com>
2025-05-07 11:04:29 +08:00
Argo Zhang
384fd9d0be doc(MFA): add MFA sample code (#5975)
* doc: 增加 MFA 示例

* doc: 增加菜单
2025-05-06 15:24:45 +08:00
Argo Zhang
496004b304 feat(ExportPdfButton): update AutoDownload default value to true (#5973)
* doc: 更新文档说明

* refactor: 更改 AutoDownload 参数默认值
2025-05-06 12:44:50 +08:00
Argo Zhang
e2ff294041 feat(Logout): add AvatarRadius parameter (#5969)
* feat: 增加 AvatarRadius 参数

* test: 增加单元测试

* chore: bump version 9.6.1-beta02
2025-05-05 20:26:41 +08:00
Argo Zhang
897d657256 feat(IVideoDevice): add GetData method (#5967)
* feat: 增加 GetData 方法

* refactor: 增加 getAudioData 方法

* doc: 增加下载按钮

* refactor: 更新实现逻辑

* test: 更新单元测试

* doc: 更新示例

* doc: 更新示例文档
2025-05-05 16:21:59 +08:00
Argo Zhang
b7e0afeefb feat(IVideoDevice): add GetPreviewData method (#5965)
* refactor: 代码重构消除警告信息

* feat: 增加 GetPreviewData 方法

* feat: 增加预览数据

* refactor: 增加异常保护

* doc: 增加下载示例

* refactor: 移除 async 关键字

* test: 增加单元测试

* chore: bump version 9.6.1-beta03

Co-Authored-By: pomeara <8163710+pomeara@users.noreply.github.com>

* test: 更新单元测试

* doc: 更新资源文件

---------

Co-authored-by: pomeara <8163710+pomeara@users.noreply.github.com>
2025-05-05 15:41:29 +08:00
Argo Zhang
6a3df544a3 fix(FullScreenService): sync fullscreen state with esc key event (#5961)
* style: 移除不使用的样式

* feat: 增加 fullscreenchange 状态监控

* refactor: 精简代码

* refactor: 重构样式

* doc: 更新文档

* chore: bump version 9.6.1-beta03

* chore: bump version 9.6.1-beta02

Co-Authored-By: WarriorBlue <15247822+warriorblue@users.noreply.github.com>

---------

Co-authored-by: WarriorBlue <15247822+warriorblue@users.noreply.github.com>
2025-05-04 15:31:08 +08:00
Argo Zhang
a48cdef337 feat(Tab): update css for fullscreen state (#5959)
* style: 更新样式防止溢出

* refactor: 增加全屏适配样式

* style: 增加约束

* style: 移除不使用的样式

* style: 移除不使用的样式

* style: 增加 Layout 下 Tab 全屏样式

* style: 增加 Tab 全屏样式
2025-05-04 14:48:47 +08:00
Argo Zhang
2f518f9ea5 feat(IAudioDevice): add IAudioDevice service (#5955)
* refactor: 重构代码

* feat: 增加 IAudioDevice 服务

* refactor: 增加注入服务代码

* refactor: 增加语音记录功能

* doc: 增加菜单

* doc: 增加示例代码

* refactor: 更新录音逻辑

* refactor: 更新样式

* doc: 增加源码映射文件

* refactor: 更新文档

* doc: 菜单本地化

* doc: 更新文档

* test: 增加单元测试

* refactor: 增加 type 区分音视频

* refactor: 增加资源销毁防止内存泄漏
2025-05-03 19:51:09 +08:00
Argo Zhang
9fccdadea6 feat(Table): add ToolbarTemplate parameter (#5951)
* feat: 增加 ToolbarTemplate 参数

* test: 增加单元测试

* test: 更新单元测试

* chore: bump version 9.6.1-beta01
2025-05-03 16:15:51 +08:00
Argo Zhang
f57315d69b refactor(IVideoDevice): add Apply method (#5949)
* chore: bump version 9.6.1-beta02

Co-Authored-By: SteelTeng <SteelTeng@users.noreply.github.com>

* doc: 微调样式

* feat: 增加 apply 实现方法

* doc: 更新示例

* test: 更新单元测试

---------

Co-authored-by: SteelTeng <SteelTeng@users.noreply.github.com>
2025-05-03 12:07:13 +08:00
Argo Zhang
94c27d8a27 feat(ModalDialog): add FooterContentTemplate parameter (#5947)
* feat: 增加 FooterContentTemplate 参数

* style: 增加 modal-footer-content 样式

* test: 增加单元测试

* chore: bump version 9.6.1-beta01

Co-Authored-By: FelixYe <131856535+hongfei-ye@users.noreply.github.com>

---------

Co-authored-by: FelixYe <131856535+hongfei-ye@users.noreply.github.com>
2025-05-03 10:17:32 +08:00
Argo Zhang
a6e14bd59f refactor(IVideoDevice): add bool result from open method (#5945)
* refactor: 防止重复添加

* doc: 更新示例

* doc: 更新示例

* refactor: 移除 Flip 方法

* doc: 更新示例

* test: 更新单元测试

* doc: 移除调试信息

* refactor: open 方法增加返回值

* doc: 增加打开设备逻辑

* test: 更新单元测试

* refactor: close 方法增加返回值

* doc: 更新文档

* test: 更新单元测试

* doc: 增加自动选择设备逻辑

* doc: 增加自动关闭视频逻辑

* refactor: 移除水平翻转样式

* chore: bump version 9.6.1-beta02

Co-Authored-By: ChenHan819 <58500809+chenhan819@users.noreply.github.com>

---------

Co-authored-by: ChenHan819 <58500809+chenhan819@users.noreply.github.com>
2025-05-02 18:41:05 +08:00
Argo Zhang
fde404c50a feat(IVideoDevice): add IVideoDevice service (#5940)
* refactor: 增加 IMediaDevices 服务

* doc: 更新示例

* feat: 增加 media 脚本

* feat: 增加 IMediaDeviceInfo 接口

* doc: 更新示例

* refactor: 增加 getUserMedia 方法

* feat: 增加视频功能

* doc: 增加示例

* feat: 增加 IMeidaVideo 接口服务

* doc: 更新示例

* refactor: 优化 registerBootstrapBlazorModule 方法

* feat: 增加 drawImage 方法

* refactor: 移除 GetDisplayMedia 方法

* feat: 精简代码

* doc: 更新示例

* refactor: 重构 IMediaVideo 接口

* refactor: 更新脚本

* refactor: 重构代码

* doc: 更新示例

* refactor: 更新接口

* refactor: 增加镜头翻转功能

* refactor: 更改服务名称

* feat: 更新 open close 方法实现逻辑

* doc: 更新示例

* feat: 实现 GetPreviewUrl 方法

* doc: 更新示例

* refactor: 精简代码

* refactor: 增加翻转功能

* doc: 更新示例代码

* chore: 增加源码映射文件

* doc: 增加菜单

* doc: 更改示例文档名称

* doc: 更新文档

* test: 增加单元测试

* chore: bump version 9.6.1-beta01

Co-Authored-By: Vincent <142959771+vincent8725@users.noreply.github.com>

* refactor: 撤销 Flip 方法

* doc: 撤销更改

---------

Co-authored-by: Vincent <142959771+vincent8725@users.noreply.github.com>
2025-05-02 15:36:35 +08:00
Argo Zhang
0e5d5d41b3 feat(Utility): add drawImage method (#5938)
* chore: bump version 9.6.1-beta02

Co-Authored-By: a0926019412 <4286244+a0926019412@users.noreply.github.com>

* feat: 增加 drawImage 方法

---------

Co-authored-by: a0926019412 <4286244+a0926019412@users.noreply.github.com>
2025-05-02 11:01:15 +08:00
Argo Zhang
9e542ab40b feat(Utility): improve registerBootstrapBlazorModule method (#5936)
* chore: bump version 9.6.1-beta01

Co-Authored-By: Chason <yuchen7701@foxmail.com>
Co-Authored-By: RongguoLiu <26689767+rongguoliu@users.noreply.github.com>

* refactor: 优化 registerBootstrapBlazorModule 方法

---------

Co-authored-by: Chason <yuchen7701@foxmail.com>
Co-authored-by: RongguoLiu <26689767+rongguoliu@users.noreply.github.com>
2025-05-02 10:52:59 +08:00
Argo Zhang
248f88d6e6 doc(ITotpService): update inject service document (#5934) 2025-05-01 15:10:59 +08:00
Argo Zhang
04b67ec5d3 doc(QRCode): add QRCode app sample (#5932)
* refactor: 增加二维码类型

* doc: 增加二维码生成示例

* refactor: 调整样式

* doc: 增加本地化
2025-05-01 14:58:21 +08:00
Argo Zhang
0d9f89f429 feat(Search): redesign OnClear parameter (#5929)
* refactor: 移除 RenderTemplate 提高性能

* refactor: 重构清空逻辑

* doc: 更新示例

* test: 更新单元测试

* chore: bump version 9.5.13

* chore: bump version 6.0

Co-Authored-By: zpmzuus <39509454+zpmzuus@users.noreply.github.com>

---------

Co-authored-by: zpmzuus <39509454+zpmzuus@users.noreply.github.com>
2025-04-30 15:33:59 +08:00
Argo Zhang
39d89de82d chore(DockView): bump version 9.1.12 (#5927) 2025-04-30 13:04:34 +08:00
Argo Zhang
e409080479 chore(UniverSheet): bump version 9.0.4 (#5925) 2025-04-30 08:25:46 +08:00
Argo Zhang
365ba0e92c feat(Player): add OnEvent callback (#5921) 2025-04-29 14:35:03 +08:00
Argo Zhang
f54ef5646f chore(PdfReader): support Watermark component (#5918)
* chore(PdfReader): support Watermark component

bump version 9.0.1

* chore: bump version 9.5.13-beta01

Co-Authored-By: FYY <64634852+yuban-yuban19090@users.noreply.github.com>

---------

Co-authored-by: FYY <64634852+yuban-yuban19090@users.noreply.github.com>
2025-04-29 11:38:24 +08:00
Argo Zhang
43cbd10c7c feat(LayoutSpitBar): rename LayoutSplitBar component name (#5915)
* refactor: 更正 ShowSplitBar 单词拼写错误

* refactor: 文档格式化

* refactor: 更正属性名称

* test: 更正单元测试

* refactor: 更改组件名称

* doc: 更新文档

* test: 更新单元测试

* chore: bump version 9.5.13-beta02

Co-Authored-By: top5five <10360277+top5five@users.noreply.github.com>

* doc: 更新注释文档

---------

Co-authored-by: top5five <10360277+top5five@users.noreply.github.com>
2025-04-29 10:33:50 +08:00
AiZhen
b7759e7d14 feat(ExpandableNodeCache): use RemoveWhere instead of Remove method (#5906)
* 优化节点缓存操作的比较逻辑。

* chore: bump version 9.5.13-beta01

Co-Authored-By: wzhq1997 <40653349+wzhq1997@users.noreply.github.com>

---------

Co-authored-by: AiZhen <aizhen@aizhen.vip>
Co-authored-by: Argo Zhang <argo@live.ca>
Co-authored-by: wzhq1997 <40653349+wzhq1997@users.noreply.github.com>
2025-04-28 19:01:03 +08:00
Argo Zhang
20da007573 doc(ITotpService): add sample code (#5912)
* chore: 更新解决方案依赖

* chore: 增加 Otp 服务

* chore: bump version 9.5.11

* refactor: 更新默认值

* doc: 更新示例

* chore: bump version 9.5.12

* doc: 增加本地化

* doc: 更改示例文档名称

* doc: 更新文档

* doc: 增加使用步骤

* doc: 更新文档

* refactor: 更新参数默认值
2025-04-27 16:21:32 +08:00
Argo Zhang
a5803ed8de feat(ITotpService): add ITotpService interface (#5900)
* refactor: 增加 IAuthenticatorService 接口

* doc: 增加示例

* refactor: 更改为 ITOTPService 服务

* refactor: 增加菜单

* doc: 增加源码映射

* feat: 增加 OtpInput 组件

* doc: 更新示例

* refactor: 增加空检查

* chore: 增加工程引用

* refactor: 代码格式化

* refactor: 增加模板

* refactor: 更新脚本错误

* doc: 更新样式

* Revert "refactor: 增加模板"

This reverts commit c83b2deebf.

* doc: 更新示例

* refactor: 增加样式文件扩展名

* feat: 增加 OtpInput 组件

* refactor: 增加样式文件扩展名

* refactor: 增加 Readonly 功能

* feat: 增加禁用只读功能

* doc: 增加示例

* chore: 更新字典

* feat: 增加 MaxLength 属性

* refactor: 增加脚本

* doc: 增加示例

* refactor: 更新示例

* refactor: 增加默认实现

* refactor: 增加默认服务逻辑

* chore: 更新字典

* test: 增加单元测试

* test: 增加单元测试

* chore: 更新字典

* refactor: 更新接口

* chore: bump version 9.5.11-beta04

* chore: bump version 9.5.11-beta02

Co-Authored-By: gudufy <117419+gudufy@users.noreply.github.com>

---------

Co-authored-by: gudufy <117419+gudufy@users.noreply.github.com>
2025-04-27 15:11:12 +08:00
Argo Zhang
27474e015c feat(OtpInput): add OtpInput component (#5902)
* feat: 增加 OtpInput 组件

* refactor: 增加样式文件扩展名

* refactor: 增加 Readonly 功能

* feat: 增加禁用只读功能

* feat: 增加 MaxLength 属性

* refactor: 增加脚本

* doc: 增加路由

* doc: 增加源码映射文件

* feat: 增加 OtpInput 示例

* refactor: 增加禁用样式

* doc: 更新示例

* feat: 增加 ChildContent 模板

* refactor: 增加占位符

* doc: 更新示例

* refactor: 样式变量化

* refactor: 增加脚本

* feat: 增加数字类型仅录入一个约束

* refactor: 重构组件结构

* test: 增加单元测试

* refactor: 重构组件提高性能

* test: 更新单元测试

* refactor: 增加样式

* refactor: 增加过滤条件

* refactor: 增加同步逻辑

* refactor: 支持拷贝粘贴

* refactor: 更新 selector 值

* feat: 支持粘贴自动填充功能

* feat: 增加数据双向绑定支持

* refactor: 复用代码

* chore: 更新字典

* test: 更新单元测试

* refactor: 支持表单

* doc: 增加表单示例

* test: 更新示例

* doc: 增加本地化

* doc: 增加 IsNew 标志

* refactor: 重构代码
2025-04-27 13:15:09 +08:00
Argo Zhang
6ca6d5a251 refactor(Timer): refactor prevent stuck thread (#5908)
* Revert "feat(Timer): remove Task.Run support wpf (#5896)"

This reverts commit eadd595cac.

* Reapply "feat(Timer): remove Task.Run support wpf (#5896)"

This reverts commit d93de98692.

* refactor: 优化性能

* chore: bump version 9.5.11-beta06

Co-Authored-By: wengy <8192504+wengy@users.noreply.github.com>

* test: 更新单元测试

* test: 增加单元测试

---------

Co-authored-by: wengy <8192504+wengy@users.noreply.github.com>
2025-04-27 13:03:27 +08:00
Argo Zhang
2fde567702 test(BootstrapInputGroupLabel): add ChildContent unit test (#5910) 2025-04-27 13:00:19 +08:00
Argo Zhang
df711109b9 feat(BootstrapInputGroupLabel): add ChildContent parameter (#5905)
* feat: 增加 ChildContent 模板

* test: 更新单元测试
2025-04-27 08:44:27 +08:00
Argo Zhang
54207210cb refactor(PopConfirmButton): add OnConfirm null check (#5898)
* refactor: 增加空检查

* chore: bump version 9.5.11-beta07

Co-Authored-By: lyt <wdmb123@outlook.com>

---------

Co-authored-by: lyt <wdmb123@outlook.com>
2025-04-26 13:36:35 +08:00
Argo Zhang
eadd595cac feat(Timer): remove Task.Run support wpf (#5896)
* refactor: 重构代码移除 Task.Run 代码

* chore: bump version 9.5.11-beta06

Co-Authored-By: SameulTian <48208085+samueltian666@users.noreply.github.com>

---------

Co-authored-by: SameulTian <48208085+samueltian666@users.noreply.github.com>
2025-04-26 11:38:47 +08:00
Argo Zhang
075a1c3c6c feat(SpeechWave): remove Task.Run support wpf (#5894)
* refactor: 代码重构

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试

* chore: bump version 9.5.11-beta06

Co-Authored-By: Symin <syminomega@outlook.com>

---------

Co-authored-by: Symin <syminomega@outlook.com>
2025-04-26 11:32:04 +08:00
Argo Zhang
6b39b6af38 chore(Button): remove Task.Run in event callback (#5891)
* fix(Button):修复WPF Blazor模式下Button组件IsAsync不工作

* chore: bump version beta03

Co-Authored-By: zglp <15925497+zglp@users.noreply.github.com>

---------

Co-authored-by: zglp <2499728776@qq.com>
Co-authored-by: Argo Zhang <argo@live.ca>
Co-authored-by: zglp <15925497+zglp@users.noreply.github.com>
# Conflicts:
#	src/BootstrapBlazor/BootstrapBlazor.csproj
#	src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.cs
2025-04-25 13:23:02 +08:00
Argo Zhang
9f0d084b2f feat(PopConfirmButton): support trigger OnClose event callback when click document (#5889)
* refactor: 增加事件移除代码

* feat: 增加 TriggerCloseCallback 回调方法

* refactor: 增加异常保护

* 修复 Ajax 组件 body 内容错误问题 (#5874)

* refactor: 重构代码

* chore: bump version 9.5.11-beta02

---------

Co-Authored-By: AiZhen <aizhen@aizhen.vip>
Co-Authored-By: Argo Zhang <argo@live.ca>

* refactor: 增加空检查逻辑

* perf: 提高性能

* chore: bump version 9.5.11-beta04

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试

* refactor: 使用 data-bb-close 标签 提高性能

* test: 更新单元测试

* test: 增加 OnClose 单元测试

* test: 增加 TriggerCloseCallback 方法单元测试

* chore: bump version 9.5.11-beta05

* refactor: 移除默认值

* test: 消除警告信息

---------

Co-Authored-By: AiZhen <53560110+AiYuZhen@users.noreply.github.com>
Co-authored-by: AiZhen <aizhen@aizhen.vip>
2025-04-25 12:49:32 +08:00
Argo Zhang
5687352918 feat(DockView): bump version DockView 4.2.3 (#5887) 2025-04-25 10:45:49 +08:00
Argo Zhang
8a55986a9e feat(Markdown): support default Language (#5885) 2025-04-25 10:18:39 +08:00
Argo Zhang
f745059041 revert(Button): undo Button code changes (#5882)
* fix(Button): IsAsync parameter support wpf (#5878)

* fix(Button):修复WPF Blazor模式下Button组件IsAsync不工作

* chore: bump version beta03

Co-Authored-By: zglp <15925497+zglp@users.noreply.github.com>

---------

Co-authored-by: zglp <2499728776@qq.com>
Co-authored-by: Argo Zhang <argo@live.ca>
Co-authored-by: zglp <15925497+zglp@users.noreply.github.com>

* Revert "fix(Button): IsAsync parameter support wpf (#5878)"

This reverts commit e4cbd32892.

* doc: 代码格式化

---------

Co-authored-by: zglp <zglp1024@outlook.com>
Co-authored-by: zglp <2499728776@qq.com>
Co-authored-by: zglp <15925497+zglp@users.noreply.github.com>
2025-04-25 09:53:32 +08:00
Argo Zhang
1bf774b197 chore(Ajax): update ajax body according method (#5881)
* 修复 Ajax 组件 body 内容错误问题 (#5874)

* refactor: 重构代码

* chore: bump version 9.5.11-beta02

---------

Co-Authored-By: AiZhen <aizhen@aizhen.vip>
Co-Authored-By: Argo Zhang <argo@live.ca>

* chore: bump version 9.5.11-beta03

Co-Authored-By: AiZhen <53560110+AiYuZhen@users.noreply.github.com>

---------

Co-authored-by: AiZhen <53560110+AiYuZhen@users.noreply.github.com>
Co-authored-by: AiZhen <aizhen@aizhen.vip>
2025-04-25 09:10:03 +08:00
Argo Zhang
bb4c827fd3 feat(Table): support fixed column on ResizeColumnCallback (#5873) 2025-04-24 12:25:48 +08:00
Argo Zhang
12353f5be2 test(Dialog): improve code coverage (#5872)
* test(Dialog): improve code coverage

* test: 更新单元测试
2025-04-24 12:11:08 +08:00
Argo Zhang
80c2a0fefb feat(TableExport): bump MiniExcel version to 1.41.0 (#5870)
* refactor: 精简命名空间

* chore: bump version 9.2.4
2025-04-24 12:00:43 +08:00
Argo Zhang
7567909cde feat(Dialog): add IsHidePreviousDialog parameter (#5866)
* refactor: 增加 IsKeepPreviousDialog 配置项

* feat: 增加 modal-multiple 样式

* refactor: 更改参数名称

* refactor: 更新样式

* refactor: 增加 show 参数

* chore: bump version 9.5.11-beta01
2025-04-23 19:05:48 +08:00
Argo Zhang
ad7cafc230 feat(Ajax): support form post data (#5862)
* refactor: 支持表单提交功能

* chore: bump version 9.5.10
2025-04-23 13:25:10 +08:00
Symin
358e500645 feat(Scroll): add ScrollToBottom method (#5858)
* feat(Scroll): 添加平滑滚动到底部的功能,用于聊天框和动态条目展示等

* refactor: 精简代码

* doc: 精简代码

* refactor: 移除 init 调用

* test: 增加单元测试

* test: 更新单元测试

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-04-23 08:21:07 +08:00
MadLongTom
53c934a588 feat(QueryPageOptions): support serialization (#5840)
* chore(IFilterAction): add JsonDerivedTypeAttribute to support serialization

* refactor: 增加忽略设置

* doc: 更新注释

* feat: 增加 JsonQueryPageOptionsConverter 转换器

* test: 更新单元测试

* chore: bump version 9.5.9

* revert: 撤销忽略标签

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-04-22 15:03:36 +08:00
Argo Zhang
ad698e2e8d feat(Barcode): update dependence lib (#5855) 2025-04-21 18:15:03 +08:00
Argo Zhang
03f1bae083 feat(Table): add col-line-no style on Line column (#5851)
* refactor: 增加行号样式

* refactor: 增加 col-line-no 样式

* refactor: 增加间隙
2025-04-20 08:29:47 +08:00
Argo Zhang
dccf10f420 feat(DefaultTableExport): add EnableAutoFilter property (#5849)
* chore: bump version 9.2.3

add AutoFilter property

* chore: bump version 9.1.10
2025-04-19 08:25:14 +08:00
Alex chow
06214cf678 feat(DefaultTableExport): add EnableAutoFilter/EnableAutoWidth property (#5846)
* feat(DefaultTableExport): 添加是否启用 Excel 自动筛选,是否启用 Excel 自动宽度参数 #5845

* doc: 更新注释为英文

* chore: bump version 9.5.8

* refactor: 更改参数名称

* test: 更新单元测试

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-04-17 22:32:55 +00:00
Argo Zhang
d1579e12a3 feat(Tab): add IsLoopSwitchTabItem parameter controll switch tab item behavior (#5844)
* feat: 增加 IsAutoLoopTabItem 参数

* doc: 更新文档

* chore: bump version 9.5.8-beta01

* test: 增加单元测试
2025-04-17 13:23:30 +08:00
Argo Zhang
2cc46caf5b feat(AutoFill): always filter the dropdown items by input text (#5842)
* doc: 注释更新为英语

* refactor: 选择后更新下拉框

* refactor: 调整参数

* refactor: 移除代码
2025-04-17 12:09:33 +08:00
Argo Zhang
4fce242fed refactor(AutoComplete): update blur logic (#5838)
* refactor: update blur event callback

* refactor: 更新脚本

* test: 更新单元测试

* refactor: 增加 Blur 支持

* test: 增加单元测试
2025-04-17 11:00:59 +08:00
Argo Zhang
6e64c2214c refactor(AutoComplete): revert blur event callback (#5836)
* refactor: 移除 TriggerFilter 方法

* refactor: 精简代码

* refactor: 增加 OnBlur 支持

* test: 更新单元测试
2025-04-17 09:44:41 +08:00
Argo Zhang
a22b394046 fix(Select): cannot select value again after clear by code (#5834)
* fix: 修复清空后无法再次选中问题

* chore: bump version 9.5.7
2025-04-16 04:29:52 -07:00
Argo Zhang
dbb9b8db31 refactor(AutoComplete): auto close dropdown box after press tab (#5833) 2025-04-16 04:10:08 -07:00
Argo Zhang
daf5f104d6 feat(AutoFill): consistent with AutoComplete partial refresh of drop-down box (#5831)
* refactor: 增加防抖函数

* refactor: 增加双绑

* refactor: 增加双绑

* test: 更新单元测试

* test: 更新单元测试

* chore: bump version 9.5.7-beta01

* refactor: 重构代码

* refactor: 更新局部刷新逻辑
2025-04-16 03:44:31 -07:00
celadaris
e9fc549dcf fix(AutoComplete): studder on long running OnValueChanged function call (#5819)
* fix studder

* update

formatting

* Update AutoComplete.razor.js

studder fix will be applied immediately rather than after a second or two after the component loads

* Update AutoComplete.razor.cs

Added a fix for #5821

* rollback

undo fix for #5821

* Update AutoComplete.razor.cs

re-apply fix, but use main branch as reference

* Update AutoComplete.razor.cs

accidently added duplicate GetFilterItemsByValue, oops. now its removed

* refactor: 精简代码

* Revert "doc: 更新测试用例"

This reverts commit c15ac7438f.

* doc: 更新示例

* refactor: 精简 js 逻辑

* refactor: 使用 bind 防止卡顿

* refactor: 重构 show/closee 方法

* revert: 撤销 EnterCallback 参数

* doc: 更新测试用例

* refactor: 移除不使用的代码

* test: 更新单元测试

* refactor: 移除 TriggerChange 方法

---------

Signed-off-by: celadaris <amorales13r@gmail.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2025-04-16 01:03:53 -07:00
Argo Zhang
46b08a3dc1 fix(Table): stuck search form-control when press keyup/keydown when IsExcel mode (#5826)
* refactor: 增加调用函数保护

* refactor: 增加控件搜索范围

* refactor: 更正行搜索逻辑

* chore: bump version 9.5.6
2025-04-16 09:08:55 +08:00
Argo Zhang
698666c3ad feat(Watermark): add data-bb-watermark attribute (#5825)
* refactor: 增加全局水印时移动到文档根节点逻辑

* refactor: 增加变量保护

* refactor: 完善 dispose 逻辑防止 dom 残留
2025-04-15 18:41:16 +08:00
Argo Zhang
2e2e2b9195 fix(AutoComplete): auto filter the dropdown items when Value is not null (#5823)
* refactor: 增加 Value 初始化时过滤候选项功能

* chore: bump version 9.5.6-beta05

* test: 更新单元测试
2025-04-15 16:42:29 +08:00
Argo Zhang
1c6d6ae2c0 fix(AutoComplete): tabbing off AutoComplete field does not close its drop down (#5818)
* refactor: missing ac variable

* chore: bump version 9.5.6-beta04
2025-04-14 13:37:17 +08:00
Argo Zhang
7a5c8eacbb fix(AutoComplete): missing value when click delete item (#5817)
* refactor: 增加 keyup 事件回调

* chore: bump version 9.5.6-beta03
2025-04-14 11:17:36 +08:00
Argo Zhang
0bfdef3735 fix(AutoComplete): tabbing off AutoComplete field does not close its drop down (#5816)
* refactor: use keydown event

* chore: bump version 9.56-beta02
2025-04-13 19:20:30 +08:00
Argo Zhang
a213b8463f fix(AutoComplete): missing value when click delete item (#5814)
* refactor: 精简代码

* refactor: 移除不使用的样式

* refactor: 增加注释

* refactor: 增加 DeleteCallback 方法

* refactor: 更改回调名称

* test: 更新单元测试
2025-04-12 21:04:40 +08:00
Argo Zhang
b9e91119c3 fix(Table): should show the Toast when not set BootstrapBlazorOption ToastDelay (#5810)
* wip: 临时提交

* test: 更新单元测试

* refactor: 重构代码

* refactor: 移除参数

* refactor: 重构 ToastDelay 取值逻辑

* test: 更新单元测试
2025-04-11 03:06:05 +00:00
Argo Zhang
bb45f76bb7 fix(Waterfall): throw exception when click item (#5808) 2025-04-11 02:10:49 +00:00
Argo Zhang
d88b5a2770 fix(Select): make sure show the right display text (#5806)
* refactor: 重构 DefaultVirtualizeItemText 逻辑

* test: 更新单元测试

* chore: bump version 9.5.6-beta01
2025-04-10 18:04:24 +08:00
Argo Zhang
9f4c21d02c feat(ShieldBadge): add ShieldBadge component (#5804)
* doc: 文档注释英语化

* doc: 微调代码块宽度

* doc: 增加代码文件映射

* doc: 增加菜单资源文件

* doc: 增加徽章菜单

* doc: 增加示例

* refactor: 增加组件

* refactor: 增加样式 scss 文件

* doc: 增加示例

* refactor: 调整标签宽度

* test: 增加单元测试
2025-04-10 12:55:33 +08:00
Argo Zhang
4d688cbf5e feat(DateTimeRange): add AutoClose parameter (#5802)
* feat: 增加 AutoClose 参数

* doc: 更新文档

* test: 更新单元测试

* doc: 增加 AutoClose 说明文档

* chore: bump version 9.5.5
2025-04-09 13:02:41 +08:00
Argo Zhang
6bea102ed9 feat(DateTimeRange): add ShowSelectedValue parameter (#5800)
* refactor: 使用模式语法

* refactor: 精简代码

* refactor: 代码规范

* doc: 增加24节气变量开关多语言

* feat: 增加 OnDateClick 回调方法

* doc: 增加节气开关

* doc: 增加 OnDateClick 回调方法文档

* feat: 增加 ShowSelectedValue 参数

* doc: 更新示例

* doc: 增加 ShowSelectedValue 说明

* test: 更新单元测试
2025-04-09 04:28:22 +00:00
Argo Zhang
50bc52953c feat(Slider): update style compatible with row (#5797)
* refactor: 微调 silider 样式

* chore: bump version 9.5.4
2025-04-08 12:38:14 +08:00
Argo Zhang
57d8b4f878 fix(Layout): missing route handler when url has # (#5795)
* refactor: remove comment

* refactor: 增加激活标签页空保护

* refactor: 使用 ToAbsoluteUri 防止报错
2025-04-08 12:35:00 +08:00
Argo Zhang
30ab0b345d feat(Watermark): add IsPage parameter (#5793)
* refactor: support isPage option

* feat: 支持整页面水印

* refactor: 完善判断空逻辑

* feat: 怎加 is-page 样式

* feat: 增加 IsPage 参数

* doc: 增加文档

* refactor: 增加样式

* feat: 增加报错功能

* test: 更新单元测试
2025-04-08 09:31:42 +08:00
Argo Zhang
bda6a4f119 feat(Watermark): update logic to prevent errors (#5791)
* refactor: 修复报错

* refactor: 更新 z-index 值
2025-04-07 18:22:06 +08:00
Argo Zhang
b2d9dcb324 doc(Tab): update documentation (#5789)
* refactor: 重构 Tab 组件增加 TabHeader 参数代替 Layout

* refactor: 移除 _tab 变量

* test: 更新单元测试

* test: 更新单元测试

* doc: 更新注释

* refactor: 移除全屏按钮
2025-04-06 19:04:07 +08:00
Argo Zhang
bcb968fbda feat(Tab): add TabHeader parameter (#5787)
* refactor: 重构 Tab 组件增加 TabHeader 参数代替 Layout

* refactor: 移除 _tab 变量

* test: 更新单元测试

* test: 更新单元测试
2025-04-06 16:24:49 +08:00
Argo Zhang
5d96376420 doc(Tab): add ShowTabInHeader documentation (#5785)
* doc: 增肌 ShowTabInHeader 参数说明

* doc: 增加 Tips 说明
2025-04-05 20:59:21 +08:00
Argo Zhang
d4be7a8011 feat(Tab): reduce toolbar spacing (#5782)
* refactor: 调整间隙

* refactor: 调整拐角

* refactor: 调整左间隙

* refactor: 增加左侧偏移量

* refactor: 调整不同模式左侧偏移量

* chore: bump version 9.5.3

* refactor: 兼容阿拉伯兄弟

* refactor: 调整工具按钮防止被遮挡

* refactor: 左侧间隙支持响应式

* refactor: 更新工具按钮大小

* refactor: 更新 DevUI 样式
2025-04-04 20:47:37 +08:00
Argo Zhang
ae3029fed5 fix(Table): not restore scrollbar after close drawer edit form (#5780)
* wip: 临时提交

* refactor: 增加 RenderBackdrop 方法

* refactor: 增加返回值

* refactor: 支持动画逻辑

* refactor: 修复 Table 关闭抽屉后滚动条消失问题

* refactor: 代码重构

* chore: bump version 9.5.3-beta01

* test: 补充单元测试

* refactor: 移除样式
2025-04-03 16:21:55 +08:00
Argo Zhang
eeb045d2c7 feat(IEditor): add Cols parameter (#5778)
* doc: 更新 DemoTableEditTemplate 逻辑

* feat: 增加 Cols 参数

* test: 更新单元测试

* refactor: IsCheckBoxList 公开化

* refactor: 重构自动判定列宽逻辑

* refactor: 重构代码

* test: 更新单元测试
2025-04-03 12:20:13 +08:00
Amos
c2aee77e5c fix(RibbonTab): cannot automatically shrink in float mode (#5775)
* 修复无法自动收缩问题

* refactor: 代码规范化

* fix: 提高性能

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-04-02 19:07:39 +08:00
Argo Zhang
6f3e91705d feat(Layout): add style support ShowTabInHeader parameter (#5773)
* refactor: 恢复样式

* refactor: 调整火柴棍出现逻辑

* refactor: 更新 Tab 支持 ShowTabInHeader 切换逻辑

* refactor: 更新样式

* style: 增加兼容模板的顶栏标签页样式

* chore: bump version 9.5.2
2025-04-02 17:51:07 +08:00
Argo Zhang
208d440702 refactor(Layout): improve context menu instance (#5768)
* 更新demo

* refactor: 重构右键区域菜单

* test: 更新单元测试

* refactor: 优化性能

* refactor: 重构参数减少级联参数的使用

* refactor: 增加可为空标签减少警告信息

* refactor: 模块化

* refactor: 使用私有变量

* refactor: 重构参数减少级联参数的使用

* refactor: 减少级联参数

* refactor: 使用代码完成渲染

* refactor: 调整 fix 元素

* refactor: 增加右键支持

* refactor: 更新渲染逻辑

* refactor: 更新样式

* refactor: 更新 LayoutId 获得逻辑

* refactor: 撤销样式

* Revert "更新demo"

This reverts commit 860640a29a.

# Conflicts:
#	src/BootstrapBlazor.Server/Components/Samples/Tabs.razor.cs

---------

Co-authored-by: Diego <2248356998@qq.com>
2025-04-02 14:44:45 +08:00
Argo Zhang
b0c29a62f3 feat(Tab): reduce cascade parameters (#5771)
* refactor: 重构参数减少级联参数的使用

* refactor: 减少级联参数

* refactor: 使用代码完成渲染

* refactor: 调整 fix 元素

* refactor: 增加右键支持

* refactor: 更新渲染逻辑

* refactor: 更新样式

* refactor: 更新 LayoutId 获得逻辑

* refactor: 撤销样式

* test: 更新单元测试
2025-04-02 14:39:12 +08:00
Argo Zhang
14a1b197f5 perf(ContextMenu): improve performance (#5766)
* refactor: 精简代码

* perf(ContextMenu): 提高性能

* test: 更新单元测试
2025-04-02 09:22:06 +08:00
Argo Zhang
3334599752 perf(DispatchService): improve performance (#5764) 2025-04-02 08:57:54 +08:00
Argo Zhang
33cc7ce74b feat(Layout): add ShowTabInHeader parameter (#5762)
* feat: 增加 RenderTabHeader 方法

* chore: 增加 ShowTabInHeader 方法

* feat: 实现 TabHeader 再其他地方渲染逻辑

* refactor: 精简代码逻辑

* refactor: 增加 Layout 参数用于接管 RenderTabHeader 方法

* refactor: 脚本兼容

* test: 更新单元测试
2025-04-01 18:58:07 +08:00
Argo Zhang
721f6a0fb6 doc(Chat): update chat sample (#5759) 2025-04-01 11:40:37 +08:00
Argo Zhang
552dd1d868 feat(Tab): compatible with devui style (#5757)
* refactor: 更新 tabs-item 垂直布局样式

* refactor: tab 高度使用变量

* refactor: 更新 hr 样式

* refactor: 参数变量化

* style: 重新设计 Close 按钮样式

* refactor: 更新 HeaderTemplate 示例

* refactor: 防止 Close 折行

* style: 调整变量值

* refactor: 适配紧凑模式

* chore: bump version 9.5.1
2025-04-01 10:48:03 +08:00
Argo Zhang
db4c86843d feat(UniverSheet): support Lang parameter (#5755)
* chore: 更新依赖 9.0.2

* refactor: 增加 Lang 参数

* refactor: 增加 Lang 参数设置

* refactor: 更改 WorkbookData 参数设置

* refactor: 移除 Lang 参数显示设置

* chore: 更新依赖
2025-03-31 15:06:20 +08:00
MadLongTom
590742e9c2 feat(Chat): add deepseek support (#5653)
* feat(Chat): add deepseek support

* refactor: 微调样式

* Update src/BootstrapBlazor.Server/Components/Components/MarkdownContent.razor

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: MadLongTom <36219016+MadLongTom@users.noreply.github.com>

* chore(MarkdownContent): remove duplicated method calls

* refactor: 移动 MarkdownContent 到扩展组件库中

* chore: 更新依赖组件

---------

Signed-off-by: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
Co-authored-by: Argo Zhang <argo@live.ca>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-03-31 14:27:46 +08:00
Argo Zhang
49a4da07a7 fix(ValidateForm): compatible with custom validation classes not end with Attribute (#5752)
* refactor: 重构代码提高代码可读性

* refactor: 兼容非 Attribute 结尾的验证规则

* test: 更新单元测试
2025-03-31 05:09:42 +00:00
Argo Zhang
35a751192b feat(DevUI): update btn-xs style (#5751) 2025-03-31 12:34:26 +08:00
Argo Zhang
563774db26 feat(Tab): update chrome tab style (#5749)
* refactor: 代码重构

* refactor: 微调 Tab 样式

* refactor: 更新样式

* refactor: bump version 9.5.0
2025-03-30 15:42:04 +08:00
Argo Zhang
34f1e9b372 feat(Mask): update opacity to 0.3 (#5747) 2025-03-29 17:27:46 +08:00
Argo Zhang
b0e63f8d8a chore(Action): update github action clean stale issue (#5744) 2025-03-29 10:25:31 +08:00
Argo Zhang
891895adae feat(DockView2): collapse panel to nearest edge (#5742)
bump version 9.1.9
2025-03-29 09:34:33 +08:00
Argo Zhang
10db77ba0d doc(Tab): update context menu documentation (#5741)
* doc: 更新 Tab 文档

* doc: Layout 文档更新
2025-03-28 17:28:10 +08:00
Argo Zhang
378e17b8a5 feat(Tab): add ShowContextFullScreenButton parameter (#5739)
* style: 微调 divider 间隙

* feat: 增加 ShowContextMenuFullScreen 参数

* feat: 增加 ContextMenuFullScreenIcon 参数

* feat: 增加全屏右键菜单

* revert: 更新文档

* test: 更新单元测试
2025-03-28 15:30:57 +08:00
Argo Zhang
97d9b30572 feat(Tab): add OnBeforeShowContextMenu parameter (#5737)
* refactor: 移动 Tab 右键菜单逻辑到内部

* doc: 更新示例

* refactor: 精简代码

* refactor: 代码格式化

* test: 更新单元测试

* refactor: 重构代码

* refactor: 整理代码顺序

* feat: 禁用标签页允许弹出右键菜单

* feat: 增加 OnBeforeShowContextMenu 回调方法

* doc: 更新示例

* doc: 更新说明文字

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试

* refactor: 重构代码

* test: 更新单元测试
2025-03-28 14:49:46 +08:00
Argo Zhang
3531e983a0 feat(Layout): add style for tab context menu (#5735) 2025-03-28 08:54:27 +08:00
Argo Zhang
32eb2b1bbe feat(Layout): add ShowTabContextMenu parameter (#5733)
* chore: 更新 header 描述信息

* refactor: Layout 组件增加 Tab 右键菜单

* refactor: 增加图标主题

* test: 更新单元测试
2025-03-27 19:25:30 +08:00
Argo Zhang
7ea1b4c1b3 feat(Table): add OverscanCount parameter (#5730)
* doc: 更新资源文件键值

* refactor: 更改变量可见性

* feat: 增加 OverscanCount 参数

* test: 更新单元测试

* test: 更新单元测试

* refactor: 代码格式化

* Revert "refactor: 代码格式化"

This reverts commit 35b74d6cd0.

* Revert "test: 更新单元测试"

This reverts commit f574004b7d.

* refactor: 代码格式化

* Revert "test: 更新单元测试"

This reverts commit 22d153fd49.

* Reapply "test: 更新单元测试"

This reverts commit 370c624fd3.

* Revert "refactor: 更改变量可见性"

This reverts commit 0c234b2bf2.

* refactor: 更新私有属性为私有变量
2025-03-27 17:39:37 +08:00
Argo Zhang
da29238a60 chore(editorconfig): add rule for scss (#5727) 2025-03-27 09:50:52 +08:00
Argo Zhang
e0e99e4dfb fix(Table): column list overflow when too many drop items are present (#5725)
* refactor: 代码格式化

* refactor: 增加滚动条
2025-03-27 09:49:04 +08:00
Argo Zhang
e8be200010 refactor(Table): throw exception when set IsTree to true in virtualize mode (#5723)
* refactor: 增加约束

* test: 更新单元测试
2025-03-26 18:55:20 +08:00
Argo Zhang
f99ad91b47 feat(Table): throw exception when set IsTree to true in virtualize mode (#5721)
* refactor: 更新变量名称

* refactor: 更新变量名称

* test: 更新单元测试
2025-03-26 18:31:12 +08:00
Argo Zhang
7af1d0e807 chore(Action): update action add any-of-labels config (#5720)
* refactor: 增加 any-of-labels 设置

* refactor: 更新标签
2025-03-26 12:57:15 +08:00
Argo Zhang
418263631e feat(Tab): add navigation hover style (#5718)
* chore: 更新依赖

* doc: 更新文档

* refactor: 更新服务

* chore: 移除 Baidu 语音服务

* revert: 撤销项目依赖更改

* Revert "refactor: 更新服务"

This reverts commit 5ceadcd308.

* Revert "chore: 移除 Baidu 语音服务"

This reverts commit 8fa835de4b.

* chore: 更新导出服务

* style: 调整 Chrome 模式下按钮样式

* doc: 增加等宽设置

* revert: 撤销样式更新

* refactor: 增加提示栏

* style: 更新样式

* style: 更新样式

* doc: 更新示例

* test: 更新单元测试

* refactor: 更正方法
2025-03-26 12:22:42 +08:00
Argo Zhang
4d5f9addf5 chore(Action): add auto close issue action (#5715)
* refactor: 移除不生效的 action

* chore: add new action

* chore: 更新执行周期
2025-03-25 16:27:17 +08:00
Argo Zhang
788723bf6b doc(DockView): add auto switch theme sample (#5713)
* refactor: 主题切换改为 JS 框架完成

* refactor: 重构代码

* refactor: 增加主题同步代码逻辑

* refactor: 异步支持

* refactor: 精简代码提高可读性

* refactor: 重构代码降低版本要求

* refactor: 增加 TriggerThemeChanged 事件响应

* revert: 撤销 ThemeMode 代码更改

* style: 更新 Dropdown 暗黑主题背景色

* revert: 撤销 Theme 设置

* chore: 更新依赖

* refactor: 重构代码
2025-03-25 13:24:12 +08:00
Argo Zhang
e1107ed1fc refactor(Dropdown): update dark style (#5711)
* style: 更新 Dropdown 暗黑主题背景色

* chore: bump version 9.4.12
2025-03-25 13:04:25 +08:00
Argo Zhang
2f7011ffee feat(Utility): add custom changed.bb.theme event (#5709)
* refactor: 主题切换改为 JS 框架完成

* refactor: 异步支持

* refactor: 精简代码提高可读性

* refactor: 重构代码降低版本要求
2025-03-25 12:52:03 +08:00
Argo Zhang
271311143e feat(IThemeProvider): add TriggerThemeChanged method (#5707)
* feat: 增加 TriggerThemeChanged 方法

* refactor: 实现 TriggerThemeChanged 逻辑

* test: 更新单元测试
2025-03-25 11:50:24 +08:00
Argo Zhang
8860c4bbe4 fix(DockView): theme parameter not work (#5705)
* feat: 增加 ThemeChangedAsync 回调方法

* doc: 增加样式切换逻辑

* refactor: 增加 IThemeProvider 联动

* doc: 增加描述

* refactor: 移除更新 Pre 组件主题代码提高可读性

* refactor: 增加主题联动功能

* doc: 更新 DockView 主题切换功能

* test: 更新单元测试
2025-03-24 20:19:40 +08:00
Argo Zhang
7d4606e311 feat(Layout): support TabStyle/ShowToolbar parameter (#5703)
* refactor: Layout 集成 Tab 新属性

* refactor: 微调 z-index 值

* test: 更新单元测试

* chore: bump version 9.5.0-beta15
2025-03-24 13:00:29 +08:00
Argo Zhang
ab863809ce feat(Tab): trim value/text (#5701)
* refactor: 移除空格

* doc: 更正示例
2025-03-23 15:36:13 +08:00
Argo Zhang
76d63c8b5d feat(Tab): add Refresh method (#5699)
* style: 更新样式

* refactor: 增加 Refresh 方法

* doc: 增加右键菜单刷新示例

* refactor: 重构代码

* test: 更新单元测试

* chore: bump version 9.5.0-beta13
2025-03-23 15:10:19 +08:00
Argo Zhang
d95dca4cc0 feat(Tab): support context menu (#5697)
* feat: 增加右键支持

* doc: 更新示例

* doc: 更新示例

* test: 更新单元测试

* test: 更新单元测试

* chore: bump version 9.5.0-beta12
2025-03-23 12:22:03 +08:00
Argo Zhang
b5fbcfd101 feat(Tab): add OnToolbarRefreshCallback parameter (#5696)
* feat: 增加 OnToolbarRefreshCallback 回调方法

* doc: 更新文档

* doc: 增加刷新按钮回调方法文档说明

* doc: 更新文档

* refactor: 更新  TooltipTrigger 值为 hover
2025-03-23 11:34:26 +08:00
Argo Zhang
cbcfba4611 feat(Tab): add ToolbarTemplate parameter (#5694)
* feat: 增加 ToolbarTempalte 参数

* test: 更新单元测试

* refactor: 增加 TabToolbarButton 组件

* style: 更新样式

* feat: 支持 Tooltip 功能

* doc: 更新示例

* feat: 支持 Placement 参数

* doc: 更新示例文档

* test: 更新单元测试
2025-03-23 01:08:35 +08:00
Argo Zhang
7253bc49a5 feat(Calendar): add FirstDayOfWeek parameter (#5692)
* refactor: 代码重构

* feat: 增加 FirstDayOfWeek 参数

* doc: 更新示例

* doc: 增加参数文档

* chore: bump version 9.4.11

* test: 增加单元测试
2025-03-22 20:29:13 +08:00
Argo Zhang
89e944c99c feat(Tab): add ShowToolbar parameter (#5691)
* refactor: 更新方法名称

* refactor: 更新方法名称提高可读性

* refactor: 增加样式防止溢出

* style: 更新样式

* refactor: 增加 Toolbar 功能

* doc: 更新示例

* feat: 增加刷新按钮

* doc: 更新示例

* chore: 更新 Icon 依赖包

* refactor: 更新刷新按钮图标

* feat: 实现刷新逻辑

* doc: 更新注释

* refactor: 代码重构

* refactor: 更新 TabItem Body 渲染逻辑

* refactor: 精简代码

* test: 更新单元测试

* style: 调整样式

* chore: bump version 9.5.0-beta11
2025-03-22 20:05:35 +08:00
Argo Zhang
b7ec338d38 chore(Action): add label check and auto close action (#5688) 2025-03-22 09:47:25 +08:00
Argo Zhang
593a41135f feat(Tab): improve AllowDrag function (#5684)
* refactor: 更新样式

* refactor: 精简代码统一 DOM 结构

* refactor: 更改 DOM 操作节点

* refactor: 精简代码

* refactor: 移除 active 冗余样式

* doc: 更新示例

* refactor: 更新拖动控制逻辑
2025-03-21 23:58:30 +08:00
Argo Zhang
5e0ea8f638 feat(MultiSelect): add DefaultVirtualizeItemText parameter (#5682)
* feat: 增加 DefaultVirtualizeItemText  方法

* doc: 更新示例

* test: 更新单元测试

* revert: 撤销文档更新

* doc: 更新参数注释文档

* chore: bump version 9.5.0-beta10
2025-03-21 20:22:44 +08:00
Argo Zhang
9c752c8f4f test(Select): update unit test (#5680) 2025-03-21 17:00:30 +08:00
Argo Zhang
629848264a revert(Select): add DefaultVirtualizeItemText parameter (#5678)
* 上传例子

* refactor: 增加 DefaultVirtualizeItemText 参数

* refactor: 代码重构提高可读性

* test: 增加单元测试

* test: 更新单元测试

* revert: 撤销更改

* test: 增加单元测试

* doc: 撤销更新

---------

Co-authored-by: Diego <2248356998@qq.com>
2025-03-21 16:37:35 +08:00
Argo Zhang
e90bfb6c5d test(AutoFill): update test improve code coverage (#5675)
* test: 更新单元测试

* feat(TreeView): 增加 OverscanCount 支持

* doc: 更新默认值

* chore: bump version 9.4.10

* refactor: 更新默认值判断逻辑

* refactor: 重构方法名称

* test: 更新单元测试

* doc: 文档格式化
2025-03-21 11:56:48 +08:00
Argo Zhang
e6d3a6a786 feat(TreeView): add OverscanCount parameter (#5673)
* test: 更新单元测试

* feat(TreeView): 增加 OverscanCount 支持

* doc: 更新默认值

* chore: bump version 9.4.10
2025-03-21 11:14:49 +08:00
Argo Zhang
acb3c9e2fd refactor(AutoFill): prevent jitter when mouse scrolling too fast (#5670)
* refactor: 更新示例

* refactor: 更新 dom 使用 div

* refactor: 修复 offset 失效问题

* refactor: 更新样式

* refactor: 更新样式

* refactor: 更新清空逻辑

* refactor: 增加占位符样式

* perf: 提高性能

* chore: bump version 9.5.0-beta09
2025-03-20 15:38:38 +08:00
Argo Zhang
1e1454ac2e fix(DateTimeRange): should close popup after click confirm button (#5668)
* refactor: 增加关窗逻辑

* refactor: 精简代码

* chore: bump version 9.5.0-beta08

* refactor: 修复清空按钮不关窗问题
2025-03-20 11:06:08 +08:00
Argo Zhang
4f9e787d33 feat(AutoFill): add IsVirtulize parameter (#5664)
* refactor: 重构代码消除警告信息

* doc: 文档更改为英文注释

* feat: 增加 IsVirtualize 参数

* style: 精简样式

* refactor: 增加阴影效果

* refactor: 移除 IsFixedSearch 参数

* test: 更新单元测试

* refactor: 移除 IsFixedSearch 参数

* test: 更新单元测试

* doc: 更新默认值

* refactor: 移除 IsFixedSearch 参数

* refactor: 标注已弃用

* test: 更新单元测试

* doc: 更新示例

* doc: 更新文档注释

* doc: 增加示例

* feat: 增加虚拟化功能

* refactor: 增加 CloseButtonIcon 图标参数

* refactor: 更新图标

* test: 更新单元测试

* refactor: 移除不使用的命名空间

* refactor: 微调搜索图标位置

* refactor: 增加虚拟化逻辑

* doc: 增加示例文档

* doc: 增加虚拟化参数文档

* doc: 增加参数注释文档

* feat: 增加 IsClearable 支持

* refactor: 增加样式

* doc: 更新示例

* test: 更新单元测试

* chore: bump version 9.5.0-beta06

* test: 更新单元测试

* doc: 移除 IsFixedSearch 相关文档

* test: 更新单元测试

* chore: bump version 9.5.0-beta07

* revert: 移除样式
2025-03-20 09:17:35 +08:00
Argo Zhang
c2a7708e3c doc(IsFixedSearch): remove IsFixedSearch documentation (#5666)
* refactor: 移除不使用的命名空间

* refactor: 微调搜索图标位置

* doc: 增加虚拟化参数文档

* doc: 增加参数注释文档

* refactor: 增加样式

* doc: 移除 IsFixedSearch 相关文档
2025-03-20 09:13:42 +08:00
Argo Zhang
eee71142aa feat(MultiSelect): add CloseButtonIcon parameter (#5662)
* refactor: 增加 CloseButtonIcon 图标参数

* refactor: 更新图标

* test: 更新单元测试

* chore: bump version 9.5.0-beta05
2025-03-19 16:10:56 +08:00
Argo Zhang
e71371946c refactor(Select): remove IsFixedSearch parameter (#5660)
* refactor: 移除 IsFixedSearch 参数

# Conflicts:
#	src/BootstrapBlazor/Components/Select/SelectBase.cs

* test: 更新单元测试

* doc: 更新默认值

* refactor: 移除 IsFixedSearch 参数

* refactor: 标注已弃用

* test: 更新单元测试

* doc: 更新示例

* doc: 更新文档注释
2025-03-19 15:46:49 +08:00
Argo Zhang
2c5f7e47a4 refactor(TreeView): remove IsFixedSearch parameter (#5658)
* refactor: 移除 IsFixedSearch 参数

* test: 更新单元测试
2025-03-19 15:08:50 +08:00
Argo Zhang
7921a8a112 fix(Textarea): should trigger keyboard event when set UseShiftEnter to false (#5656)
* fix(Textarea): should trigger enter keyboard event

* chore: bump version 9.5.0-beta04

Co-Authored-By: bob9307 <10083842+bob9307@users.noreply.github.com>

---------

Co-authored-by: bob9307 <10083842+bob9307@users.noreply.github.com>
2025-03-19 10:46:43 +08:00
Argo Zhang
08b8d60b0e refactor(MultiSelect): support ShowToolbar parameter when set ShowSearch to true (#5655)
* refactor: 增加检查是否显示搜索栏方法

* refactor: 工具栏调整到搜索栏下方

* style: 微调搜索栏工具栏样式

* doc: 更新默认值

* chore: 更新依赖

* chore: bump version 9.5.0-beta03

* doc: 增加参数文档注释

* test: 更新单元测试
2025-03-19 10:29:48 +08:00
Argo Zhang
366c830404 feat(MultiSelect): add IsVirtualize parameter (#5652)
* refactor: multi-select 支持虚拟滚动

* doc: 更新示例

* refactor: 增加固定搜索功能

* doc: 更新示例

* refactor: 清除缓存

* refactor: 更新数据初始化逻辑

* doc: 更新示例

* refactor: 增加 cls 样式

* style: 调整样式

* refactor: 移除重复参数

* test: 更新单元测试

* refactor: 更新 Clear 图标

* test: 更新单元测试

* test: 增加单元测试

* test: 增加单元测试

* test: 增加单元测试

* doc: 更新示例

* Revert "refactor: 更新 Clear 图标"

This reverts commit eebd3c4a76.

* feat: 增加 ClearableIcon 参数

* test: 增加单元测试

* doc: 更新文档

* doc: 更新文档注释

* style: 更新样式

* refactor: 移动方法到基类

* refactor: 重构 OnClearValue 方法

* test: 更新单元测试

* refactor: 移动到基类

* refactor: 移动 _virtualizeElement 到基类

* refactor: 移动方法到基类

* refactor: 更新虚拟滚动逻辑

* refactor: 移动 IsEditable 到基类

* doc: 增加注释

* refactor: 移动到基类

* refactor: 移动到基类

* refactor: 移动到基类

* refactor: 复用代码

* refactor: 更改为虚类

* refactor: 移除 DefaultVirtualizeItemText 参数

* test: 更新单元测试

* chore: bump version 9.5.0-beta02
2025-03-18 21:10:49 +08:00
Argo Zhang
9f1df2b11f feat(MultiSelect): redesign IsFixedSearch function (#5651)
* refactor: IsFixedSearch 移动到基类

* doc: 代码规范化

* fix: 重构固定搜索栏功能

* doc: 更新示例

* test: 更新单元测试

* refactor: 移动 DropdownMenuClassString 到基类

* refactor: 改造 SelectGeneric 组件适配 IsFixedSearch 功能

* test: 更新单元测试

* refactor: 精简代码

* doc: 更新示例
2025-03-18 12:17:21 +08:00
Argo Zhang
3a7ffe4c7c feat(TreeViewToolbarEditButton): add Icon parameter (#5647)
* feat(TreeViewToolbarEditButton): add Icon parameter

* chore: bump version 9.5.0-beta01
2025-03-17 10:35:19 +08:00
Argo Zhang
4d0f444b89 doc(Tab): update document as english (#5644)
* chore: 更新依赖包

* doc: 使用英文注释

* doc: 注释更改为英语

* doc: 注释更改为英语
2025-03-16 20:01:25 +08:00
Argo Zhang
d212ea657f feat(Tab): add Capsule style (#5642)
* feat: 增加 Capsule 模式

* doc: 更新文档

* doc: 更新示例描述文字

* test: 更新单元测试

* chore: bump version 9.4.9

* style: 精简样式
2025-03-16 19:41:30 +08:00
Argo Zhang
8518bf8fa1 feat(Tab): add TabStyle parameter (#5640)
* feat: 增加 IsChromeStyle 参数

* refactor: 调整禁用逻辑禁用后不允许 active 样式

* style: 重构样式

* refactor: 增加 tabs-chrome 样式

* refactor: 调整样式

* doc: 增加示例文档

* refactor: 增加 TabStyle 参数

* doc: 更新文档

* doc: 更新参数文档

* test: 更新单元测试

* refactor: 增加 Placement 参数限制

* doc: 更新文档

* test: 更新单元测试

* doc: 更新示例

* style: 调整样式

* style: 更新样式

* style: 更新样式

* style: 更新样式
2025-03-16 17:27:26 +08:00
Argo Zhang
ab74cb4be7 doc(Select): update documentation (#5638)
* refactor: 重构组件变量改用私有字段

* refactor: 文档注释更改英文

* chore: bump version 9.4.9-beta09

Co-Authored-By: trycatchfinnally <37445968+trycatchfinnally@users.noreply.github.com>

---------

Co-authored-by: trycatchfinnally <37445968+trycatchfinnally@users.noreply.github.com>
2025-03-16 11:17:42 +08:00
Argo Zhang
7ac44fbf69 feat(IEditorItem): add IsFixedSearchWhenSelect parameter (#5636)
* refactor: 增加 IsFixedSearchWhenSelect 参数

* doc: 文档翻译

* refactor: 增加 IsFixedSearchWhenSelect 参数支持

* test: 更新单元测试

* chore: bump version 9.4.9-beta08

Co-Authored-By: BBFish <135418544+newwebfish@users.noreply.github.com>

---------

Co-authored-by: BBFish <135418544+newwebfish@users.noreply.github.com>
2025-03-15 12:49:55 +08:00
Argo Zhang
d8336a6418 refactor(Select): redesign IsFixedSearch UI layout (#5635)
* doc: 更新参数文档

* doc: 更新文档注释

* doc: 更改为英语注释

* refactor: 重构固定搜索栏样式

* doc: 更新 IsFixedSearch 示例

* refactor: 增加 ShowSearch 条件

* test: 更新单元测试
2025-03-15 12:14:59 +08:00
trycatchfinnally
434f507f81 feat(Select): redesign IsClearable function (#5626)
* 对Select组件进行修改,设置IsClearable后,如果绑定类型可以为空,清除后清楚所有选中项而不是第一项

* 修复yige bug

* refactor: 更新可为空逻辑

* test: 更新单元测试

* doc: 更新示例

* refactor: 增加 readonly 关键字

* test: 更新单元测试

* test: 更新单元测试

* refactor: 重置 SelectedItem

* doc: 更新示例

* doc: 更新示例

* test: 增加不可为空整形设置 IsClearable 单元测试

---------

Co-authored-by: T1246 <T1246@XL>
Co-authored-by: Argo Zhang <argo@live.ca>
2025-03-15 11:07:44 +08:00
Alex chow
d32b60462f revert(Dialog): revert InvokeAsync StateHasChanged (#5632)
* 修复异步调用 StateHasChanged() 出错

* chore: bump version 9.4.9-beta07

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-03-15 10:11:53 +08:00
Argo Zhang
79fce04d91 feat(TreeView): add ShowToolbar parameter (#5628)
* doc: 文档注释更改为英文

* doc: 更新文档注释

* wip: 临时提交

* feat: 增加 TreeViewToolbar 组件

* refactor: 增加渲染逻辑

* refactor: 重构逻辑

* refactor: 增加 RenderToolbar 方法

* refactor: 代码重构

* refactor: 重构 TreeViewToolbar 组件

* fix(PopConfirmButton): 修复开启 Title 后弹窗 UI 不正常问题

* doc: 更新资源文件

* feat: 增加 TreeViewToolbar 组件

* feat: 增加 TreeViewRow 组件提高性能

* feat: 使用 TreeViewRow 组件重构

* refactor: 重构代码

* refactor: 更新逻辑

* style: 增加内置模板样式

* refactor: 更新 OnUpdateCallbackAsync 逻辑

* refactor: 更改为 ToolbarEditButton 组件

* doc: 更新示例文档

* refactor: 增加 NodeIcon ExpandNodeIcon 参数

* doc: 格式化

* refactor: 更改为属性

* refactor: 增加 OnCheckStateChanged 回调方法

* refactor: 更改逻辑判断条件

* test: 增加单元测试

* test: 增加 OnUpdateCallbackAsync 单元测试

* refactor: 判断空条件

* test: 增加单元测试

* refactor: 增加扩展方法提高代码复用

* refactor: 增加 LoadingIcon 参数设置

* doc: 更新文档

* doc: 移除不使用的参数

* doc: 代码格式化
2025-03-14 17:16:05 +08:00
Argo Zhang
ce8eecd9fd fix(PopConfirmButton): missing popup header when enable title (#5625) 2025-03-14 12:19:32 +08:00
Argo Zhang
9d9e8e1f72 doc(Introduction): update intro documentation (#5623)
* doc(Introduction): update document of Intro

* doc: 更新文档
2025-03-13 14:13:03 +08:00
Argo Zhang
2dbddb9af4 test(ModalSettings): addd unit test (#5621) 2025-03-13 14:11:41 +08:00
Argo Zhang
8178e81c71 feat(ModalSettings): add ModalSettings on BootstrapBlazorOptions (#5619)
* feat: 增加 ModalSetings 配置类

* doc: 更新文档注释

* feat: 增加 IsFade 取值逻辑

* refactor: 增加 IsFade 参数

* refactor: 更新 IsFade 逻辑

* chore: bump version 9.4.9-beta06
2025-03-13 12:53:46 +08:00
Argo Zhang
fd92ad9356 fix(Modal): add show style in multiple dialog mode (#5617)
* doc: 代码格式化

* refactor: 增加缺失样式
2025-03-13 12:21:52 +08:00
Argo Zhang
f8203158f8 feat(BootstrapLabel): add form-label-tooltip when enable ShowLabelTooltip (#5615)
* refactor: 表单内 Label 提示框增加样式 form-label-tooltip

* style: 增加自适应样式

* chore: bump version 9.4.9-beta05
2025-03-13 10:49:29 +08:00
Ethan Lee
0bab5a6b08 fix(Textarea): adding new functionality to handle Shift + Enter (#5611)
* fix(keyup): prevent modifier key combinations from triggering Enter callback

- Add `hasNoModifiers` helper to check for Ctrl/Shift/Alt/Meta keys
- Update Enter key handling in `handleKeyUp` to ignore modifier combinations
- Retain existing Escape key logic

* doc: 更改注释为英文

* doc: 更新注释为英语

* refactor: 更新逻辑

* revert: 重置代码

* refactor: 使用 js 解决问题保证效率

* doc: 移除不使用的命名空间

* chore: bump version 9.4.9-beta04

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-03-13 09:47:50 +08:00
Argo Zhang
2cf8af4856 doc(Readme): update component readme (#5608)
* doc: 更新组件 nuget readme 文档

* doc: 微调颜色
2025-03-12 11:25:08 +08:00
Argo Zhang
6b4b5ae07f doc(Readme): update content of readme (#5606)
* doc: 更新 readme 文档

* doc: 更正单词拼写错误
2025-03-12 10:30:38 +08:00
Argo Zhang
4cafa4e8fb doc(Translation): translate comments and documentation from Chinese to English (#5604)
* refactor: 文档注释更改为英语

* doc: 更新文档注释

* doc: 文档注释更改为英文

* doc: 文档注释更改为英文

* doc: 更新文档注释

* test: 更新单元测试
2025-03-12 10:28:10 +08:00
Argo Zhang
88e446f54c doc(SourceCodePath): add SourceCodePath configuration section (#5602) 2025-03-11 11:40:14 +00:00
Argo Zhang
c35a0a9573 perf(ErrorLog): improving the error handling logic (#5600)
* refactor: 优化逻辑接管后内部不再弹出 Toast

* test: 更新单元测试
2025-03-11 18:26:58 +08:00
Argo Zhang
58f8ea83d5 chore(Deploy): update deploy script (#5598) 2025-03-11 16:24:19 +08:00
Argo Zhang
809ede21b4 refactor(Modal): use BootstrapBlazorRootOutlet wrap Modal component (#5595)
* Revert "doc(Layout): remove man z-index attribute (#5540)"

This reverts commit 096dc3f7e8.

* refactor: 移除 InvokeAsync 包裹

* refactor: 支持多个 provider 逻辑

* refactor: 使用 BootstrapBlazorRootContent 更改位置

* refactor: 重构 Swal 组件

* refactor: 更新文档注释

* doc: 更新文档注释

* refactor: 增加扩展属性

* style: 增加样式防止多层弹窗导致背景色加深

* refactor(Swal): 增加 swal 样式

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试
2025-03-10 19:39:22 +08:00
Argo Zhang
950d7b4615 doc(Template): remove vsix extension documetation (#5593) 2025-03-10 19:34:22 +08:00
Argo Zhang
9dc043178d feat(Tab): display error information in a dialog (#5590)
* refactor: 增加异常对话框扩展方法

* chore: 更改为弹窗显示异常信息

* test: 更新单元测试
2025-03-10 14:25:28 +08:00
Argo Zhang
745c99f3c6 feat(Memorial): add Memorial Mode (#5584)
* style: memorial mode

* refactor: 撤销格式化

* refactor: 撤销格式化

* doc: 更改注释为英文

* feat: 增加 IsMemorialMode 参数

* style: 增加追悼样式

* doc: 更新注释

* feat: 增加 setMemorialMode 方法

* doc: 增加追悼模式实战网页

* doc: 更新文档

* doc: 移除主题菜单

* test: 增加单元测试
2025-03-09 14:38:25 +08:00
Argo Zhang
b25e6fb015 chore(Template): update pull request template (#5586) 2025-03-09 14:38:07 +08:00
Argo Zhang
e837415d92 chore(Script): downgrade script syntax (#5582)
* feat: 增加 calcCenterPosition 工具方法

* refactor: 更新样式

* chore: 更新依赖包

* refactor: 脚本降级改用 || 符号

* chore: bump version 9.4.9-beta03
2025-03-09 09:55:02 +08:00
Argo Zhang
74afda14dc refactor(ThemeMode): update view-transition style (#5580)
* feat: 增加 calcCenterPosition 工具方法

* refactor: 更新样式
2025-03-09 09:52:15 +08:00
Argo Zhang
edfdbe1aad chore(Script): downgrade script syntax (#5578)
* refactor: update ??= to ||=

* refactor: 移除 ??= 表达式

* refactor: 移除 ?. 表达式

* refactor: 精简代码

* refactor: 重构代码
2025-03-08 13:08:44 +08:00
Argo Zhang
ba03facc9b fix(Search): network delay causes input lag (#5576)
* refactor: 提炼 BootstrapBlazorRender 组件

* refactor: 适配网络卡顿

* refactor: 移除 BootstrapBlazorRender 组件使用 RenderTemplate 代替

* refactor: 代码格式化

* doc: 增加 Clear 处理逻辑

* chore: bump version 9.4.9-beta02
2025-03-08 12:39:02 +08:00
celadaris
def8f94d6c fix(AutoComplete): network delay causes input lag (#5555)
* update

After testing live, i could still see problems, less when using OnBlurAsync but it was more noticeable in OnValueChanged.

These changes address the core issue where the input text was being overwritten by stale data from older asynchronous operations. The dual approach (both C# and JavaScript checks) provides protection against race conditions. Even if one side fails, the other will catch it.

* update

switched SpinLock to SemaphoreSlim

* re-design

This should work better under bad network conditions

* refactor: 增加 DropdownMenu 组件

* refactor: 更新下拉框组件

* refactor: 重构代码封装 AutoCompleteItem 组件

* chore: bump version 9.4.9-beta01

* revert: 移除更改

* revert: 重构代码

* revert: 撤销更改

* doc: 更新注释

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-03-08 08:44:10 +08:00
Argo Zhang
1ac25d9a6c revert(ListView): remove scroll class (#5573)
* revert: 撤销 scroll 样式

* chore: bump version 9.4.8
2025-03-07 22:33:57 +08:00
Argo Zhang
fd9920eb16 fix(DateTimePicker): confirm button not work when set mode to DateTime (#5572)
* refactor: 移除 dismiss 按钮事件处理

* chore: bump version 9.4.8

* Revert "chore: bump version 9.4.8"

This reverts commit cc4340203d.
2025-03-07 20:38:12 +08:00
Argo Zhang
d44c29f01a doc(DialButton): add custom style (#5570) 2025-03-07 16:47:31 +08:00
Argo Zhang
97e83a5b1b doc(BootstrapIcon): mssing add bi-rotate-315 style (#5568)
bump version 9.0.1
2025-03-07 15:27:48 +08:00
Argo Zhang
523dadad25 doc(Icons): add click to copy to clipboard function (#5566)
* refactor: 更新基类

* doc: 更新多语言资源文件

* refactor: 更改基类名称
2025-03-07 15:19:42 +08:00
Argo Zhang
6ece18bcba doc(Icons): a comprehensive list of Icons (#5564)
* doc: 更新 Oct 图标列表

* doc: 移除样式

* chore: 更新 OctIcon 包

* doc: 增加 ant 图标列表

* doc: 增加 Element 列表

* doc: 增加 IconPark 图标列表

* doc: 增加图标列表功能

* style: 字节跳动图标大小更改为 16px

* chore: 更新图标包

* doc: 移除打包样式引用代码

* refactor: 调整目录结构

* refactor: 增加鼠标选中脚本框架

* feat: 增加拷贝逻辑
2025-03-07 14:41:40 +08:00
Argo Zhang
815207c015 chore(Template): update PR template (#5559) 2025-03-07 10:28:13 +08:00
Argo Zhang
6d8ca20f79 feat(UniverIcon): add UniverIcon component (#5557)
* doc: 增加 UniverIcon 组件

* doc: 更新本地化资源文件

* chore: 增加 UniverIcon 依赖包

* doc: 增加 UniverIcon 菜单

* doc: 增加菜单多语言支持

* chore: 更新包

* refactor: 微调样式

* refactor: 增加 IconLayout 母版页

* doc: 更新样式表路径

* test: 更新单元测试
2025-03-07 10:25:57 +08:00
Argo Zhang
dbe0b7e332 doc(Search): add ShowClearButton parameter (#5554) 2025-03-06 19:22:54 +08:00
Argo Zhang
8c86ed9f8f refactor(BootstrapBlazorRoot): support nested usage (#5552)
* refactor: 兼容 Root 多层嵌套

* test: 更新单元测试

* doc: 更新注释

* chore: bump version 9.4.7
2025-03-06 19:22:25 +08:00
Argo Zhang
d7e68cd05a doc(Editor): update jQuery script vesion to 3.6.0 (#5550) 2025-03-06 09:34:32 +00:00
Argo Zhang
82c936c097 refactor(Modal): remove dialog variable (#5549)
* refactor: 更新脚本

* refactor: 删除冗余代码

* doc: 更新示例

* chore: bump version 9.4.7-beta04
2025-03-06 16:01:05 +08:00
Argo Zhang
f93cb6fd41 refactor(Modal): add back/restoreBodyStyle function (#5544)
* refactor(Modal): keep body original style

* chore: bumpversion 9.4.7-beta03

* refactor: 重构代码
2025-03-06 06:18:37 +00:00
Argo Zhang
1381afe91e refactor(Modal): keep document original style (#5542)
* refactor(Modal): keep body original style

* chore: bumpversion 9.4.7-beta03
2025-03-06 14:08:20 +08:00
Argo Zhang
096dc3f7e8 doc(Layout): remove man z-index attribute (#5540) 2025-03-06 05:35:39 +00:00
Argo Zhang
f5ce1d0853 fix(Modal): styles remain when modal are destroyed (#5538)
* refactor: 增加 Modal 销毁时关闭弹窗逻辑

* chore: bump version 9.4.7-beta02
2025-03-06 12:55:04 +08:00
Argo Zhang
247e186bed chore(Template): add release branch support (#5534)
* chore: 增加 release 分支支持

* doc: 脚本格式化

* doc: rename bug to issue
2025-03-06 11:21:36 +08:00
celadaris
e54e37bbf8 refactor(AutoComplete): improved the TriggerChange/TriggerFilter method to update CurrentValue (#5531)
* Update AutoComplete.razor.cs

fixes the same problem I was having in issue #5110

* chore: bump version 9.4.7-beta01

* doc: update comment to english

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-03-06 08:41:35 +08:00
Argo Zhang
5ddb33daa6 fix(Table): add IsAutoInitializeModelProperty parameter control create instance logic (#5530)
* feat: 增加 IsAutoInitializeModelProperty 参数

* chore: bump version 9.4.6

* test: 增加单元测试

* refactor: 更新方法名

* test: 更新单元测试

* test: 更新单元测试

* refactor: 精简代码
2025-03-05 19:40:46 +08:00
Argo Zhang
ab8e2886b1 refactor(registerBootstrapBlazorModule): reset init field when items is empty (#5528)
* fix: 修复 id 为空后无法重新注册问题

* chore: bump version 9.4.5
2025-03-05 17:31:12 +08:00
Argo Zhang
486c0e5b86 doc(Layout): relayout z-index value (#5525) 2025-03-05 08:39:38 +00:00
Argo Zhang
858755a789 perf(IFrame): improve performance and reduce rendering time (#5522)
* feat: 优化性能减少因此数据推送

* refactor: 更改文档注释为英语

* refactor: 更新渲染逻辑

* chore: bump version 9.4.5

* chore: bump version 9.4.5-beta01
2025-03-05 14:21:00 +08:00
Argo Zhang
7223483a67 chore(Template): update pull request template (#5520) 2025-03-05 10:07:32 +08:00
Argo Zhang
39c42d403f feat(DialogOption): add IsFade parameter (#5518)
* doc: 文档注释更新为英语

* refactor: 增加 IsFade 参数

* refactor: 增加 IsFade 参数支持

* test: 更新单元测试

* test: 更新单元测试

* chore: bump version 9.4.4

* refactor: 重构代码
2025-03-05 10:05:46 +08:00
Argo Zhang
28a9d85548 refactor(UniverSheet): update version prevent throw exception when data is null (#5516) 2025-03-05 01:17:38 +00:00
Argo Zhang
9907228617 fix(Collapse): handle accordion mode by collapsing other items when one is expanded (#5514)
* refactor: Pageable 更改为 IsPagination

* feat: 支持 IsTriggerByPagination 参数

* test: 更新单元测试

* doc: 更新文档注释

* refactor: 更新 PageIndex 默认值

* test: 更新单元测试

* refactor: 更新变量名

* refactor: 代码格式化

* fix: 修复手风琴模式逻辑错误

* refactor: 精简代码提高性能

* test: 更新单元测试

* refactor: 重构代码
2025-03-04 19:37:25 +08:00
Argo Zhang
929214dd15 feat(ListView): support IsTriggerByPagination parameter (#5513)
* refactor: Pageable 更改为 IsPagination

* feat: 支持 IsTriggerByPagination 参数

* test: 更新单元测试

* doc: 更新文档注释

* refactor: 更新 PageIndex 默认值

* test: 更新单元测试
2025-03-04 15:58:03 +08:00
Argo Zhang
91eebc21c6 refactor(LayoutSplitebar): Enhanced javascript handle sidebar width is not set (#5512)
* refactor: 更新变量类型

* refactor: 删除重复组件

* refactor: 更新脚本逻辑

* refactor: 优化逻辑
2025-03-04 07:12:44 +00:00
Argo Zhang
27f8299197 doc(OnlineSheet): add OnlineSheet sample code (#5510)
* doc: 增加在线协作示例

* refactor: 增加协作者后台服务

* doc: 增加在线协作示例菜单

* chore: 更新依赖

* doc: 增加分隔栏
2025-03-04 06:48:26 +00:00
Argo Zhang
e7156e980e doc(UniverSheet): update sample code (#5502)
* doc: 增加保存按钮示例

* chore: 增加推送报表示例

* doc: 更新报表模板

* doc: 更新多语言文件

* feat: 增加保存文档示例

* refactor(Textarea): 重构代码

* refactor: 清空其他单元格

* refactor: 重构代码

* chore: 更新依赖包
2025-03-03 12:23:41 +00:00
Argo Zhang
b58502b899 refactor(Textarea): rename private property (#5504) 2025-03-03 12:17:09 +00:00
Argo Zhang
0c19d83d9e refactor(AutoComplete): redesign blur logic (#5499)
* refactor: 重构销毁方法位置

* refactor: 增加 triggerBlur 方法

* refactor: 增加 menu 点击事件
2025-03-03 13:14:10 +08:00
Argo Zhang
98115a97d7 refactor(BootstrapBlazorModule): use registerBootstrapBlazorModule refactor component (#5497)
* refactor: 重构全局脚本

* refactor: 增加销毁逻辑

* refactor: 重构脚本精简代码

* refactor: base-popover 重构代码

* refactor: registerBootstrapBlazorModule 重构精简外面代码

* refactor: 精简代码

* refactor: 精简代码

* refactor: 精简代码

* refactor: 精简代码

* refactor: 精简代码

* refactor: 精简代码

* refactor: 增加参数检查

* refactor: 精简代码
2025-03-03 12:13:59 +08:00
Argo Zhang
d3f3b378e4 refactor(DialButton): use registerBootstrapBlazorModule simplify code (#5495) 2025-03-02 06:48:15 +00:00
Argo Zhang
322a21ddaf chore(Template): insert blank line (#5493) 2025-03-02 06:36:32 +00:00
Argo Zhang
ea40445bd8 feat(ObjectExtensions): add CreateInstanceWithCascade extension method (#5491)
* refactor: 精简代码

* refactor: 使用模式重构代码

* doc: 更新注释文档

* feat: 增加 EnsureInitialized 扩展方法

* feat: 调用 EnsureInitialized 方法

* refactor: 增加扩展方法

* refactor: 兼容属性为类时未初始化问题

* refactor: 代码重构

* refactor: 更新代码

* chore: bump version 9.4.3-beta04

* refactor: 更正单词拼写
2025-03-02 14:24:29 +08:00
Argo Zhang
16eabff96b chore: upadate summary copilot position (#5489) 2025-03-02 10:45:43 +08:00
Argo Zhang
5b6fb3b81b feat(registerBootstrapBlazorModule ): add registerBootstrapBlazorModule in utility (#5487)
* refactor: 增强 deepMerge 功能

* refactor: 增加 registerBootstrapBlazorModule 方法

* refactor: 精简代码

* refactor: 增加返回值减少代码

* refactor: 精简代码

* refactor: 精简代码
2025-03-02 10:45:17 +08:00
Argo Zhang
291eb63518 fix(AutoComplete): trigger OnValueChanged when the Value changed (#5485)
* refactor: 移除不使用的变量

* refactor: 精简代码逻辑

* fix: 增加 change 销毁事件

* refactor: 增加 Value 更新逻辑

* chore: bump version 9.4.3-beta03
2025-03-02 09:49:41 +08:00
Argo Zhang
38dc157823 doc(ThemeChooser): update ThemeChooser component use BootstrapBlazorRootContent (#5484)
* doc: 使用 BootstrapBlazorRootContent 重构样式选择组件

* refactor: 更新样式选择弹窗脚本
2025-03-01 17:27:02 +00:00
Argo Zhang
90d11d3ffb feat(BootstrapBlazorOutlet): add BootstrapBlazorOutlet component (#5482)
* feat: 增加 RootOutlet/Content 组件

* feat: 增加 RootOutlet 组件

* refactor: Outlet/Content 组件

* feat: 增加 BootstrapBlazorRootRegisterService 服务

* test: 增加单元测试

* test: 增加单元测试
2025-03-02 01:21:40 +08:00
Argo Zhang
c543845cbb chore(Template): update summary title (#5478) 2025-03-01 03:16:59 +00:00
Argo Zhang
53e11b8a44 fix(AutoComplete): trigger onBlur when clicking outside (#5476)
* fix(AutoComplete): should trigger onBlur when click body

* chore: bump version 9.4.3-beta02

* perf: 优化性能

* refactor: Esc 优化性能

* refactor: 更新 blur 事件

* refactor: Search 组件更新

* refactor: 精简逻辑代码

* refactor: 移除 menu click 提高性能
2025-03-01 03:14:14 +00:00
Argo Zhang
88ca87b7e7 fix(AutoComplete): OnEnterAsync/OnEscAsync not work (#5474)
* refactor: 代码重构

* refactor: support Enter/Esc key event

* chore: bump version 9.4.3-beta01
2025-02-28 16:59:29 +00:00
Argo Zhang
51f0063b1b chore(PR): update Pull Request template (#5473)
* chore(PR): udpate pull request template

* refactor: 更新章节
2025-03-01 00:34:24 +08:00
Argo Zhang
b4c8c6872c feat(ModalDialog): add constraints between parameters (#5471)
* refactor: 增加文档注释

* feat: 增加参数约束逻辑

* test: 更新单元测试
2025-03-01 00:29:10 +08:00
Argo Zhang
8eb9f049e2 doc(WebSite): update gear button document (#5469)
* doc: update release note link

* doc: remove IsAutoClose parameter

* doc: 更新文档多语言键值

* doc: 代码格式化
2025-03-01 00:23:53 +08:00
Argo Zhang
a56d35832c feat(DialButtonItem): add ChildContent parameter (#5466)
* refactor: 更新注释文档

* feat: 增加 ChildContent 模板

* refactor: 使用拨号按钮

* test: DialButton 增加模板

* doc: 精简样式
2025-02-28 20:24:05 +08:00
Argo Zhang
8043e4e490 fix(SelectObject): should not override IsRequired method (#5464)
* fix(SelectObject): remove IsRequired override method

* chore: bump version 9.4.2
2025-02-28 07:41:27 +00:00
Argo Zhang
ac2ac31a0f feat(UniverSheet): add UniverSheet component (#5463)
* feat: 增加 UniverSheet 菜单

* doc: 增加示例组件

* doc: 增加多语言支持

* doc: 增加插件示例

* chore: 增加源码映射

* chore: 增加 UniverSheet 工程

* feat: 交互测试

* refactor: 增加测试逻辑

* refactor: 更改方法名

* refactor: 数据服务名称参数化

* refactor: 修改案例

* refactor: 更改 report 目录为 univer-sheet

* refactor: 精简代码

* refactor: 增加数据服务模块

* refactor: 更改方法名称

* chore: 更新示例

* refactor: 增加测试数据

* doc: 增加多语言资源文件

* doc: 更新推送数据示例

* doc: 更新示例

* doc: 增加多语言资源文件

* chore: 更新依赖

---------

Co-authored-by: zhaijunlei <276318515@qq.com>
2025-02-28 15:01:33 +08:00
Argo Zhang
82d4186905 test(Ajax): update ToJson default value to true (#5459)
* test: 增加单元测试

* chore: bump version 9.4.1
2025-02-27 05:45:38 +00:00
Argo Zhang
035e7ac641 fix(AjaxService): update ToJson default value to true (#5457)
* fix: 更正默认值

* chore: bump version 9.4.1-beta01
2025-02-27 11:47:48 +08:00
Argo Zhang
441532bf13 feat(PopConfirmButton): add CloseButtonIcon/ConfirmButtonIcon parameter (#5455)
* refactor: 精简代码

* refactor: 移除 dismiss 处理方法

* chore: 更新图标

* feat: 增加弹窗内按钮图标参数

* chore: 增加按钮图标参数

* test: 增加单元测试

* test: 更新单元测试

* chore: bump version 9.4.0

* chore: bump version 9.4.0
2025-02-27 00:48:48 +00:00
Argo Zhang
c174ff7df4 perf(PopConfirmButton): remove dismiss event handler to improve performance (#5453)
* refactor: 精简代码

* refactor: 移除 dismiss 处理方法

* chore: bump version 9.3.1-beta39

Co-Authored-By: 2881099 <2881099@qq.com>

---------

Co-authored-by: 2881099 <2881099@qq.com>
2025-02-27 08:24:52 +08:00
Argo Zhang
4a2f5bbd0d feat(Layout): add SidebarMinWidth/SidebarMaxWidth parameter (#5452)
* refactor: 更改参数名称

* doc: 代码格式化

* feat: 增加 SidebarMin/MaxValue 参数

* test: 更新单元测试

* doc: 更新文档

* chore: bump version 9.3.1-beta37

* refactor: 更改参数名称

* chore: bump version 9.3.1-beta38
2025-02-26 16:33:02 +08:00
Argo Zhang
32a4c0aa6c refactor(LayoutSplitebar): add min/max default value (#5448)
* style: 增加动画效果

* refactor: 更新代码

* chore: bump version 9.3.1-beta35

* feat: 支持默认值

* refactor: 支持主题样式

* refactor: 支持 Layout 收缩状态

* refactor: 增加异常保护逻辑
2025-02-26 11:56:53 +08:00
Argo Zhang
10f7564551 feat(Redirect): move redirect life cycle to init (#5446)
* refactor: 调整生命周期到 OnInitialized

* chore: bump version 9.3.1-beta36
2025-02-26 11:24:12 +08:00
Argo Zhang
6ee1243447 chore(Workflow): update feature template validation (#5450) 2025-02-26 02:49:36 +00:00
Argo Zhang
97eb165287 test(LayoutSplitebar): add unit test for LayoutSplitebar (#5443)
* refactor: 更改组件名称

* test: 增加单元测试

* refactor: 增加默认值

* doc: 更新文档示例
2025-02-25 21:09:02 +08:00
Argo Zhang
1333636005 feat(AjaxService): add ToJson parameter (#5441)
* refactor: 增加 toJson 参数

* refactor: 增加 ToJson 参数

* test: 增加单元测试

* test: 更新单元测试

* refactor: 更正单词拼写错误

* chore: bump version 9.3.1-beta34

* refactor: 精简代码
2025-02-25 19:54:31 +08:00
Argo Zhang
69179e7012 feat(LayoutSidebar): add LayoutSidebar component (#5438)
* feat: 增加 ShowSidebar 参数

控制是否显示 LayoutSidebar 组件

* feat: 增加 LayoutSidebar 组件

* doc: 更新拖动栏组件

* chore: 增加样式

* refactor: 更新参数

* refactor: 精简代码

* style: 更新样式
2025-02-24 20:58:43 +08:00
Argo Zhang
4759e19a1e doc(Select): add use enum int value as Items sample code (#5436)
* refactor: 精简代码

* feat: 兼容 Enum Value 数字情况

* chore: bump version 9.3.1-beta33

* refactor: 更正方法名称

* doc: 增加示例

* doc: 增加示例说明
2025-02-23 06:03:30 +00:00
Argo Zhang
d23c876f33 feat(Select): compatible enum value as Items (#5434)
* refactor: 精简代码

* feat: 兼容 Enum Value 数字情况

* chore: bump version 9.3.1-beta33
2025-02-23 11:30:07 +08:00
Argo Zhang
1e1ed9aff6 doc(CacheManagerOptions): add CacheManagerOptions config document (#5433)
* refactor: 重构代码

* doc: 增加 CacheManagerOptions 配置文档

* doc: 更新键值
2025-02-23 03:16:26 +00:00
Argo Zhang
81f99be781 refactor(CacheList): prevent null item cause exception (#5430)
* doc: 更正单词拼写错误

* refactor: 重构 cache-list 逻辑

* fix: 修复删除按钮

* refactor: 增加过滤条件防止空记录
2025-02-22 16:39:54 +00:00
Argo Zhang
cf9977e9c1 refactor(Html2Image): update Html2Image extension package (#5426)
* refactor: 更新配置类

* refactor: 移除 html2image 实现

* test: 更新单元测试

* test: 更新单元测试

* refactor: 更改为接口

* refactor: 更改为默认实现

* chore: 增加 Html2Image 服务

* refactor: 参数可为空

* test: 更新单元测试

* refactor: 移除 html2image 脚本

* refactor: 更新接口

* doc: 精简代码

* chore: bump version 9.3.1-beta32

Co-Authored-By: ElanCao <4487199+elancao@users.noreply.github.com>

* refactor: 更新示例代码

* chore: 更新包版本

* chore: 更新配置

* doc: 更新资源文件

* doc: 更新文档

---------

Co-authored-by: ElanCao <4487199+elancao@users.noreply.github.com>
2025-02-22 14:59:00 +00:00
Argo Zhang
0c035d2a26 revert(ListView): revert grid layout (#5424)
* Revert "feat(ListView): use grid layout instead of flex (#5409)"

This reverts commit e1a8f53677.

* refactor: 更改方法名称

* refactor: 代码复用

* refactor: 更新滚动条样式
2025-02-22 10:35:50 +00:00
Argo Zhang
f3463e560a feat(SelectTable): add QueryAsync instance method (#5422)
* feat: add QueryAsync instance method

* test: 更新单元测试

* chore: bump version 9.3.1-beta30

* chore: bump version

Co-Authored-By: NullJutsu <28599654+nulljutsu@users.noreply.github.com>

---------

Co-authored-by: NullJutsu <28599654+nulljutsu@users.noreply.github.com>
2025-02-22 11:15:56 +08:00
Argo Zhang
4065f44654 feat(IHtml2Image): add IHtml2Image service (#5421)
* feat: 增加 Html2Image 服务

* chore: 增加脚本

* chore: 增加 IHtml2Image 服务注册

* doc: 增加 Html2Image 菜单

* doc: 增加源码映射

* doc: 增加 Html2Image 示例

* doc: 更新示例

* doc: 更新资源文件

* doc: 更新标识

* doc: 增加一个友链

* doc: 增加排序
2025-02-22 10:25:48 +08:00
Argo Zhang
fabdb3f814 doc(Chart): update label of Pie chart (#5419)
* chore: bump version 9.3.1-beta28

Co-Authored-By: cervinkamichal0 <49551977+cervinkamichal0@users.noreply.github.com>

* fix: reorder color

* chore: bump version 9.3.1-beta29

---------

Co-authored-by: cervinkamichal0 <49551977+cervinkamichal0@users.noreply.github.com>
2025-02-21 06:54:29 +00:00
Argo Zhang
fd49fa0660 feat(DateTimePicker): add FirstDayOfWeek parameter (#5417)
* chore: bump version 9.3.1-beta28

Co-Authored-By: cervinkamichal0 <49551977+cervinkamichal0@users.noreply.github.com>

* feat: 增加 FirstDayOfWeek 设置

* test: 更新单元测试

---------

Co-authored-by: cervinkamichal0 <49551977+cervinkamichal0@users.noreply.github.com>
2025-02-21 14:21:19 +08:00
Argo Zhang
406eb5af68 feat(AutoGenerateColumnAttribute): remove Required parameter (#5416)
* refactor: 支持 Required 设置

* test: 更新单元测试

* refactor: 代码格式化

* refactor: 重构代码

* refactor: 屏蔽 IsRequiredWhenAdd/IsRequiredWhenEdit 设置

* test: 更新单元测试

* chore: bump version 9.3.1-beta27

Co-Authored-By: cqths <145242365+cqths@users.noreply.github.com>

---------

Co-authored-by: cqths <145242365+cqths@users.noreply.github.com>
2025-02-21 13:42:15 +08:00
Argo Zhang
1a219dc11e fix(DateTimeRange): should be reset Value after close pop-up (#5413)
* refactor: 增加 hideCallback 回调

* feat: 增加 TriggerHideCallback 回调

* test: 增加单元测试

* refactor: 移除日志输出

* refactor: 增加重置逻辑

* test: 增加单元测试

* chore: bump version 9.3.1-beta26

Co-Authored-By: Jiří Vokřínek <196328283+jvk-digres@users.noreply.github.com>

---------

Co-authored-by: Jiří Vokřínek <196328283+jvk-digres@users.noreply.github.com>
2025-02-21 10:54:56 +08:00
Argo Zhang
c45b44c9b6 refactor(WebClient): add catch exception logic (#5411)
* Revert "fix(EnableIpLocator): WebClientOptions parameter EnableIpLocator not work (#5400)"

This reverts commit e5e83f8dce.

# Conflicts:
#	src/BootstrapBlazor/BootstrapBlazor.csproj

* refactor: 增加异常处理逻辑

* refactor: 增加 JSModule 检查逻辑

* chore: bump version 9.3.1-beta25

* test: 更新单元测试
2025-02-21 08:58:21 +08:00
Argo Zhang
e1a8f53677 feat(ListView): use grid layout instead of flex (#5409)
* refactor: 复用代码

* refactor: 改用 grid 布局

* doc: 更新示例
2025-02-21 00:30:40 +00:00
Argo Zhang
02c2186349 feat(JuHeIpLocatorProvider): add JuHeIpLocatorProvider package (#5404)
* feat: 增加 enableIpLocator 参数控制

* feat: 增加禁止调用 ip.axd 逻辑

* refactor: 增加 EnableIpLocator 参数

* chore: bump version 9.3.1-beta23

* refactor: 代码重构

* refactor: 移除不使用的命名空间

* feat: 增加离线 IP 地理位置定位包

* chore: 增加 IP2Region 包引用

* doc: 更新文档

* refactor: 增加 JuHeIpLocatorOptions 配置类

* refactor: 重构逻辑

* chore: 移除 JuHeIpLocatorProvider

* test: 更新单元测试

* refactor: 移除注入服务代码

* chore: bump version 9.3.1-beta24

* chore: 增加 BootstrapBlazor.JuHeIpLocatorProvider 包依赖

* doc: 更新文档

* test: 更新单元测试

* feat: 增加 Keyed 服务

* test: 增加单元测试
2025-02-20 13:17:09 +08:00
Argo Zhang
75897ade4d feat(IP2Region): add IP2Region package (#5402)
* feat: 增加 enableIpLocator 参数控制

* feat: 增加禁止调用 ip.axd 逻辑

* refactor: 增加 EnableIpLocator 参数

* chore: bump version 9.3.1-beta23

* refactor: 代码重构

* refactor: 移除不使用的命名空间

* feat: 增加离线 IP 地理位置定位包

* chore: 增加 IP2Region 包引用

* doc: 更新文档
2025-02-20 12:54:07 +08:00
Argo Zhang
e5e83f8dce fix(EnableIpLocator): WebClientOptions parameter EnableIpLocator not work (#5400)
* feat: 增加 enableIpLocator 参数控制

* feat: 增加禁止调用 ip.axd 逻辑

* refactor: 增加 EnableIpLocator 参数

* chore: bump version 9.3.1-beta23
2025-02-19 18:44:05 +08:00
Argo Zhang
ce828de3ee doc(Drawer): add ZIndex parameter documentation (#5398)
* doc: 更新弹窗布局说明

* doc: 更新文档

* doc: 增加 ZIndex 参数说明

* doc: 增加 ZIndex 参数文档
2025-02-19 10:04:05 +00:00
Argo Zhang
2a050a15de feat(Drawer): add ZIndex parameter (#5396)
* chore: bump version 9.3.1-beta22

* test: 增加单元测试

* feat: 增加 ZIndex 参数

* refactor: 增加 ZIndex 参数传递逻辑

* feat: 增加 ZIndex 样式

* test: 增加单元测试
2025-02-19 13:52:33 +08:00
Argo Zhang
49adb87297 feat(Tab): add BeforeNavigatorTemplate/AfterNavigatorTemplate parameter (#5394)
* feat: 增加前后模板

* chore: bump version 9.3.1-beta21

* test: 增加单元测试
2025-02-19 10:16:10 +08:00
Argo Zhang
4706145cbd feat(Tab): update style compatible with new feature (#5392)
* feat: 增加 UseCache 参数

* refactor: 显示控制逻辑

* refactor: 重构代码

* test: 增加单元测试

* refactor: 更新样式使用 flex 布局

* refactor: 更新脚本
2025-02-18 16:07:21 +08:00
Argo Zhang
ce031e4b89 feat(DataTableDynamicContext): add UseCache parameter (#5389)
* feat: 增加 UseCache 参数

* refactor: 显示控制逻辑

* refactor: 重构代码

* test: 增加单元测试
2025-02-18 15:57:58 +08:00
Argo Zhang
2b1ab851a3 feat(Tab): add ShowActiveBar parameter (#5388)
* feat(Tab): add ShowActiveBar parameter

* test: 增加单元测试

* doc: 更新注释

* doc: 增加新参数说明文档
2025-02-18 11:56:59 +08:00
Argo Zhang
e339197197 feat(Tab): add ShowNavigatorButtons parameter (#5386)
* chore: 更新项目格式

* feat(Tab): add ShowNavigatorButtons parameter

* test: 增加单元测试
2025-02-18 11:41:20 +08:00
Argo Zhang
8417ac541d feat(TableExport): bump version 9.2.1 (#5382)
* chore: bump version 9.2.1

* doc: 更正文档
2025-02-17 13:49:56 +08:00
Argo Zhang
e9f89e8a8e doc(BootstrapLabel): add document for LabelWidth parameter (#5380)
* doc: 增加 LabelWidth 相关说明文档

* doc: 增加本地化资源文件
2025-02-17 05:20:56 +00:00
Argo Zhang
9f3214b9bd feat(ContextMenuDivider): add ContextMenuDivider component (#5379)
* feat: 增加 IContextMenuItem 接口用于规范化右键菜单组件

* refactor: ContextMenuItem 集成 IContextMenuItem 接口

* feat: 增加 ContextMenuDivider 组件

* refactor: 增加只读关键字消除提示信息

* refactor: 更改参数类型为接口

* refactor: 根据接口更新逻辑

* feat: 增加其他组件兼容逻辑

* refactor: 移除其他组件支持逻辑

* test: 增加单元测试

* chore: bump version 9.3.1-beta19
2025-02-17 10:30:27 +08:00
Argo Zhang
19f6dfe291 feat(Step): Prev Next function return step index (#5376)
* doc: 更新注释文档

* refactor: 向前一步方法返回当前步骤索引值

* feat: 向后一步方法返回当前步骤索引值
2025-02-16 10:47:11 +00:00
Argo Zhang
459ea17f40 doc(Dropdown): add sample code for ItemTemplate (#5374)
* refactor: 增强 ItemTemplate 模板

* style: 增加 tooltip 兼容样式

* doc: 增加 ItemTemplate 示例

* doc: 更新示例本地化资源文件

* chore: bump version 9.3.1-beta18

* refactor: 重构代码
2025-02-15 23:25:39 +08:00
Argo Zhang
8a5e79cdc2 feat(ButtonUpload): add FileCount parameter (#5371)
* doc: 更新注释

* feat: 增加 FileCount 参数

* feat: 增加 FileCount 参数逻辑

* test: 更新单元测试
2025-02-15 18:45:41 +08:00
Argo Zhang
9962e19e09 refactor(TreeView): redesign UI for ShowSearch function (#5369)
* refactor: 更改滚动条位置

* refactor: 更改布局

* doc: 更新示例代码

* refactor: 移除背景色设置

* chore: bump version 9.3.1-beta17

* test: 更新单元测试
2025-02-15 18:04:03 +08:00
Argo Zhang
8f92817025 doc(RadioList): add sample code for AutoSelectFirstWhenValueIsNull (#5367)
* doc: 更新 RadioList 示例

* doc: 更新资源文件
2025-02-15 05:40:55 +00:00
Argo Zhang
6616a6f342 feat(MaskService): add Selector parameter (#5361)
* feat: 增加 Selector 参数支持样式选择

* feat: 更新 JavaScript 交互

* feat: 支持 Selector 参数

* test: 更新单元测试
2025-02-14 16:40:28 +08:00
Argo Zhang
56e3600a2f feat(TextArea): support OnEnteryAsync/OnEscAsync parameter (#5357)
* feat: add javascript invoke function

* doc: 增加示例文档
2025-02-13 18:52:41 +08:00
Argo Zhang
07a3944a52 chore(Tools): update maintenance tools (#5355)
* chore: remove wasm tools

* chore: remove windows tools

* chore: remove git tools

* chore: update ba blazor service app desc

* chore: add pack watch delete tools

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 15:15:59 +08:00
Argo Zhang
a0fc459128 feat(TextArea): add UseShiftEnter parameter (#5351)
* feat: 增加 OnKeyUpAsync 参数

* refactor: 精简代码

* refactor: 重构代码

* doc: 更新示例

* refactor: 移除不需要的 OnKeyDownAsync 回调

* doc: 更新示例文档

* doc: 增加参数说明文档

* doc: 精简代码

* test: 更新单元测试

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 14:20:38 +08:00
Argo Zhang
7b78b81961 feat(TreeView): add keep toggle/check state function (#5353)
* doc: 更新文档

* chore: bump version 9.3.1-beta12

* fix: 修复重置数据源导致 UI 不刷新问题

* feat: 更新有子集判断条件

* test: 更新单元测试

* refactor: 增加滚动逻辑

* feat: 实现客户端滚动支持

* chore: bump version 9.3.1-beta13

* chore: bump version 9.3.1-beta16

* feat: 增加渲染干预机制

* refactor: 撤销滚动逻辑

* revert: 撤销滚动参数更改
2025-02-13 12:29:11 +08:00
Argo Zhang
9ee6ea5b2a feat(IFrame): add OnReadyAsync callback (#5350)
* chore: bump version 9.3.1-beta11

* refactor: 更改回调函数名称

* feat: 增加 TriggerLoaded 回调方法

* feat: 更新加载逻辑
2025-02-12 09:14:57 +08:00
Argo Zhang
b2c410a7ae refactor(Array): remove prototype extension (#5348)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
2025-02-12 00:49:33 +00:00
Argo Zhang
1b2f322cbc test(Table): add complex bind unit test (#5346) 2025-02-11 05:44:20 +00:00
Argo Zhang
97fb12c53d fix(Table): ScrollWidth parameter not work (#5344)
* refactor: 更新 GetScrollStyleString 方法

* doc: 更新示例
2025-02-11 13:02:04 +08:00
Argo Zhang
8341d810a3 fix(Scroll): hover scroll width variable not work (#5342)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-11 13:00:25 +08:00
Argo Zhang
92091df423 fix(Table): ToastDelay use global setting (#5340) 2025-02-11 12:20:07 +08:00
Argo Zhang
ddca0bf33b doc(Toast): update sample code show the delay time (#5338)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-11 11:58:10 +08:00
Argo Zhang
c86c885a44 chore(Editor): use addLink load asset (#5335)
bump version 9.0.3
2025-02-10 11:46:42 +00:00
Argo Zhang
c84b2a20e6 chore(Splitting): use addLink load asset (#5334)
bump version 9.0.2
2025-02-10 11:42:50 +00:00
Argo Zhang
74b18fe7c2 chore(VideoPlayer): use addLink load asset (#5333) 2025-02-10 19:16:38 +08:00
Argo Zhang
d0a4a2e829 refactor(Button): remove ButtonIcon property (#5328)
* refactor: 精简代码逻辑提高可读性

* refactor: 重构代码消除警告信息

* refactor: 重构代码精简代码
2025-02-09 14:16:26 +08:00
Argo Zhang
e3434f1c71 chore(SvgEditor): bump version 9.0.3 (#5326)
use addLink instead of HeadContent

---------

Co-Authored-By: caics <caics.china@gmail.com>
2025-02-09 02:35:18 +00:00
Argo Zhang
1c4bc582f2 feat(Dropdown): add IsAsync parameter (#5324)
* refactor: update html element tag name

* test: 更新单元测试

* doc: 更新参数注释

* feat(Dropdown): add IsAsync parameter

* refactor: 精简代码

提高代码可读性

* refactor: 代码重构

* feat: 实现 IsAsync 逻辑

* doc: 增加 IsAsync 文档

* feat: 分离按钮支持默认颜色

* feat: 异步图标显示逻辑

* refactor: 增加 span 包裹元素

* doc: 增加文档

* feat: 增加图标赋值逻辑

* refactor: 使用父类服务

* test: 增加单元测试

* chore: bump version 9.3.1-beta10

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
2025-02-09 01:42:23 +08:00
Argo Zhang
0f7be01500 test(Dropdown): add unit test improve code coverage (#5323)
* refactor: update html element tag name

* test: 更新单元测试

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-09 00:18:24 +08:00
Argo Zhang
c19f3ab0d3 feat(Dropdown): add OnClick event callback (#5319)
* feat: 增加 OnClick 回调方法

* feat: 增加 OnClickWithoutRender 回调方法

* feat: 增加点击事件委托方法实现

* feat: 更改为 DynamicElement 组件

* doc: 更新文档示例

* doc: 更新文档
2025-02-08 23:59:28 +08:00
Argo Zhang
49454b1636 feat(Tooltip): add hackTooltip function prevent javascript exception (#5318)
* refactor: 重构代码

* fix: 修复报错问题

* feat: 增加 hackTooltip 防止 bs 脚本报错

* chore: bump version 9.3.1-beta09
2025-02-07 20:11:47 +08:00
Argo Zhang
c5beff04e1 doc(CacheList): rename CacheExpiration component (#5314)
* refactor: 组件重命名

* doc: 更新组件名称
2025-02-06 21:39:49 +08:00
Argo Zhang
0c204c4c8c feat(Drawer): add BodyScroll parameter (#5311)
* feat: 增加 BodyScroll 参数

* doc: 增加示例

* test: 增加单元测试

* doc: 增加示例代码资源文件

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
2025-02-06 06:16:49 +00:00
Argo Zhang
93817bcd72 feat(CacheManagerOptions): add CacheManagerOptions support configue cache expiration (#5310)
* feat: 增加 CacheManagerOptions 配置类

* feat: 增加 CacheManagerOptions 参数

* feat: 使用 CacheManagerOptions 值代替常量

* doc: 更新缓存时长计算方法

* test: 增加单元测试

* feat: 增加 SetDefaultSlidingExpiration 扩展方法精简代码
2025-02-06 11:15:53 +08:00
Argo Zhang
61eefd1193 feat(Search): support Debounce default value 200ms (#5308)
* feat: 增加客户端防抖

* feat: 增加防抖参数设置

* doc: 增加防抖 200 毫秒设置

* feat: 增加防抖默认值 200
2025-02-06 11:03:55 +08:00
Argo Zhang
528f80ac19 feat(Html2Pdf): bump PuppeteerSharp version 20.1.0 (#5306) 2025-02-06 11:01:12 +08:00
Argo Zhang
d4adda1237 revert(GetJsonStringFromAssembly): merge json from entry assembly (#5302)
* 增加例子,演示入口程序重写语言资源

* 修复入口程序重写语言资源

* refactor: 重构代码

* chore: bump version 9.3.1-beta08

Co-Authored-By: Diego2098 <82756760+kimdiego2098@users.noreply.github.com>

* Revert "增加例子,演示入口程序重写语言资源"

This reverts commit 42252be750.

---------

Co-authored-by: 2248356998 qq.com <2248356998@qq.com>
Co-authored-by: Diego2098 <82756760+kimdiego2098@users.noreply.github.com>
2025-02-05 17:20:22 +08:00
Argo Zhang
bc627f6aec feat(IconPark): add Color parameter (#5300)
* doc: 更新示例代码

* chore: 更新依赖包

增加 Color 参数
2025-02-05 16:11:20 +08:00
Argo Zhang
a7ddad009b feat(OctIcon): add squre-circle icon (#5298)
* chore: 更新 OctIcon 支持 Color 参数

* doc: 更新图标示例

* chore: 更新依赖包

* chore: 更新依赖包到 9.0.3

增加 square-circle 图标
2025-02-05 11:47:37 +08:00
Argo Zhang
fff6f0613f feat(Search): add IsClearable parameter (#5296)
* chore: 更新 OctIcon 支持 Color 参数

* doc: 更新图标示例

* chore: 更新依赖包

* feat: 增加 SearchContext 精简代码逻辑

减少级联参数

* style: 增加样式

* doc: 更新示例代码

* doc: 更新示例文档

* test: 增加单元测试

* test: 更新单元测试

* chore: bump version 9.3.1-beta07

* test: 更新单元测试

* feat: 增加 ButtonTemplate 参数

* feat: 增加 ShowClearIcon 参数

* refactor: 增加 form-control-group 节点

* style: 更新样式

* feat: 增加 PrefixButtonTemplate 参数

* refactor: 增加 PrefixButtonTemplate 逻辑

* style: 增加 bb-search-icon-input-padding-right 变量

* doc: 增加示例

* refactor: 更改 IsClearable 参数

* refactor: 调整 ButtonTemplate 位置

* doc: 增加示例代码

* doc: 更新示例

* doc: 增加文档注释

* doc: 增加注释文档多语言

* test: 更新单元测试

* refactor: 重构 DOM 结构精简样式
2025-02-05 02:34:31 +08:00
Argo Zhang
15fa69ea98 doc(SmileDrawer): update SmileDrawerOption sample code (#5295)
* doc: 更新示例代码

* doc: 更新 IsNew 标记

* chore: 更新版本号
2025-02-04 11:27:07 +08:00
Argo Zhang
95711bb1aa refactor(Typed): override Equals method (#5293)
* refactor: 重构代码

* test: 更新单元测试

* refactor: 更新代码
2025-02-04 02:24:29 +08:00
Argo Zhang
a2756ed8f7 feat(Typed): add Typed component (#5291)
* test: 更新单元测试

* doc: 更新示例文档

* feat: 增加 OnCompleteAsync 方法

* doc: 调整示例代码

* refactor: 完善逻辑

* test: 更新单元测试

* refactor: 精简代码

* feat: 增加 TypedJs 组件

* refactor: 更改组件名称

* doc: 增加文档映射

* doc: 增加菜单

* doc: 增加菜单多语言

* doc: 更新文档
2025-02-04 00:38:16 +08:00
Argo Zhang
9079726ab3 fix(DriverJs): the PrevBtnText NextBtnTetxt not working (#5288)
* refactor: 过滤掉超时异常

* refactor: 更新代码

* test: 更新单元测试

* refactor: 增加 LoadModuleByName 扩展方法

* refactor: 使用新的扩展方法减少代码

* refactor: 重构代码

* feat: 增加 EmptyTemplate 参数

* test: 增加单元测试

* doc: 增加包引用文档

* chore: bump version 9.0.1

* refactor: 设置方法为公开

---------

Co-authored-by: Alexander Mun <koreets61@gmail.com>
2025-02-03 11:50:16 +08:00
Argo Zhang
786e73cbba feat(ListView): add EmptyText parameter (#5287)
* refactor: 过滤掉超时异常

* refactor: 更新代码

* test: 更新单元测试

* refactor: 增加 LoadModuleByName 扩展方法

* refactor: 使用新的扩展方法减少代码

* feat: 增加 EmptyTemplate 参数

* test: 增加单元测试

* refactor: 删除合并导致的冗余代码

---------

Co-authored-by: caics <caics.china@gmail.com>
2025-02-03 11:43:44 +08:00
Argo Zhang
350b0e36ca feat(LoadModeByName): add LoadModuleByName extension method (#5286)
* refactor: 过滤掉超时异常

* refactor: 更新代码

* test: 更新单元测试

* refactor: 增加 LoadModuleByName 扩展方法

* refactor: 使用新的扩展方法减少代码

* refactor: 重构代码

* refactor: 设置方法为公开
2025-02-03 11:27:11 +08:00
Argo Zhang
c001d4f6fe feat(WebClientService): add TimeoutException catch (#5283)
* refactor: 过滤掉超时异常

* refactor: 更新代码

* test: 更新单元测试

* refactor: 重构代码

* refactor: 更新代码
2025-02-03 11:05:44 +08:00
Argo Zhang
73e6f95d19 doc(Icon): add Icon sample code (#5278)
* chore: 更新依赖包

* doc: 增加图标示例代码
2025-02-02 12:41:27 +08:00
Argo Zhang
e654d66cf3 feat(Toast): support DialogCloseButton component (#5276)
* feat: 增加 AddStyle 方法

* test: 增加单元测试

* refactor: use AddStyle method

* doc: 重构代码

* refactor: 重构代码

* Revert "refactor: 重构代码"

This reverts commit 37653dc4f1.

* feat: 增加 BootstrapLabelSetting 组件

* feat: 增加 LabelWidth 参数

* feat: 实现 LabelWidth 逻辑

* test: 增加单元测试

* doc: 移除 IsHtml 参数说明

* doc: 更新 Content 说明文档

* feat: 增加级联参数
2025-02-02 11:08:29 +08:00
Argo Zhang
c33eb02ace feat(BootstrapLabelSetting): add BootstrapLabelSetting component (#5274)
* feat: 增加 AddStyle 方法

* test: 增加单元测试

* refactor: use AddStyle method

* doc: 重构代码

* refactor: 重构代码

* Revert "refactor: 重构代码"

This reverts commit 37653dc4f1.

* feat: 增加 BootstrapLabelSetting 组件

* feat: 增加 LabelWidth 参数

* feat: 实现 LabelWidth 逻辑

* test: 增加单元测试
2025-02-02 11:05:54 +08:00
Argo Zhang
3c07dffc46 feat(CssBuilder): add AddStyle method (#5272)
* feat: 增加 AddStyle 方法

* test: 增加单元测试

* refactor: use AddStyle method

* doc: 重构代码

* refactor: 重构代码
2025-02-02 11:02:07 +08:00
Argo Zhang
b479cb1034 refactor(ValidateForm): use style instead of cascade parameter (#5269)
* refactor: 增加 style 标签

* refactor: 移除级联参数的使用

* test: 更新单元测试
2025-02-01 14:40:22 +08:00
Argo Zhang
5f1f7b9b42 feat(ValidateForm): add LabelWidth parameter (#5267)
* feat: 增加 LabelWidth 参数

* feat: EditorForm 支持级联参数

* doc: 增加资源文件

* doc: 增加 LabelWidth 参数描述

* test: 增加单元测试
2025-02-01 14:21:33 +08:00
Argo Zhang
342333018c feat(BootstrapLabel): add LabelWidth parameter (#5265)
* feat: 增加 LabelWidth 参数

* doc: 代码格式化

* test: 更新单元测试
2025-02-01 05:46:15 +00:00
Argo Zhang
12f5d72dbe feat(FileIcon): add Size parameter (#5263)
* feat: 增加 Size 参数

* doc: 增加文档

* doc: 增加本地化资源

* test: 增加单元测试
2025-02-01 11:58:39 +08:00
Argo Zhang
eaa9a8b4eb chore(ErroLogger): add navigation url info (#5262) 2025-02-01 03:02:06 +00:00
Argo Zhang
e1f1352fe7 doc(MultiSelect): update sample code support flags enum (#5257)
* chore: 更新脚本

* doc: 更新示例

* chore: bump version 9.3.1-beta06
2025-01-31 15:01:35 +08:00
Argo Zhang
34a6a8a2d0 feat(CheckboxListGeneric): add ItemTemplate parameter (#5255)
* chore: bump version 9.3.1-beta05

* feat: 增加 ItemTemplate 支持

* test: 增加单元测试
2025-01-31 14:14:37 +08:00
Argo Zhang
3a219b6f15 feat(MultiSelect): support Flags attribute (#5253)
* doc: 文档格式化

* feat: 支持 Flags 参数

* doc: 增加示例

* doc: 更新示例

* feat: 枚举类型支持 Flags 标签

* test: 增加单元测试
2025-01-31 13:14:33 +08:00
Argo Zhang
ae7a53c99f refactor(IDynamicObject): remove SupportComplexProperty parameter (#5252)
* refactor: 移除 supportComplexProperty 参数判断 Assembly 是否为动态

* chore: bump version 9.3.1-beta04
2025-01-31 03:12:44 +00:00
Argo Zhang
a8b3118c68 feat(IDynamicObject): disable support complex object (#5250)
* refactor: 移除 NET5 框架代码

* refactor: 精简代码

* doc: 更新注释文档

* refactor: 重构代码提供可读性

* doc: 增加注释

* refactor: 重命名测试类

* doc: 增加注释

* feat: 动态不支持复杂类

* feat: Lambda 扩展方法支持参数是否支持复杂类型

* feat: 增加 SupportComplexProperty 参数

* test: 增加单元测试

* chore: bump version 9.3.1-beta03
2025-01-30 21:49:04 +08:00
Argo Zhang
10fe3824ef feat(Icons): add OctIcon component (#5248)
* chore: 增加示例

* chore: 增加菜单

* chore: 增加资源文件

* chore: 增加 IsNew 标志

* chore: 增加依赖包

* chore: 更新键值

* chore: 更新示例
2025-01-30 01:20:16 +08:00
Argo Zhang
adc3e46e58 feat(MaterialDesignIcon): integrated MaterialDesign icon (#5247)
* refactor: 移动 fa 图标

* chore: 增加 bs 图标

* feat: 增加 bs 图标集

* refactor: 调整顺序

* refactor: 移除 bs 图标集配置

* chore: 移除包

* chore: 增加图标集

* chore: 移除配置代码

* chore: 移除包

* refactor: 重命名

* chore: 增加 MaterialDesign 图标
2025-01-29 23:20:09 +08:00
Argo Zhang
4e0bb2260e feat(BootstrapIcon): integrated Bootstrap icon (#5245)
* refactor: 移动 fa 图标

* chore: 增加 bs 图标

* feat: 增加 bs 图标集

* refactor: 调整顺序

* refactor: 移除 bs 图标集配置

* chore: 移除包
2025-01-29 22:52:25 +08:00
Argo Zhang
cfa0597d11 feat(Search): add ShowSearchButton parameter (#5243)
* doc: 增加异常捕获

* feat: add ShowSearchButton parameter

* style: 增加样式

* feat: 增加 ShowPrefixIcon 参数

* style: 更新样式

* feat: 增加 PrefixIcon 参数

* doc: 更新示例

* style: 更新样式

* doc: 更新示例

* doc: 更新示例

* doc: 增加文档说明

* test: 增加单元测试
2025-01-29 20:13:01 +08:00
Argo Zhang
78f2789b2c doc(Select): update ShowSearch sample code (#5241)
* refactor: 调整搜索图标上边距

* doc: 更新示例

* refactor: 移除多余配置

* doc: 更新示例
2025-01-29 17:43:47 +08:00
Argo Zhang
0099bd3535 feat(DropUpload): add DropUpload component (#5236)
* refactor: 更新注释

* feat: 增加 DropUpload 组件

* doc: 增加示例

* style: 更新样式

* feat: 增加 IconTemplate

* feat: 增加 BodyTemplate 参数

* feat: 增加点击上传功能

* feat: 增加 Template 参数

* style: 微调样式

* refactor: 调整脚本

* refactor: 精简代码

* doc: 精简提示信息

* doc: 更新 GlobalException 描述信息

* doc: 增加缓存键值列样式

* refactor: 重构代码

* doc: 增加异常捕获

* feat: 增加参数逻辑

* doc: 更新示例文档

* feat: 增加上传列表功能

* doc: 更新示例

* doc: 更新资源文件

* test: 更新单元测试
2025-01-29 12:20:09 +08:00
Argo Zhang
b6f47f096b doc(Exception): reduce exception records (#5235)
* refactor: 精简代码

* doc: 精简提示信息

* doc: 更新 GlobalException 描述信息

* doc: 增加缓存键值列样式

* refactor: 重构代码
2025-01-28 19:18:47 +08:00
Argo Zhang
cfcd5970b1 doc(Table): add IsPopover sample code (#5233) 2025-01-28 11:23:12 +08:00
Argo Zhang
239ed6822d feat(TableColumn): add ButtonTemplateHeaderText default value (#5231) 2025-01-28 11:18:50 +08:00
Argo Zhang
1d9f7847b9 doc(CacheList): update GetSlidingLeftTime logic (#5228)
* doc: 更新获取滑动时间剩余时间逻辑

* doc: add CacheCounter component
2025-01-28 00:53:48 +08:00
Argo Zhang
3e217f1544 feat(CheckboxList): add ItemTemplate parameter (#5226)
* feat: 增加 ItemTemplate 参数

* doc: 更新示例文档

* doc: 移除 div 元素

* test: 增加单元测试

* chore: bump version 9.3.1-beta02
2025-01-28 00:01:26 +08:00
Argo Zhang
175dac6dff feat(Table): can resize the fixed column (#5223)
* style: 增加 overflow: hidden 样式

* refactor: 固定列也可以调整列宽

* style: 微调 overflow 样式

* refactor: 增加固定列调整逻辑

* doc: 更新示例
2025-01-27 18:21:24 +08:00
Argo Zhang
2e132a9c33 fix(Modal): use TrySetResult prevent throw exception (#5222) 2025-01-27 15:58:13 +08:00
Argo Zhang
0d04f6f34b feat(ICacheEntry): add GetLastAccessed extension method (#5219)
* doc: 更改示例代码

* doc: 增加缓存时长描述

* refactor: 更改 OnGetDisplayText 增加可为空

* refactor: 重构 CacheManager 优化性能

* doc: 更新示例

* refactor: 增加扩展方法

* doc: 更新超时时长列内容

* doc: 实现过期时间实时更新

* refactor: 精简代码

* test: 更新单元测试

* test: 更新单元测试
2025-01-26 19:15:57 +08:00
Argo Zhang
f0fd5dc37b feat(SelectTable): add EmptyTemplate parameter (#5217)
* feat: 增加 EmptyTemplate 参数

* test: 增加单元测试
2025-01-26 12:38:06 +08:00
Argo Zhang
895170dc36 feat(ICacheManager): add TryGetCacheEntry method (#5216)
* doc: 增加到期时间列

* test: 增加 benmark 测试功能

* feat: 增加 TryGetCacheEntry 方法

* doc: 增加过期时间

* test: 更新单元测试

* test: 更新单元测试
2025-01-26 11:49:08 +08:00
Argo Zhang
01b3e1d17a feat(Drawer): auto focus when drawer shown (#5211)
* refactor: add auto focus logic

* refactor: 重构代码

* refactor: 精简代码

* chore: bump version 9.3.1-beta01
2025-01-26 00:45:43 +08:00
Argo Zhang
3a8f822339 feat(ICacheManager): add prefix cache key (#5210)
* doc: 更新示例

* refactor: 增加内部缓存策略

* refactor: 增加空文化判断

* test: 更新单元测试

* test: 更新单元测试

* refactor: 增加前缀
2025-01-26 00:41:15 +08:00
Argo Zhang
692d46c217 feat(Drawer): add IsKeyboard parameter (#5207)
* feat: 增加 IsKeyboard 支持

* refactor: DrawerOptions support IsKeyboard

* doc: update sample code

* refactor: 更改默认值为 false

* doc: 增加 ESC 按键示例

* test: 更新单元测试

* chore: bump version beta06

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>

* chore: bump version 9.3.0

---------

Co-authored-by: ice6 <889040+ice6@users.noreply.github.com>
2025-01-25 20:53:47 +08:00
Argo Zhang
c4f78b4b46 feat(Search): remove IsAutoClearAfterSearch parameter (#5205)
* refactor: 增加虚方法规范子类

* refactor: 实现虚方法

* doc: 更新搜索示例

* refactor: 修复获得焦点自动全选失效问题

* refactor: 移除 IsAutoClearAfterSearch 参数

* doc: 更新示例代码说明

* refactor: 更新提示信息

* refactor: 增加过期标签

* test: 更新单元测试

* test: 更新单元测试
2025-01-25 11:38:06 +08:00
Argo Zhang
c95a60f6f1 doc(Display): update FormatString sample code (#5203)
Co-Authored-By: Jiří Vokřínek <196328283+jvk-digres@users.noreply.github.com>
2025-01-25 00:41:12 +08:00
Argo Zhang
fe4f05081f feat(Tab): add IsDisabled parameter (#5200)
* feat: 增加 IsDisabled 参数

* style: 更新样式

* refactor: 禁止关闭

* doc: 更新示例

* refactor: 增加 SetDisabled 方法

* doc: 更新示例

* doc: 更新示例文档

* refactor: 精简逻辑

* doc: 更新示例

* test: 更新单元测试

* refactor: 增加 SetDisabledItem 实例方法

* doc: 更新示例

* test: 更新单元测试

* chore: bump version

Co-Authored-By: EliasIsmail <46480871+eliasismail@users.noreply.github.com>

* chore: bump version 9.2.9-beta05

---------

Co-authored-by: EliasIsmail <46480871+eliasismail@users.noreply.github.com>
2025-01-25 00:21:20 +08:00
Argo Zhang
4dc56bb7c1 doc(Dropdown): custom content use ButtonTemplate (#5196) 2025-01-24 05:50:16 +00:00
Argo Zhang
7b1a2f2a8b refactor(QueryPageOptions): rename paramater IsTriggerPagination (#5195)
* refactor(): 重命名参数

* test: 更新单元测试
2025-01-24 05:27:27 +00:00
Argo Zhang
c607323d04 feat(QueryPageOptions): add TriggerByPagination parameter (#5193)
* feat(QueryPageOptions): add TriggerByPagination parameter

* test: 更新单元测试

* chore: bump version 9.2.9-beta04
2025-01-24 13:20:25 +08:00
Argo Zhang
8526429cfd feat(AufoFill): add TriggerFilter invoke method (#5191)
* refactor: 修复报错问题

* refactor: 减少私有变量

* wip: 临时提交

* Revert "refactor: 减少私有变量"

This reverts commit 1da970956d.

* Revert "wip: 临时提交"

This reverts commit 63d5bee6d3.

# Conflicts:
#	src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.cs

* refactor: 精简代码逻辑

* test: 更新单元测试

* refactor: 更新内部逻辑

* test: 更新单元测试

* Revert "test: 更新单元测试"

This reverts commit 38d331a982.

* test: 更新单元测试

* refactor: 重构代码

* refactor: 重构代码

* refactor: 重构代码

* test: 更新单元测试
2025-01-24 12:41:42 +08:00
Argo Zhang
09e2ff3d50 feat(FontAwesome): upgrade to 6.7.2 version (#5186)
* refactor: 增加 OperationCanceledException 异常忽略

* chore: 更新依赖包

* test: 更新单元测试
2025-01-23 19:15:11 +08:00
Argo Zhang
1582e58139 feat(LoadModule): preventing OperationCancelException throw (#5188)
* refactor: 增加 OperationCanceledException 异常忽略

* test: 更新单元测试
2025-01-23 19:09:47 +08:00
Argo Zhang
3ccfc9d384 feat(Cascader): remove EditorRequired attribute (#5184)
* feat(Cascader): remove EditorRequired attribute

* chore: bump version 9.2.9-beta03
2025-01-23 06:31:12 +00:00
Argo Zhang
bccd8da3eb chore(Deploy): update deploy script (#5181) 2025-01-22 23:19:36 +08:00
Argo Zhang
6e69988527 doc(TableExport): update export support lookup async sample code (#5178)
* doc: 增加外键异步导出示例

* chore: 更新依赖包
2025-01-21 15:35:56 +08:00
Argo Zhang
d52dda06c0 feat(ICacheManager): add default cache policy (#5176)
* refactor: 移除扩展方法

* doc: 重构 CodeSnippetService 服务

* doc: 移除注释

* refactor: 增加默认缓存策略

* refactor: 增加 NeverRemove 约束

* refactor: 增加动态程序集默认缓存策略

* refactor: 重构代码

* test: 更新单元测试

* chore: bump version 9.2.9-beta02

* test: 更新单元测试
2025-01-21 15:34:32 +08:00
Argo Zhang
9e809f0ba4 doc(Error): update sample code reduce error log (#5174)
* doc: 忽略取消异常

* doc: 更新 Menu 示例代码

* test: 增加单元测试
2025-01-21 13:30:23 +08:00
Argo Zhang
6af62a5020 feat(BootstrapInputGroupLabel): redesign IsInputGroupLabel logic (#5172)
* doc: 代码格式化

* refactor: 精简逻辑

* refactor: 重构逻辑提高可读性

* test: 更新单元测试

* Revert "refactor: 精简逻辑"

This reverts commit b2265dd14c.

* revert: 撤销更改

* test: 更新单元测试
2025-01-21 12:55:08 +08:00
Argo Zhang
1c0f564dac feat(Slider): remove InputGroup cascade parameter (#5170)
* refactor: 精简逻辑移除对 InputGroup 依赖

* style: 增加 InputGroup 兼容样式

* doc: 更新示例代码
2025-01-21 12:01:46 +08:00
Argo Zhang
da655c5442 fix(Checkbox): redesign checkbox style compatible InputGroup (#5168)
* refactor: 代码格式化

* fix: 修复 DisplayText 丢失问题

* doc: 更新示例

* test: 更新单元测试

* refactor: 精简代码适配 InputGroup

* style: 增加适配样式
2025-01-21 11:34:35 +08:00
Argo Zhang
278aada191 fix(BootstrapInputGroupLabel): should show DisplayText when bind-Value in ValidateForm (#5167)
* refactor: 代码格式化

* fix: 修复 DisplayText 丢失问题

* doc: 更新示例

* test: 更新单元测试
2025-01-21 11:28:50 +08:00
Argo Zhang
de1b5b1d3a feat(JsonLocalizationOptions): add DisableGetLocalizerFromService parameter (#5164)
* chore: 增加配置项

* feat: 增加 DisableGetLocalizerFromService 配置项

* feat: 增加本地化获取逻辑

* test: 更新单元测试

* test: 更新单元测试

* chore: bump version 9.2.9-beta01
2025-01-20 20:27:20 +08:00
Argo Zhang
e0f6516a4c feat(MultiSelect): redesign search feature (#5162)
* refactor: 代码格式化

* doc: 更改小写

* style: 更新样式

* fix: 修复搜索逻辑

* chore: bump version 9.2.8-beta04

Co-Authored-By: Alexander Shakhov <samfromlv@gmail.com>

* chore: bump version 9.2.8-beta06

* chore: 重构代码

* refactor: 移动代码到独立类中

* refactor: 移动代码

* refactor: 更新 base-select 代码复用

* refactor: 复用客户端脚本

* feat: 增加 NoSearchDataText 功能

* refactor: 增加可编辑状态下按键支持

* refactor: 复用

* chore: bump version 9.2.8

* refactor: 重构搜索逻辑

* refactor: 增加内部缓存提高性能

* refactor: 增加滚动行为参数

* refactor: 重构代码

* test: 补充单元测试

* test: 更新单元测试

---------

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-20 13:10:34 +08:00
Argo Zhang
da7715efb8 refactor(CacheManager): remove some cache item (#5161)
* feat(ICacheManager): add Keys parameter

* test: 更新单元测试

* feat: add cache list page

* refactor: 移除 GetStringLocalizerFromService 缓存

* doc: 增加删除所有缓存键值按钮

* refactor: 重构代码

* doc: 增加 CacheList 页面

* doc: 格式化水印文档

* doc: 增加缓存值列

* refactor: 更新值

* doc: 增加缓存项统计

* refactor: 移除 GetPlaceholder 缓存

* refactor: 移除 TryGetProperty 缓存

* doc: 更新资源文件

* refactor GetDisplayName 移除缓存

* refactor:获得属性私有字段方法移除缓存

* refactor: 弃用 ReloadOnChange 参数

* refactor: 更新 GetJsonStringFromAssembly 逻辑

* refactor: GetRange 移除缓存

* refactor: 精简 Lambda 表达式缓存

* refactor: 移除 DEBUG 模式下缓存设置

* refactor: 移除 SetSlidingExpirationByType 扩展方法

* refactor: 移除非 JsonStringLocalizer 缓存未找到键值缓存逻辑

* refactor: 代码重构减少函数调用

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-20 10:22:20 +08:00
Argo Zhang
72868a66e6 feat(ICacheManager): add Keys parameter (#5158)
* feat(ICacheManager): add Keys parameter

* test: 更新单元测试

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-19 12:21:50 +08:00
Argo Zhang
c794a1e3c1 doc(Meilisearch): FooterLogo support responsive (#5156)
* test: 调整高度

* test: 调整宽度

* doc: 移除注释

* refactor: 移除锁提高性能

* style: 微调搜索栏样式

* refactor: 移除样式

* chore: 更新 Meilisearch 包

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-19 11:02:46 +08:00
Argo Zhang
951c1c6e52 perf(CacheManager): remove lock improve performance (#5154)
* doc: 移除注释

* refactor: 移除锁提高性能

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-19 10:57:45 +08:00
Argo Zhang
d0dd670a17 refactor(CacheManager): add cache by type (#5152)
* doc: remove missing cache

* refactor: 重构缓存键值

* test: 增加多语言支持

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
Co-Authored-By: Argo Zhang <argo@live.ca>
2025-01-18 14:57:12 +08:00
Argo Zhang
554b715c0b doc(FooterCounter): add FooterCounter componenet improve performance (#5150)
* doc: 增加 FooterCounter 组件提高性能

* doc: 增加图片高度样式防止抖动

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
Co-Authored-By: Argo Zhang <argo@live.ca>
2025-01-18 13:41:28 +08:00
Argo Zhang
2145ff095d feat(CacheManager): add SetSlidingExpirationByType extension method (#5144)
* refactor: 复用 LoadModule 方法

* refactor: 增加日志输出

* refactor: 精简代码提高可读性

* doc: 移除 UseResponseCompression 中间件

* doc: 移除注释信息

* refactor: 增加 offset 参数

* refactor: 重构 SetSlidingExpirationByType 扩展方法

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
Co-Authored-By: Argo Zhang <argo@live.ca>
2025-01-18 04:29:20 +00:00
Argo Zhang
84ace2e1ba refactor(LoadModule): add logger information for load module failed (#5148)
* refactor: 复用 LoadModule 方法

* refactor: 增加日志输出

* refactor: 精简代码提高可读性

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
Co-Authored-By: Argo Zhang <argo@live.ca>
2025-01-18 04:24:34 +00:00
Argo Zhang
3279623bf9 doc(Website): remove UseResponseCompression middleware (#5146)
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
Co-Authored-By: Argo Zhang <argo@live.ca>
2025-01-18 04:19:00 +00:00
Argo Zhang
cf897cd27b refactor(JSException): remove JSException error log (#5142)
* chore: update catch JSException logic

* test: 更新单元测试
2025-01-17 22:23:46 +08:00
Argo Zhang
809149f27a perf(CacheManager): reduce cache key count (#5140)
* refactor: 减少 Cache 缓存项

* refactor: 增加 Lock 对象

* refactor: 增加 GetAllStringsByTypeName 方法

* doc: 增加注释信息

* refactor: 移除不使用的变量

* refactor: 减少缓存键值

* refactor: 更新 GetStringSafelyFromJson 方法

* refactor: 更新 GetAllStringsByType 实现方法

* refactor: 修复缓存时间

* feat: 增加 GetTypeStringsFromResolve 方法

* refactor: 移除 GetAllStringsFromResolve 方法

* refactor: 重构 GetAllStrings 逻辑

* test: 更新单元测试

* test: 精简代码

* test: 精简代码
2025-01-17 21:59:48 +08:00
Argo Zhang
7f19440c8c refactor(DockViewV2): upgrade to 9.0.3 (#5138)
Co-Authored-By: celadaris <12479149+celadaris@users.noreply.github.com>
Co-Authored-By: Argo Zhang <argo@live.ca>
2025-01-17 17:31:33 +08:00
Argo Zhang
a76b81ef03 refactor(Watermark): update background size check logic (#5137)
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
Co-Authored-By: Argo Zhang <argo@live.ca>
2025-01-17 14:02:58 +08:00
Argo Zhang
6980608c0a feat(Watermark): add protected logic (#5135)
* feat: 增加 Protected 参数支持

* feat: 增加 Protected 参数支持

* refactor: 移除参数

* chore: bump version 9.2.8-beta05

* refactor: 精简代码
2025-01-17 12:06:16 +08:00
Argo Zhang
cf6aaab020 feat(ListView): add Height parameter (#5132)
* refactor: 精简代码

* doc: 移除 lv-demo 样式

* refactor: 更改私有属性为私有字段

* feat: 增加 Height 参数

* style: 更新样式

* doc: 更新示例

* test: 更新单元测试
2025-01-16 20:59:23 +08:00
Argo Zhang
3b2af83404 refactor(AutoComplete): redesign value change logic (#5130)
* doc: 增加本地化

* doc: 增加验证方法示例代码

* feat: 增加 TriggerChange 方法

* test: 更新单元测试

* doc: 更新示例

* chore: bump version 9.2.8-beta04

* chore: bump version 9.2.8-beta05

Co-Authored-By: celadaris <12479149+celadaris@users.noreply.github.com>

---------

Co-authored-by: celadaris <12479149+celadaris@users.noreply.github.com>
Co-Authored-By: Argo Zhang <argo@live.ca>
2025-01-16 19:54:44 +08:00
Argo Zhang
b149582ec4 doc(Cascader): add validate sample code (#5129)
* doc: 增加本地化

* doc: 增加验证方法示例代码

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
Co-Authored-By: Argo Zhang <argo@live.ca>
2025-01-16 11:50:09 +00:00
Argo Zhang
73d72b1b2a fix(Cascader): should display Empty after click Clearable button (#5128)
* feat: 清空按钮不应该使用 Items 第一个值

* test: 更新单元测试
2025-01-16 16:52:43 +08:00
Argo Zhang
195deb543f doc(DNF): update dnf project link (#5125)
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-16 04:24:29 +00:00
Diego2098
3d46f4e005 docs(ContextMenu): add TreeView sample code (#5118)
* docs(ContextMenus): 补充右键菜单文档

* chore: bump version 9.2.8-beta04

* chore: bump version 9.2.8-beta03

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2025-01-16 12:15:57 +08:00
Argo Zhang
d17ea0d541 refactor(SortableList): update SortableList package 9.0.2 (#5117)
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
Co-Authored-By: Argo <argo@live.ca>
2025-01-15 20:04:10 +08:00
Argo Zhang
4cd1d730bb doc(Sponsor): add JetBrains sponsor information (#5116)
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
Co-Authored-By: Argo <argo@live.ca>
2025-01-15 11:58:55 +00:00
Argo Zhang
42852a69c9 feat(Row): support custom class attribute (#5113)
* feat: support custom class attribute

* test: 更新单元测试

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
Co-Authored-By: Argo <argo@live.ca>
2025-01-15 17:23:56 +08:00
Argo Zhang
96c3db559a feat(DrawerOption): add BodyContext parameter (#5112)
* feat(Drawer): 增加 BodyContext 参数

* test: 增加单元测试

* chore: bump version 9.2.8-beta02

* test: 更新单元测试

Co-Authored-By: Argo <argo@live.ca>
2025-01-15 17:17:33 +08:00
Alex chow
5960d5ca5c fix(CacheManager): GetJsonStringByTypeName prevent throw ArgumentNull exception (#5106)
* fix CacheManager GetLocalizedString Key.Value Null

* feat: 增加 UseKeyWhenValueIsNull 参数

* refactor: 优化代码

* refactor: 优化代码

* feat: 增加 UseKeyWhenValueIsNull 逻辑

* test: 增加单元测试

* refactor: 增加 null 保护防止报异常

* test: 更新单元测试

---------

Co-Authored-By: Argo-iMac <argo@live.ca>
2025-01-15 11:35:57 +08:00
Argo Zhang
85b22b1614 feat(Input): use IsClearable instead of Clearable (#5108)
* refactor: 重构参数名称

* doc: 更新示例

* test: 更新单元测试

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
2025-01-14 02:15:37 +00:00
Argo Zhang
6a855893c2 fix(Tabs): remove height 100% style (#5105)
* style: 移除 100% 样式

* chore: bump version 9.2.8-beta01

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-13 11:56:42 +00:00
Alex chow
cd12a6011c feat(Calendar): add HeaderTemplate parameter (#4674)
* (Calendar) add AdditionalHeaders Parameter #4673

* feat: 增加 HeaderTemplate 模板

* feat: 增加 BodyTemplateContext 上下文类

* doc: 增加注释信息

* doc: 更新示例

* test: 更新单元测试

---------

Co-Authored-By: Argo Zhang <argo@live.ca>
2025-01-13 19:42:04 +08:00
Argo Zhang
6f491d753e doc(MultiSelect): update OnEditCallback sample code (#5101)
* doc: 移除不使用的代码

* doc: 增加 OnEditCallback 示例

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
2025-01-12 13:40:57 +00:00
Argo Zhang
ae7d91b37f feat(Watermark): add Watermark component (#5099)
* feat: 增加水印组件

* feat: 增加样式

* doc: 增加菜单

* doc: 增加路由源码映射

* doc: 增加示例

* refactor: 增加脚本

* feat: 增加防篡改逻辑

* refactor: 增加更新逻辑

* doc: 更新示例

* feat: 增加颜色参数支持

* doc: 更新示例

* feat: 增加 Gap 参数

* doc: 增加默认值

* doc: 更新文档

* refactor: 更新参数数据类型

* doc: 更新示例

* test: 更新单元测试

* chore: bump version 9.2.7
2025-01-12 20:51:21 +08:00
Argo Zhang
0d7e077aac feat(Transfer): add Height parameter (#5095)
* chore: bump version 9.2.7-beta04

Co-Authored-By: szpeak <17529220+szpeak@users.noreply.github.com>

* feat: add Height parameter

* test: 更新单元测试

* chore: bump version 9.2.7-beta05

---------

Co-authored-by: szpeak <17529220+szpeak@users.noreply.github.com>
2025-01-11 20:51:57 +08:00
Alex chow
7f82876f5c fix(Table): use request.Count parameter on virtualize mode (#5089)
* 修复搜索条件变化导致获取分页数字不准确

* chore: bump version 9.2.7-beta05

Co-Authored-By: Zeus <166673003+A5196060@users.noreply.github.com>
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

* chore: bump version 9.2.7-beta06

* refactor: 虚拟滚动模式下直接使用 request.Count 即可

* chore: bump version 9.2.7-beta06

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

* chore: bump version 9.2.7-beta03

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

---------

Co-authored-by: Argo Zhang <argo@live.ca>
Co-authored-by: Zeus <166673003+A5196060@users.noreply.github.com>
2025-01-11 12:04:22 +00:00
Argo Zhang
d533904625 feat(Affix): add Affix component (#5093)
* chore: bump version 9.2.7-beta05

Co-Authored-By: Zeus <166673003+A5196060@users.noreply.github.com>
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

* feat: 增加 Affix 组件

* doc: 增加 Affix 文档

* doc: 更新标志

* doc: 更新菜单本地化

* chore: bump version 9.2.7-beta06

* test: 增加单元测试

---------

Co-authored-by: Zeus <166673003+A5196060@users.noreply.github.com>
Co-authored-by: Alex chow <zhouchuanglin@gmail.com>
2025-01-11 13:27:36 +08:00
Argo Zhang
6d10281c55 doc(ComponentLayout): refactor scroll behavior (#5091)
* style: 移除样式

* doc: 重构注释

* refactor: 重构脚本

* chore: bump version 9.2.7-beta05

Co-Authored-By: Zeus <166673003+A5196060@users.noreply.github.com>
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

* chore: bump version 9.2.7-beta06

---------

Co-authored-by: Zeus <166673003+A5196060@users.noreply.github.com>
Co-authored-by: Alex chow <zhouchuanglin@gmail.com>
2025-01-11 02:34:21 +00:00
Argo Zhang
6f64911e58 feat(Timeline): add DescriptionTemplate parameter (#5088)
* feat: 增加 DescriptionTemplate 参数

* chore: bump version 9.2.7-beta04

* test: 增加单元测试
2025-01-10 15:29:16 +08:00
Argo Zhang
a200c0f832 feat(MultiSelect): add IsEditable parameter (#5086)
* feat: 增加 IsEditable 参数

* doc: 更新示例

* feat: 增加 IsEditable 参数

* refactor: 重构代码

* test: 增加单元测试

* refactor: 更新 Placeholder 逻辑

* doc: 增加本地化

---------

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
2025-01-10 14:59:59 +08:00
Argo Zhang
575f3995ad feat(Cascader): add IsClearable parameter (#5084)
* feat: add IsClearable parameter

* refactor: 更新代码

* doc: 代码重构

* refactor: 增加 cls 样式

* style: 增加禁用样式

* doc: 增加 IsClearable 参数文档

* doc: 增加文档

* test: 增加单元测试

* chore: bump version 9.2.7-beta03

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>

---------

Co-authored-by: ice6 <889040+ice6@users.noreply.github.com>
2025-01-10 05:26:55 +00:00
Argo Zhang
ed880e5895 feat(Light): support flash function when set IsFlat to true (#5083)
* feat: add is-flat-flash style

* doc: 更新文档

* test: 更新单元测试
2025-01-10 04:08:09 +00:00
Argo Zhang
00e9170b66 doc(Table): add sample code for row span (#5080)
* doc: 增加 MergeTableRow 示例

* doc: 增加行合并示例

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-09 18:25:21 +08:00
Argo Zhang
9864a4f36f feat(SelectObject): add IsClearable parameter (#5077)
* feat: 增加 IsClearable 参数

* doc: 更新示例

* chore: bump version 9.2.7-beta02

* test: 更新单元测试

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
2025-01-09 14:51:09 +08:00
Argo Zhang
1e0338bf34 doc(WebSiteOptions): improve performance for search code (#5075)
* perf: 使用性能更高的字典

* refactor: 增加小写键值转化

* refactor: 增加键值匹配规则

---------

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
2025-01-09 05:50:09 +00:00
Argo Zhang
6113b85d6c feat(SelectTable): add IsClearable parameter (#5074)
* feat: 增加 IsClearable 参数

* style: 更新样式

* doc: 更新示例

* chore: bump version 9.2.7-beta01

* test: 增加单元测试

* test: 更新单元测试
2025-01-09 13:44:33 +08:00
Argo Zhang
68ddec2827 feat(SmilesDrawer): add SmilesDrawer component (#5073)
* chore: 增加 SmileDrawer 组件菜单以及源码链接

* doc: 增加 SmileDrawer 文档

* doc: 更新文档

* doc: 更新示例文档

* chore: 增加包

* doc: 更新菜单

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
Co-Authored-By: jin momiji <105467851+momijijin@users.noreply.github.com>
2025-01-09 02:31:44 +00:00
Argo Zhang
28b3d4a5fb doc(RDKit): update sample code (#5072)
* doc: 更改参数 Value 为 Smiles

* chore: bump version 9.0.2

* doc: 更新文档

Co-Authored-By: jin momiji <105467851+momijijin@users.noreply.github.com>

---------

Co-authored-by: jin momiji <105467851+momijijin@users.noreply.github.com>
2025-01-09 02:17:32 +00:00
Argo Zhang
d5a6e706e6 feat(RDKit): add Size parameter (#5064)
* doc: 增加 Smarts 示例

* doc: 增加 Smarts 示例

* chore: 更新依赖包到最新

* doc(RDKit): add Size parameter document

---------

Co-authored-by: Alex chow <zhouchuanglin@gmail.com>
2025-01-08 06:58:10 +00:00
Argo Zhang
e4c37dbb2c feat(RDKit): add Smarts parameter (#5062)
* doc: 增加 Smarts 示例

* doc: 增加 Smarts 示例

* chore: 更新依赖包到最新
2025-01-08 06:06:48 +00:00
Argo Zhang
9578758a64 feat(RDKit): add RDKit component (#5058)
* doc: 增加示例

* doc: 增加菜单

* doc: 增加源代码映射

* doc: 增加本地化

* chore: 增加 RDKit 包

* doc: 代码格式化
2025-01-07 13:39:08 +08:00
Argo Zhang
41a0230af8 refactor(AutoComplete): support Items update (#5055)
* test: 更新单元测试

* feat: 增加 Row 参数

* chore: bump version 9.2.6
2025-01-06 11:52:11 +00:00
Argo Zhang
2fa34aae71 fix(AutoComplete): do not show Items when set OnCustomFilter (#5053)
* fix: 无法显示数据问题

* chore: bump version 9.2.5
2025-01-06 18:14:21 +08:00
Argo Zhang
bb08bc68d0 fix(Layout): add media query for overflow style (#5051) 2025-01-06 18:13:49 +08:00
Argo Zhang
0ea46bb680 refactor(ScrollIntoView): use nearest value instead of center (#5049)
* fix: 更新滚动脚本

* doc: 更新 TableSection 示例滚动逻辑

* doc: 更新文档

* chore: bump version 9.2.5-beta02

* revert: 撤销代码

* doc: 更新注释
2025-01-06 17:57:55 +08:00
Argo Zhang
f5f401d1c8 fix(Select): use ScrollIntoView function (#5047)
* refactor: 更新滚动问题

* chore: bump version 9.2.5-beta01
2025-01-06 13:58:34 +08:00
Argo Zhang
88fba622f8 fix(Markdown): switch route after markdown trigger javascript error (#5046) 2025-01-06 09:44:42 +08:00
Argo Zhang
8b8edf7da5 doc(Select): update bind enum data type sample code (#5044)
* style: 增加 InputGroup 样式

* doc: 修复 Select 绑定布尔值示例

* doc: 更新 Slider 示例
2025-01-06 09:42:13 +08:00
Argo Zhang
89283d2428 feat(SweetAlert): support trigger OnCloseAsync when set IsAutoHide to true (#5040)
* refactor: 精简代码

* refactor: 增加注释

* refactor: 增加资源释放

* refactor: 支持 OnCloseAsync 回调方法

* test: 增加单元测试

* chore: bump version 9.2.4

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

---------

Co-authored-by: Alex chow <zhouchuanglin@gmail.com>
Co-authored-by: ice6 <889040+ice6@users.noreply.github.com>
2025-01-05 11:10:32 +08:00
Argo Zhang
8407fc6e41 doc(Drawer): update drawer sample code (#5039)
* doc: update drawer documetation

* chore: bump version 9.2.4

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-05 02:15:10 +00:00
Argo Zhang
7fa251c11d feat(SelectTree): add ShowSearch parameter (#5037)
* feat: 增加 ShowSearch 参数

* refactor: 重构固定 Search 栏样式兼容 Select-Tree

* test: 更新 TreeView 单元测试

* test: 更新 SelectTree 单元测试

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-04 15:43:35 +00:00
Argo Zhang
8b7cc2a7b8 perf(LocalizerString): use FrozenSet improve performance (#5034)
* refactor: 重构代码合并函数

* refactor: 重构代码提高可读性

* refactor: 精简代码

* refactor: 增加 ToList 提高性能

* refactor: 重构代码

* Revert "refactor: 重构代码合并函数"

This reverts commit 27d8f361b3.

* perf: use Frozen data type improve performance

* refactor: 撤销更改

* test: 更新单元测试

* refactor: 移除不使用的命名空间

* refactor: 移除可为空判断

Co-Authored-By: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-04 10:37:11 +08:00
Argo Zhang
b917fd3e1c fix(Select): enter keydown event not work (#5032)
* refactor: 精简参数使用默认值

* refactor: 合并代码提高可读性

* feat: 修复 Enter 按键失效问题

* chore: bump version 9.2.4-beta01

Co-Authored-By: IDLE <80157812+idle-wang@users.noreply.github.com>

* Revert "refactor: 合并代码提高可读性"

This reverts commit 47809a022e.

---------

Co-authored-by: IDLE <80157812+idle-wang@users.noreply.github.com>
2025-01-03 18:33:18 +08:00
Argo Zhang
907f9c0c9a refactor(ITableColumn): add nullable mark for Formatter parameter (#5030)
* refactor: 增加可为空标志

* chore: bump version 9.2.3

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
Co-Authored-By: MadLongTom <36219016+MadLongTom@users.noreply.github.com>

* chore: bump version 9.2.3-beta03

Co-Authored-By: Zeus <166673003+A5196060@users.noreply.github.com>

* feat: 增加 ShouldRenderInputNumber 扩展方法

* chore: bump version 9.2.3

* refactor: 更改扩展方法名

---------

Co-authored-by: Alex chow <zhouchuanglin@gmail.com>
Co-authored-by: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
Co-authored-by: Zeus <166673003+A5196060@users.noreply.github.com>
2025-01-03 12:52:17 +08:00
Argo Zhang
91f0e77aae fix(BootstrapInputNumber): throw exception when NumberDecimalSeparator is comma (#5028)
* feat: 增加 ShouldRenderInputNumber 扩展方法

* chore: bump version 9.2.3

Co-Authored-By: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-03 04:42:39 +00:00
Argo Zhang
47d2463c4b feat(Swal): upgrade swal v2 style (#5026)
* chore: bump version 9.2.3-beta01

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

* chore: 更新最新版样式

* feat: 根据最新样式更新 dom 结构

* doc: 更新文档

---------

Co-authored-by: Alex chow <zhouchuanglin@gmail.com>
2025-01-02 10:25:49 +00:00
Argo Zhang
62ade0bb28 fix(Select): ShowSearch not work when set IsVirtualize to true (#5022)
* chore: bump version 9.2.2-beta01

Co-Authored-By: 8FAway <54874279+8faway@users.noreply.github.com>

* chore: bump version 9.2.2-beta02

* refactor: 更新搜索栏

* style: 调整图标位置

* feat: 增加 Loading 图标

* doc: 代码格式化

* refactor: 增加滚动行为参数

* refactor: 增加搜索动画

* refactor: 精简代码

* chore: bump version 9.2.2

* test: 增加单元测试

---------

Co-authored-by: 8FAway <54874279+8faway@users.noreply.github.com>
2025-01-02 16:11:29 +08:00
Argo Zhang
f9660cbaaa feat(TableExport): support Lookup GetItemsAsync extension method (#5024)
bump version 9.1.0

Co-authored-by: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
Co-authored-by: Alex chow <zhouchuanglin@gmail.com>
2025-01-02 06:18:10 +00:00
Argo Zhang
f0ebb66282 chore(Sponsor): add Sponsor button (#5021)
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-02 03:59:59 +00:00
Argo Zhang
e11e52f98d doc(MindMap): add how to use section (#5018)
* doc: 代码格式化

* doc: 更新文档

* refactor: 更新依赖 9.1.3

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-02 09:11:16 +08:00
Argo Zhang
a7617a2c61 doc(GlobalSearch): update searchable field (#5016)
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-01 11:58:07 +00:00
Argo Zhang
a69614f828 refactor(AutoFill): add IsLikeMatch/IgnoreCase parameter (#5014)
* feat: 增加 IsLikeMatch IgnoreCase 参数

* refactor: 增加 Value 空判断

* doc: 精简代码

* test: 增加单元测试

* test: 更新单元测试

* chore: 更新依赖 9.1.5

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-01 18:46:52 +08:00
Argo Zhang
c9a3d036ad doc(MindMap): update documentation for callback extensions (#5012)
* doc: 增加放大缩小示例

* doc: 更新示例

* doc: 增加自定义按钮逻辑示例文档

* refactor: 更新文档说明

* refactor: 更新文档

* chore: 更新 9.1.1 版本

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
2025-01-01 07:06:43 +00:00
Argo Zhang
32cba13403 test(Icon): remove Icon unit test (#5010)
Co-Authored-By: Zeus <166673003+A5196060@users.noreply.github.com>
2025-01-01 04:26:43 +00:00
Argo Zhang
ffe96890ab feat(IIconTheme): use FrozenDictionary improve performance (#5008)
* refactor: 增加参数可为空精简代码

* feat: 重构 IIconTheme 接口使用 FrozenDictionary 优化性能

* chore: bump version 9.2.1

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

* refactor: 增加可为空修饰符

* refactor: 精简代码

* refactor: 使用空集合代替 new 提高性能

* refactor: 增加 TryAddIcons 方法

* test: 更新单元测试

* chore: 更新依赖

* refactor: add readonly keyword

---------

Co-authored-by: Alex chow <zhouchuanglin@gmail.com>
2025-01-01 12:10:59 +08:00
Argo Zhang
9a215d2c8f feat(MindMap): redesign MindMap component (#5006)
* doc: 更新示例

* refactor: 更新本地化

* chore: bump  version 9.1.0
2024-12-31 20:27:39 +08:00
AiZhen
2b1c587435 perf(RequiredValidator): call GetLocalizerErrorMessage after validate failed (#4996)
* refactor: 增加 GetValidationResult 扩展方法

* refactor: 利用扩展方法重构代码

* chore: bump version 9.2.1-beta03

* refactor: 格式化命名空间

* test: 更新单元测试

---------

Co-Authored-By: Argo Zhang <argo@live.ca>
2024-12-31 13:52:05 +08:00
Argo Zhang
80804083db fix(SelectTree): shoud set the default active node by Value on first render (#5004)
* fix: 修复 Value 设置 IsActive 状态逻辑

* chore: bump version 9.2.1-beta02

Co-Authored-By: AiZhen <53560110+AiYuZhen@users.noreply.github.com>

* test: 增加单元测试

* refactor: 更改判定条件

---------

Co-authored-by: AiZhen <53560110+AiYuZhen@users.noreply.github.com>
2024-12-31 13:11:16 +08:00
Argo Zhang
9e6b9aece2 feat(Search): add IsTriggerSearchByInput parameter (#5003)
* feat: 增加点击事件

* doc: 更新文档

* refactor: 移动 ShowNoDataTip 到实现类

* feat: 增加无数据提示词

* refactor: 更新文档

* feat: 增加显示下拉框细分逻辑

* feat: 增加显示输入提示词逻辑

* doc: 代码规范化

* refactor: 统一 api 接口定义

* refactor: 调整属性名称

* doc: 微调功能按钮 z-index 值

* refactor: 更新参数名称

* chore: bump version 9.2.1-beta01

Co-Authored-By: Zeus <166673003+A5196060@users.noreply.github.com>
Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

---------

Co-authored-by: Zeus <166673003+A5196060@users.noreply.github.com>
Co-authored-by: Alex chow <zhouchuanglin@gmail.com>
2024-12-31 11:57:25 +08:00
Argo Zhang
17d5dbabad feat(Search): OnSearch callback support async (#5000)
* refactor: 增加弃用标记

* refactor: 更改为泛型组件

* doc: 更新文档

* refactor: 移除可为空

* refactor: 使用 ItemTemplate 参数

* doc: 更新示例文档

* test: 更新单元测试

* doc: 更新示例

* test: 更新单元测试

Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>
2024-12-30 20:05:26 +08:00
Argo Zhang
7c5b1365f9 refactor(AutoComplete): redesign for improve performance (#4973)
* chore: bump version 9.2.0-beta01

Co-Authored-By: khyjb1995 <9110364+khyjb1995@users.noreply.github.com>

* chore: bump version 9.1.4

* refactor: 更新 type 为 text

* refactor: 移除拼音处理逻辑

* doc: 增加注释文档

* refactor: 更新配置

* refactor: 重新设计下拉菜单显示逻辑

* refactor: 增加 Desc 标签

* refactor: 重构代码

* refactor: 支持回车按键

* refactor: 重构代码

* test: 更新单元测试

* doc: 更新示例

* refactor: 更改修饰符

* refactor: 更改样式字符串

* refactor: 更改变量名称

* refactor: 移动参数方法到基类中

* refactor: 移动部分参数到组件内

* refactor: 移动 TriggerBlure 到基类

* refactor: 移动 ShowDropdownListOnFocus 到实现类

* refactor: 移除 CurrentItemIndex 逻辑

* refactor: 代码重构

* refactor: 移动点击事件到组件内

* refactor: 移除无用代码

* refactor: 精简代码

* feat: 增加获得滚动行为参数逻辑

* refactor: 完善 blur 逻辑

* refactor: 增加菜单点击事件销毁逻辑

* refactor: 增加上下箭头出发下拉菜单逻辑

* refactor: 精简样式

* doc: 增加 IsPopover 示例

* refactor: 增加全局钩子

* doc: 格式化文档

* refactor: 移动 FilterItems 变量

* refactor: 增加 Esc 逻辑

* refactor: 根据 AutoComplete 重构 AutoFill 组件

* refactor: 移除不使用的方法

* refactor: 重构 AutoFill 组件

* doc: 更新示例文档

* doc: 更新文档说明按键支持 Esc

* refactor: 增加关窗逻辑

* refactor: 开窗增加条件判断

* refactor: 更新 Search 组件

* refactor: 增加搜索按钮支持

* feat: 增加搜索按钮逻辑

* doc: 更新示例

* doc: 更新示例

* refactor: 更改泛型约束

* refactor: 代码统一

* test: 更新单元测试

* test: 增加防抖单元测试

* refactor: 移除不使用的属性

---------

Co-authored-by: khyjb1995 <9110364+khyjb1995@users.noreply.github.com>
2024-12-30 17:18:59 +08:00
Argo Zhang
3d6591eac4 fix(ModalDialog): overflow top when set IsDraggable to true (#4995)
* fix(Dialog): 修复高度溢出问题

* chore: bump version 9.2.0-beta01

* chore: bump version 9.2.0-beta02

Co-Authored-By: Ye Jiancong <60547439+ye1105@users.noreply.github.com>

---------

Co-authored-by: Ye Jiancong <60547439+ye1105@users.noreply.github.com>
2024-12-30 03:24:35 +00:00
Argo Zhang
44afc80fd7 refactor(Input): style to fit the input-group mode (#4993)
* refactor(Input): style to fit the input-group mode

Co-Authored-By: A5196060 <166673003+A5196060@users.noreply.github.com>

* refactor: 调整右侧间隙

* chore: bump version 9.2.0

* doc: 增加 Clearable 文档

---------

Co-authored-by: A5196060 <166673003+A5196060@users.noreply.github.com>
2024-12-30 01:29:05 +00:00
Argo Zhang
f83730d04b feat(Input): add Clearable parameter (#4991)
* feat: 增加 InputClearIcon 定义

* feat: 增加 Clearable 属性

* refactor: 禁用模式下不显示 Clear 按钮

* test: 增加单元测试

* chore: bump version 9.2.0-beta01

Co-Authored-By: zph19970424 <51937136+zph19970424@users.noreply.github.com>

---------

Co-authored-by: zph19970424 <51937136+zph19970424@users.noreply.github.com>
2024-12-29 12:39:17 +00:00
Argo Zhang
70ebace9fd feat(ScrollIntoViewBehavior): add Description attribute (#4989)
* refactor: 增加 Desc 标签

* chore: bump version 9.2.0-beta03

Co-Authored-By: zph19970424 <51937136+zph19970424@users.noreply.github.com>

---------

Co-Authored-By: zph19970424 <51937136+zph19970424@users.noreply.github.com>
2024-12-29 16:10:13 +08:00
Alex chow
da5fde6b14 feat(BootstrapInputNumber): support NumberDecimalSeparator setting (#4983)
* feat(GenerateComponentType)#4982-Numeric-type-rendered

* Revert "feat(GenerateComponentType)#4982-Numeric-type-rendered"

This reverts commit 7309a0569f.

* feat(GenerateComponentType)#4982-Numeric-type-rendered

* refactor: 移动扩展方法

* test: 增加单元测试

---------

Co-Authored-By: Argo Zhang <argo@live.ca>
2024-12-29 12:12:14 +08:00
Argo Zhang
cc675fc063 test(Lookup): add Select/Display Lookup test (#4986)
* chore: bump version 9.2.0-beta02

Co-Authored-By: caics <caics.china@gmail.com>

* refactor: 重构代码

* refactor: 精简代码

* test: 增加单元测试

* test: 增加单元测试

* chore: bump version 9.2.0-beta02

---------

Co-authored-by: caics <caics.china@gmail.com>
2024-12-29 11:47:52 +08:00
Argo Zhang
471f29072b refactor(ILookup): extension method CreateDisplayByFieldType support ILookup (#4981)
* refactor: 增加自动生成参数赋值逻辑

* chore: bump version 9.2.0-beta01

Co-Authored-By: cetinbas <5260245+cetinbas@users.noreply.github.com>

* chore: bump version 9.2.0-beta02

---------

Co-authored-by: cetinbas <5260245+cetinbas@users.noreply.github.com>
2024-12-28 22:23:36 +08:00
Argo Zhang
4bc12aee00 refactor(ILookup): add GetItemsAsync extension method (#4979)
* refactor: 增加 ILookup 扩展方法 GetItemsAsync

* refactor: 使用扩展方法精简代码

* refactor: 利用扩展方法精简代码

* chore: bump version 9.2.0-beta02

Co-Authored-By: HUGO.CM <6092940+cm0201@users.noreply.github.com>

* chore: bump version 9.2.0-beta03

* refactor: Select 组件继承 ILooup

* refactor: 合并扩展方法

* refactor: 继承 ILookup 接口

* refactor: 移除不使用的方法

* refactor: 调整接口实现类

* test: 增加单元测试

* refactor: 移动扩展方法

---------

Co-authored-by: HUGO.CM <6092940+cm0201@users.noreply.github.com>
2024-12-28 22:00:22 +08:00
Argo Zhang
f25b5b92ed doc(Display): add LookupServiceKey sample code (#4977)
* chore: bump version 9.2.0

Co-Authored-By: dejian <1230173+dejian@users.noreply.github.com>

* doc: 更新 Display 使用 Lookup 示例

* test: 重构代码

* test: 代码重构

* refactor: 移除内部缓存

* test: 更新单元测试

---------

Co-authored-by: dejian <1230173+dejian@users.noreply.github.com>
2024-12-28 21:07:15 +08:00
Argo Zhang
b4da722da6 feat(Display): support Lookup service (#4975)
* feat: 增加 ILookup 接口

* refactor: 代码复用

* refactor: 调整参数顺序

* refactor: Display 支持 Lookup

* test: 增加单元测试

* chore: bump version 9.1.9-beta10

Co-Authored-By: Roman Gorodilov <KellsoHP@gmail.com>

* refactor: 代码规范化

* chore: bump version 9.2.0-beta01

---------

Co-authored-by: Roman Gorodilov <KellsoHP@gmail.com>
2024-12-28 15:20:34 +08:00
Argo Zhang
42b321e2a8 refactor(Select): reuse input composing function (#4971)
* chore: bump version 9.1.9-beta01

Co-Authored-By: SamXMG <53416733+SamXMG@users.noreply.github.com>

* refactor: 提高代码复用率

* refactor: 重构代码

* Revert "chore: bump version 9.1.9-beta01"

This reverts commit b9f6deb2b3.

# Conflicts:
#	src/BootstrapBlazor/BootstrapBlazor.csproj

---------

Co-authored-by: SamXMG <53416733+SamXMG@users.noreply.github.com>
2024-12-27 21:25:16 +08:00
Argo Zhang
b434bdb7f9 refactor(MeiliSearch): use search-dialog-icon match search icon (#4969)
* refactor: 更新依赖包 9.1.2

* style: 更新变量

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

* style: 增加 MeiliSearch 组件样式

* style: 调整搜索栏颜色

* chore: bump version 9.1.3

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

---------

Co-authored-by: Alex chow <zhouchuanglin@gmail.com>
2024-12-27 12:27:37 +00:00
Argo Zhang
ff8d775e50 doc(MeiliSearch): update meilisearch component (#4966)
* chore: 更新依赖

* style: 更新样式

* doc: 更新本地化文本

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>
Co-Authored-By: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
Co-Authored-By: Frost Autumn <78307204+XUEWUQIUSHUANG@users.noreply.github.com>
2024-12-27 06:17:04 +00:00
Argo Zhang
d56df663ce refactor(MeiliSearch): add meili search style (#4963)
* chore: bump version 9.1.9

Co-Authored-By: SuperPigBlog <15785931+SuperPigBlog@users.noreply.github.com>

* chore: bump version 9.1.9-beta11

* doc: 增加本地化

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

* chore: 集成 MeiliSearch 样式

Co-Authored-By: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
Co-Authored-By: Frost Autumn <78307204+XUEWUQIUSHUANG@users.noreply.github.com>

---------

Co-authored-by: SuperPigBlog <15785931+SuperPigBlog@users.noreply.github.com>
Co-authored-by: Alex chow <zhouchuanglin@gmail.com>
Co-authored-by: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
Co-authored-by: Frost Autumn <78307204+XUEWUQIUSHUANG@users.noreply.github.com>
2024-12-27 05:56:03 +00:00
Argo Zhang
9d8fddbabe feat(Drawer): add Component parameter on DrawerOption (#4964)
* feat: 增加 Component 参数

* test: 更新单元测试

Co-Authored-By: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
Co-Authored-By: Frost Autumn <78307204+XUEWUQIUSHUANG@users.noreply.github.com>
Co-Authored-By: ice6 <889040+ice6@users.noreply.github.com>

* test: 更新单元测试

Co-Authored-By: Alex chow <zhouchuanglin@gmail.com>

---------

Co-authored-by: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
Co-authored-by: Frost Autumn <78307204+XUEWUQIUSHUANG@users.noreply.github.com>
Co-authored-by: ice6 <889040+ice6@users.noreply.github.com>
Co-authored-by: Alex chow <zhouchuanglin@gmail.com>
2024-12-27 05:50:11 +00:00
Argo Zhang
ee332f1bc7 doc(TreeView): update skeleton documentation (#4960)
* chore: bump version 9.1.9-beta12

Co-Authored-By: Tony Guo <4440534+TonyGuo16@users.noreply.github.com>

* doc: 更新骨架屏说明

* doc: 更新示例代码

* chore: bump version 9.1.9-beta11

* chore: bump version 9.1.9-beta10

---------

Co-authored-by: Tony Guo <4440534+TonyGuo16@users.noreply.github.com>
2024-12-26 19:52:18 +08:00
Argo Zhang
9bf6c46cff doc(ExportPdfButton): update export sample code (#4958)
* chore: bump version 9.1.9-beat11

Co-Authored-By: vickyhcq <16112316+vickyhcq@users.noreply.github.com>

* doc: 更新示例文档

* refactor: 移除内置样式

* doc: 增加样式设置示例

* revert: 撤销更新

* chore: bump version 9.1.9-beta10

---------

Co-Authored-By: vickyhcq <16112316+vickyhcq@users.noreply.github.com>
2024-12-26 16:32:07 +08:00
Argo Zhang
04c56ccda0 feat(Html2Pdf): add disable web security config (#4957)
* chore: bump version 9.1.9-beta10

Co-Authored-By: 王雪飞 <909149916@qq.com>

* doc: 增加图标支持

* chore: 更新 Html2Pdf 依赖到 9.0.1

---------

Co-Authored-By: 王雪飞 <909149916@qq.com>
2024-12-26 07:51:26 +00:00
Argo Zhang
a24bfe5d38 refactor(TreeView): update clear cache logic (#4955)
* chore: bump version 9.1.9-beta06

Co-Authored-By: XiaoChenDan <65062136+XiaoChenDan@users.noreply.github.com>

* refactor: 更改方法名称

* refactor: 增加父节点赋值操作

* style: 增加定位样式

* revert: 恢复滚动脚本

* chore: 更新注释

* fix: 修复状态不同步问题

* chore: bump version 9.1.9-beta09

---------

Co-authored-by: XiaoChenDan <65062136+XiaoChenDan@users.noreply.github.com>
2024-12-26 05:10:50 +00:00
Argo Zhang
ac8b12d268 refactor(TreeView): redesign TreeNode state cache (#4953)
* chore: bump version 9.19-beta04

Co-Authored-By: Sunny <53289193+yhuse@users.noreply.github.com>

* chore: bump version 9.19-beta07

* fix: 修复 scrollTo 语法错误

* refactor: 重构代码

* doc: 更新注释

* doc: 更新示例

* doc: 更新大小写

* doc: 增加追加节点示例

* feat: 移除缓存机制

* doc: 增加 Add Note 示例代码

* doc: 更新手风琴效果示例代码

* doc: 更新 Icon 示例

* doc: 更新 Click 展开节点示例

* doc: 更新表单示例

* refactor: 精简代码

* doc: 更新模板示例

* doc: 删除自定义节点示例

* refactor: 更新 Color 示例

* doc: 更新示例

* test: 更新单元测试

* chore: bump version 9.1.9-beta08

* test: 增加单元测试

* perf: 优化性能

---------

Co-authored-by: Sunny <53289193+yhuse@users.noreply.github.com>
2024-12-26 11:14:54 +08:00
Argo Zhang
5c7e3801b7 refactor(TableExport): upgrade version 9.0.1 (#4951)
* chore: bump version 9.1.9-beta07

* chore: bump version 9.0.1

* chore: bump version beta06

Co-Authored-By: zhouqi <3365528+zhouqime@users.noreply.github.com>

---------

Co-authored-by: zhouqi <3365528+zhouqime@users.noreply.github.com>
2024-12-25 19:18:34 +08:00
Argo Zhang
7faa6e2e26 refactor(TreeView): add Obsolete attribute (#4949)
* chore: bump version 9.19-beta07

Co-Authored-By: jin momiji <105467851+momijijin@users.noreply.github.com>

* refactor: 增加已弃用标记

---------

Co-authored-by: jin momiji <105467851+momijijin@users.noreply.github.com>
2024-12-25 10:27:25 +00:00
Argo Zhang
b620da2c25 refactor(TreeView): support Search function (#4944)
* chore: bump version 9.19-beta07

Co-Authored-By: AApuci <44996451+AApuci@users.noreply.github.com>

* doc: 更新搜索示例代码

* doc: 移除扁平化数据源示例

* refactor: 重构 ToFlat 返回值数据结构

* refactor: 重构搜索数据集逻辑

* doc: 更新搜索示例

* refactor: 更改搜索设计

* refactor: 更新滚动脚本

* refactor: 移除 IsReset 参数

* refactor: 更新示例

* refactor: 更新 TreeView 单元测试

* test: 更新 Table 单元测试

* test: 更新 SelectTree 单元测试

* revert: 撤销更新

* test: 更新单元测试

---------

Co-authored-by: AApuci <44996451+AApuci@users.noreply.github.com>
2024-12-25 12:25:09 +08:00
Argo Zhang
0a2a09190d doc(SelectTable): update ValidateForm sample code (#4947)
* chore: bump version 9.1.9-beta07

Co-Authored-By: luodaoyi <luodaoyi@gmail.com>

* fix: add Required attribute

---------

Co-authored-by: luodaoyi <luodaoyi@gmail.com>
2024-12-25 12:07:05 +08:00
Argo Zhang
1195d0a65c fix(DockView2): fix ShowPin not work (#4941)
bump version 9.0.2

---------

Co-authored-by: chengKun <49547008+zhaijunlei955@users.noreply.github.com>
2024-12-24 16:33:01 +08:00
Argo Zhang
ccdc9ae297 refactor(Table): Lookup on TableColumn not work (#4940)
* chore: bump version 9.19-beta06

* feat: 增加 Lookup 支持

Co-Authored-By: Ernesto Ramos Rio <eramosr14@gmail.com>

* refactor: 精简参数

Co-Authored-By: Ernesto Ramos Rio <eramosr14@gmail.com>

* refactor: 重构代码

Co-Authored-By: Ernesto Ramos Rio <eramosr14@gmail.com>

---------

Co-authored-by: Ernesto Ramos Rio <eramosr14@gmail.com>
2024-12-24 15:49:55 +08:00
Argo Zhang
d123c742b2 feat(FieldIdentifier): add GetRequiredValidator extension method (#4937)
* refactor: 代码重构

* chore: bump version 9.1.9-beta05

Co-Authored-By: Ocrosoft <ocrosoft@ocrosoft.com>

* test: 增加单元测试

* refactor: 更新必填项验证逻辑

Co-Authored-By: Ocrosoft <ocrosoft@ocrosoft.com>

* refactor: 利用基类方法精简代码

* refactor: 增加 GetRequiredValidator 扩展方法

* refactor: 支持 DateTimeRangeValue 合规性检查

* test: 增加必填项约束

* test: 更新单元测试

* test: 更新单元测试

* doc: 更新示例

---------

Co-authored-by: Ocrosoft <ocrosoft@ocrosoft.com>
2024-12-24 15:10:56 +08:00
Argo Zhang
d651d08c32 refactor(Table): table display value use LookupService (#4935)
* refactor: 增加 LookupContent 组件

* fix: 修复 Table 显示值未使用 LookupService 问题

* chore: bump version 9.1.9-beta04

Co-Authored-By: Silver <63774265+StevenBase@users.noreply.github.com>

* chore: bump version 9.19-beta03

Co-Authored-By: Silver <63774265+StevenBase@users.noreply.github.com>

---------

Co-authored-by: Silver <63774265+StevenBase@users.noreply.github.com>
2024-12-24 11:57:26 +08:00
AiZhen
4059dc2bf9 feat(TableFilter): add @ keyword (#4932)
* 修复 LookupFilter 组件属性 LookupServiceKey 赋值为 Column.LookupServiceKey 字符串问题。

* chore: bump version 9.1.9-beta03

Co-Authored-By: AiZhen <53560110+AiYuZhen@users.noreply.github.com>
Co-Authored-By: Chason <yuchen7701@foxmail.com>

---------

Co-authored-by: Argo Zhang <argo@live.ca>
Co-Authored-By: Chason <yuchen7701@foxmail.com>
2024-12-24 11:49:59 +08:00
Argo Zhang
a1e4a1a5fa feat(TreeView): add SetItems instance method (#4934)
* chore: bump version 9.1.9-beta02

* refactor: 移除 IsReset 参数

Co-Authored-By: Chason <yuchen7701@foxmail.com>

* refactor: SelectTree 组件移除 IsReset 参数

Co-Authored-By: Chason <yuchen7701@foxmail.com>

* refactor: 更改私有属性为私有变量

Co-Authored-By: Chason <yuchen7701@foxmail.com>

* Revert "refactor: SelectTree 组件移除 IsReset 参数"

This reverts commit ac16979ee4.

* Revert "refactor: 移除 IsReset 参数"

This reverts commit a5eed01d35.

* chore: 移除宏定义

Co-Authored-By: Chason <yuchen7701@foxmail.com>

* refactor: 增加 IsReset 支持

* feat: 增加 SetItems 方法

Co-Authored-By: Chason <yuchen7701@foxmail.com>

* refactor: 临时移除 FlatItems

* test: 增加单元测试

---------

Co-authored-by: Chason <yuchen7701@foxmail.com>
2024-12-24 11:01:15 +08:00
Argo Zhang
3d2bbffc91 refactor(TreeView): add FlatItems parameter (#4930)
* refactor: 更改扩展文件名

Co-Authored-By: Lukaß Zhang <lekco_1320@qq.com>

* refactor: 利用扩展方法精简代码

Co-Authored-By: Lukaß Zhang <lekco_1320@qq.com>

* doc: 增加 FlatItems 示例

* refactor: 临时移除 IsReset 参数逻辑

* chore: bump version 9.1.9-beta01

Co-Authored-By: Lukaß Zhang <lekco_1320@qq.com>

---------

Co-Authored-By: Lukaß Zhang <lekco_1320@qq.com>
2024-12-24 08:47:57 +08:00
Argo Zhang
5ca7516782 feat(Select): support Items from LookupService (#4928)
* feat(Select): support inject LookupService

Co-Authored-By: Diego2098 <82756760+kimdiego2098@users.noreply.github.com>

* test: 更新单元测试

Co-Authored-By: Diego2098 <82756760+kimdiego2098@users.noreply.github.com>

* test: 增加单元测试

* chore: bump version 9.1.8

* test: 更新单元测试

---------

Co-Authored-By: Diego2098 <82756760+kimdiego2098@users.noreply.github.com>
2024-12-23 14:22:51 +08:00
Argo Zhang
29bb8a0ba7 feat(Table): render tooltip support LookupService GetItemByKeyAsync (#4926)
* refactor: 复用 IsLookup 扩展方法

Co-Authored-By: ZhYan <19183404+Axxbis@users.noreply.github.com>

* refactor: 表格支持 Lookup 异步获取数据

* refactor: Tooltip 支持异步 Lookup

* refactor: 增加 Lookup 异步支持

Co-Authored-By: ZhYan <19183404+Axxbis@users.noreply.github.com>

* test: 更新单元测试

Co-Authored-By: ZhYan <19183404+Axxbis@users.noreply.github.com>

* refactor: 代码重构

---------

Co-Authored-By: ZhYan <19183404+Axxbis@users.noreply.github.com>
2024-12-23 14:08:33 +08:00
Lukaß Zhang
8de9a2ef8e doc(Table): add explain of binding complex object (#4922)
Co-Authored-By: Argo Zhang <argo@live.ca>
2024-12-23 12:15:34 +08:00
Argo Zhang
43509287a1 feat(Display): support LookupService method GetItemsByKeyAsync (#4924)
* refactor: 重构代码

Co-Authored-By: chengKun <49547008+zhaijunlei955@users.noreply.github.com>

* refactor: 重构 Display 代码

更新 Lookup 逻辑

Co-Authored-By: chengKun <49547008+zhaijunlei955@users.noreply.github.com>

* test: 增加单元测试

---------

Co-Authored-By: chengKun <49547008+zhaijunlei955@users.noreply.github.com>
2024-12-23 11:59:25 +08:00
Argo Zhang
ece22077f0 chore(Deploy): add deploy script (#4921)
* chore: 增加证书

* chore: 增加部署脚本

* chore: 更新 nginx 配置

* chore: 更新解决方案

* chore: 更新部署脚本

Co-Authored-By: Mr Lu <16606743+tiansfather@users.noreply.github.com>

* refactor: 更新脚本

---------

Co-authored-by: Mr Lu <16606743+tiansfather@users.noreply.github.com>
2024-12-22 20:33:03 +08:00
Argo Zhang
d967b4184d feat(Compact): add DevUI compact style file (#4919)
* refactor: 改造主题选择器

* refactor: 更新样式

* chore: 更新依赖

* style: 样式参数变量化

* style: 更新样式

* style: 更新组件样式变量

* style: 调整组件样式变量

* chore: 更新依赖包

* style: 更新 Display 组件样式

* style: 调整组件样式

* style: 增加日历组件样式

* style: 更新多选下拉框样式

* style: 更新 radio-list 样式

* refactor: 重构脚本

* chore: 更新配置文件

Co-Authored-By: YSMC <15371924+YSMC-W@users.noreply.github.com>

---------

Co-authored-by: YSMC <15371924+YSMC-W@users.noreply.github.com>
2024-12-22 17:02:00 +08:00
Argo Zhang
b99def5945 doc(CodeEditor): remove dependence of CodeEditor (#4917)
* style: 增加 100% 宽度样式

* Revert "style: 增加 100% 宽度样式"

This reverts commit 49142c1070.

* refactor: 移除 CodeEditor 组件包

Co-Authored-By: j4587698 <24642446+j4587698@users.noreply.github.com>

---------

Co-authored-by: j4587698 <24642446+j4587698@users.noreply.github.com>
2024-12-22 16:34:34 +08:00
Argo Zhang
1934423681 refactor(EditForm): remove lookup service second render (#4914)
* doc: 代码格式化

Co-Authored-By: A5196060 <166673003+A5196060@users.noreply.github.com>

* refactor: 移除 ef-loading 节点

Co-Authored-By: ZhYan <19183404+Axxbis@users.noreply.github.com>
Co-Authored-By: A5196060 <166673003+A5196060@users.noreply.github.com>

* chore: bump version 9.1.7

bump version 9.1.7

Co-Authored-By: MadLongTom <36219016+MadLongTom@users.noreply.github.com>

---------

Co-authored-by: A5196060 <166673003+A5196060@users.noreply.github.com>
Co-authored-by: ZhYan <19183404+Axxbis@users.noreply.github.com>
Co-authored-by: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
2024-12-22 11:12:18 +08:00
A5196060
6832424627 doc(Safari): add theme color for safari on mac (#4909)
* doc: 增加主题色

* refactor: 更新颜色

* refactor: 更新位置

* refactor: 变量名变更

* refactor: 重构代码

* refactor: 调整可为空

---------

Signed-off-by: A5196060 <166673003+A5196060@users.noreply.github.com>
Co-authored-by: A5196060 <166673003+A5196060@users.noreply.github.com>
Co-authored-by: Argo-AsicoTech <argo@live.ca>
Co-authored-by: j4587698 <zhuce@jvxiang.com>
Co-authored-by: Mr Lu <ghi.ghi@163.com>
2024-12-21 22:50:46 +08:00
Argo Zhang
eac7530964 doc(RadioListGeneric): update sample code (#4912)
* doc(Safari): 更新标题栏颜色设置

* refactor: 精简代码

* refactor: 重构代码消除警告信息

* doc: 精简代码

* doc: 更新宽度

* doc: 格式化代码

* doc: 更新资源文件

* refactor: 更新示例代码
2024-12-21 21:56:08 +08:00
A5196060
72398af680 feat(RadioListGeneric): implement RadioListGeneric component (#4908)
* feat: 更新逻辑

* refactor: 重构组件

* doc: 增加示例

* doc: 更新 CheckboxList 示例

* doc: 更新 RadioList 示例

* feat: 增加 Value 逻辑

* test: 增加单元测试

* chore: bump version 9.1.6

---------

Co-authored-by: Argo Zhang <argo@live.ca>
Co-authored-by: A5196060 <5196060@qq.com>
Co-authored-by: j4587698 <zhuce@jvxiang.com>
Co-authored-by: Mr Lu <ghi.ghi@163.com>
2024-12-21 20:20:11 +08:00
Mr Lu
3c4cc8e7d3 feat(RadioListGeneric): support generic SelectedItem (#4859)
* Update ITableColumnExtensions.cs

* Update ITableColumnExtensions.cs

* refactor: 增加 Key 关键字

* feat: 增加 CheckboxGeneric 组件

* refactor: 更新泛型 CheckboxList 组件

* doc: 更新示例文档

* test: 增加单元测试

* feat: 增加 CheckboxListGeneric 组件

* test: 增加单元测试

* refactor: 精简代码

* revert: 撤销更新

* refactor: 增加可为空标记

* feat: 增加 RadioListGeneric 组件

---------

Co-authored-by: 卢骥 <1429614920@qq.com>
Co-authored-by: Argo Zhang <argo@live.ca>
Co-authored-by: chengKun <49547008+zhaijunlei955@users.noreply.github.com>
Co-authored-by: Frost Autumn <78307204+XUEWUQIUSHUANG@users.noreply.github.com>
Co-authored-by: Diego2098 <82756760+kimdiego2098@users.noreply.github.com>
Co-authored-by: Silver <63774265+StevenBase@users.noreply.github.com>
Co-authored-by:  j4587698 <jx@jvxiang.com>
2024-12-21 11:43:58 +08:00
Argo Zhang
3cf0a8f8c2 feat(CheckboxListGeneric): add CheckboxListGeneric component (#4905)
* refactor: 增加 Key 关键字

* feat: 增加 CheckboxGeneric 组件

* refactor: 更新泛型 CheckboxList 组件

* doc: 更新示例文档

* test: 增加单元测试

* feat: 增加 CheckboxListGeneric 组件

* test: 增加单元测试
2024-12-21 10:40:54 +08:00
Argo Zhang
abb4b5ae36 doc(MeiliSearch): add auto close dialog when click empty list (#4903)
* doc: 优化移动端搜索栏宽度

* chore: 更新依赖包

* chore: bump version 9.0.10


Co-authored-by: chengKun <49547008+zhaijunlei955@users.noreply.github.com>
Co-authored-by: Frost Autumn <78307204+XUEWUQIUSHUANG@users.noreply.github.com>
2024-12-20 13:17:08 +08:00
Argo Zhang
168fc7cab8 refactor(Select): move LookupService parameter to Select (#4901)
Co-authored-by: chengKun <49547008+zhaijunlei955@users.noreply.github.com>
Co-authored-by: Frost Autumn <78307204+XUEWUQIUSHUANG@users.noreply.github.com>
2024-12-20 12:45:25 +08:00
Argo Zhang
efb2508ee3 feat(Select): add LookupService parameter (#4898)
* refactor: 增加 LookupService 扩展方法

* refactor: 增加 LookupService 参数

* feat: 增加扩展方法

* feat: 支持 LookupService 服务

* test: 提高代码覆盖率

* refactor: 增加 LookupService 支持

* feat: 增加 Select 组件对 LookupService 自动赋值逻辑
2024-12-20 11:49:07 +08:00
Diego2098
c4901f2c87 fix(TreeView): reset Items to null (#4894)
* TreeView 修复 IsReset 为false时,Items变化后无法正常刷新

* refactor: support Items null

* feat: support null items

* test: 增加单元测试

* revert: 撤销代码更改

---------

Co-authored-by: Argo-AsicoTech <argo@live.ca>
2024-12-19 18:16:23 +08:00
Argo Zhang
f11bd8e3a5 feat(TableColumn): remove Formatter on TableColumn (#4892)
* refactor: 移除列格式化操作日志

* doc: 更新示例

* test: 更新单元测试

* refactor: 精简逻辑

* test: 更新单元测试

* refactor: 删除冗余代码

* test: 更新单元测试

* revert: 撤销更新文档

* doc: 更新示例

* doc: 精简代码

* refactor: 精简代码

* refactor: 移除可为空标记

* refactor: 代码重构

* refactor: 支持异步 Formatter 方法

* refactor: 撤销代码更改

* doc: 更新示例

* refactor: 撤销代码更改

* refactor: 精简代码

* test: 更新单元测试
2024-12-19 17:23:14 +08:00
Argo Zhang
7de5f7e12c fix(TableColumn): GetTooltipTextCallback not work (#4893)
* Revert "fix(ITableColumn): add GetTooltipText method (#4889)"

This reverts commit 06ed5f019b.

* feat: 增加 GetTitleCallback 参数
2024-12-19 15:15:17 +08:00
Argo Zhang
e3a154549f refactor(LookupService): add cache logic for LookupService sample (#4891)
* refactor: Lookup 服务示例改为异步

* doc: 更新 Lookup 示例
2024-12-19 10:23:24 +08:00
Argo Zhang
06ed5f019b fix(ITableColumn): add GetTooltipText method (#4889)
* doc: 代码格式化

* refactor: 增加 GetTooltipText 属性

* doc: 更新示例

* test: 更新单元测试

* refactor: 消除警告信息

* test: 提高代码覆盖率

* refactor: 重构代码

* doc: 更新文档

* doc: 更新文档
2024-12-19 09:41:39 +08:00
Argo Zhang
578c40460d feat(GotoTop): add ScrollBehavior parameter (#4885)
* feat: 增加 ScrollIntoViewBehavior 参数

* refactor: 更改参数名称

* test: 增加单元测试

* chore: bump version 9.1.6-beta03

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试
2024-12-18 11:25:25 +00:00
Argo Zhang
36aa43dbf0 feat(GotoTop): support IsFixedTabHeader layout component (#4883)
* refactor: 更改获得 Target 参数方法

* feat: GotoTop 支持 Layout 固定标签页

* chore: bump version 9.1.6-beta02

---------

Co-authored-by: yuchen7701 <844356115@qq.com>
Co-authored-by: 卢骥 <1429614920@qq.com>
2024-12-18 15:30:02 +08:00
Argo Zhang
e332b1446f feat(SelectTable): support auto fill when collapse search panel (#4881)
* refactor: 重构脚本

* chore: bump version 9.1.6-beta01
2024-12-18 06:58:03 +00:00
Argo Zhang
52d30adc2c doc(CodeSnippetService): update code file path (#4877)
* doc: 更改程序集名称

* doc: 微调倒计时时长
2024-12-18 10:23:06 +08:00
Chason
d4f3675ea5 doc(Table): update bind-Items documentation (#4870)
增加 Table 内置编辑使用说明

Co-authored-by: yuchen7701 <844356115@qq.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2024-12-18 01:13:40 +00:00
Argo Zhang
1c48683d9e doc(SearchBox): add SearchableColumns parameter (#4875)
* feat: 增加 SearchableColumns 参数设置

* chore: 更新组件包 9.0.8

* chore: 更新单元测试依赖包
2024-12-18 09:02:20 +08:00
Mr Lu
a7042984a9 feat(SelectTree): add IsReset parameter (#4863)
Co-authored-by: 卢骥 <1429614920@qq.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2024-12-17 04:47:29 +00:00
Argo Zhang
6068e0edba chore(Build): update the default value of framework (#4869) 2024-12-17 04:44:51 +00:00
Argo Zhang
def16c13fd fix(Layout): layout main overflow when set IsFullSide to false (#4866)
* style: 更新 layout-main 宽度样式

* chore: bump version 9.1.5
2024-12-17 04:38:12 +00:00
Argo Zhang
d86c07799f fix(Layout): content overflow (#4860)
* fix: 修复 layout-main 内容溢出问题

* chore: bump version 9.1.5-beta01
2024-12-16 15:53:07 +08:00
Argo Zhang
b51c8adf93 refactor(Isolation): update dependce pacakge remove css isolation (#4858)
* refactor: 修正资源文件键值

* doc: 增加源码链接

* test: 精简代码

* doc: 更新关键字

* doc: 更正大小写问题

* refactor: 重命名扩展方法类

* chore: 更新依赖包

* refactor: 调整 Header z-index 兼容 winbox

* chore: 更新 SvgEditor 包

* chore: 更新 gantt 依赖包

* chore: 更新 MeiliSearch 依赖包

* chore: 更新 MouseFollower 包

* chore: 更新 Live2D 组件包

* chore: 更新 CodeEditor 组件包
2024-12-16 14:12:34 +08:00
Argo Zhang
a905bd92a1 refactor(Auto): remove auto mode (#4854)
* chore: 移除 auto 代码

* refactor: 移除 wasm 代码

* test: 更新单元测试

* test: 更新单元测试

* doc: 更新静态资源路径

* refactor: 精简代码
2024-12-16 09:18:47 +08:00
Argo Zhang
a759930efa refactor(Select): auto load data on virtual mode (#4852)
* refactor: 修复首次加载问题

* test: 更新单元测试

* chore: bump version 9.1.4
2024-12-15 11:14:36 +08:00
Argo Zhang
8b246b8960 fix(Select): can not switch Value when data type is SelectedItem on Virtual mode (#4850)
* fix: 修复虚拟数据无法切换数据问题

* test: 更新单元测试

* refactor: 精简代码

* Revert "refactor: 精简代码"

This reverts commit 114d3ad268.

* refactor: 重构代码

* test: 更新单元测试
2024-12-14 19:40:09 +08:00
Argo Zhang
c673833c96 fix(Dropdown): not show dropdown menu after toggle IsDisabled parameter (#4848)
* fix: 修复切换禁用状态后无法弹出下拉框问题

* chore: bump version 9.1.3

* feat: 增加 Item 禁用样式

* test: 增加单元测试

* refactor: 更改禁用样式

* test: 更新单元测试

* refactor: 同步代码

* test: 更新单元测试

* test: 更新单元测试

---------

Signed-off-by: Argo Zhang <argo@live.ca>
2024-12-14 18:34:23 +08:00
Argo Zhang
24fc677768 fix(Select): add composition support (#4847)
* refactor: 复用搜索栏

* refactor: 更改搜索回调未客户端

* fix: 修复汉字导致搜索高频触发问题
2024-12-14 18:00:22 +08:00
Argo Zhang
f96b8276f4 feat(SelectGeneric): add SelectGeneric component (#4846)
* feat: 增加 SelectGeneric 组件

* test: 增加单元测试

* chore: bump version 9.1.3-beta08

* fix: 修复禁用后无法展开下拉框问题

* feat: 增加 Item 禁用样式

* test: 增加单元测试
2024-12-14 18:00:02 +08:00
Argo Zhang
41dbb19510 chore(Select): revert Select component update (#4844)
* refactor: 增加级联参数

* doc: 更新示例文档

* doc: 更改示例文件名

* doc: 增加原 Select 组件文档

* test: 增加 SelectGeneric 组件单元测试

* revert: 撤销忽略单元测试标签

* revert: 撤销单元测试更新

* revert: 恢复支持泛型逻辑

* test: 更新单元测试

* refactor: 更改可见性

* refactor: 移动组件到独立包

* chore: bump version 9.1.3-beta07

* revert: 撤销泛型更改
2024-12-13 20:26:26 +08:00
Argo Zhang
56e8e7497f doc(TableSearch): update search documentation (#4840)
* doc: update search document

* refactor: 重构 SelectedRow
2024-12-13 12:58:21 +08:00
Argo Zhang
a46e51d34e feat(SelectGeneric): add SelectGeneric component (#4838)
* refactor: 重构 SelectedItem 增加构造函数

* refactor: 移动 SelectedItem 到子类

* refactor: 精简代码移除 SingleSelectBase 类

* refactor: 改造 SelectedItem 泛型

* feat: 增加 SelectGeneric 组件

* feat: 增加 ToSelectList 泛型扩展方法

* refactor: 改造 Select 组件移除对泛型的支持

* doc: 更新泛型 Select 组件示例

* test: 更新单元测试

* test: 更新单元测试

* refactor: 增加排除标签

* chore: bump version 9.1.3-beta06

* test: 增加单元测试

* test: 更新单元测试

* test: 增加 Display 单元测试

* test: 更新 Select 单元测试

* refactor: 更新 SelectGeneric 值不存在时的逻辑
2024-12-13 12:26:54 +08:00
Argo Zhang
a21ae6a769 doc(Global): update global option document (#4836)
* doc: 代码格式化

* doc: 更新 ColumnMinWidth 说明文档

* doc: 更新 DisableAutoSubmitFormByEnter 参数说明
2024-12-13 11:18:13 +08:00
Argo Zhang
8789e58f04 feat(TreeView): add cache for tree rows (#4833)
* doc: 代码格式化

* refactor: 精简代码提高 Items 性能

* refactor: Reset 清缓存
2024-12-12 07:33:23 +00:00
Mr Lu
3ede666c3c feat(SelectTree): support async Items as data source (#4827)
* Update SelectTree.razor.cs

* Update SelectTree.razor.cs

---------

Co-authored-by: 卢骥 <1429614920@qq.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2024-12-12 14:31:27 +08:00
Argo Zhang
10ed4b3be2 refactor(JSModule): remove throw keyword (#4831) 2024-12-12 06:28:18 +00:00
Argo Zhang
3f84e940b2 refactor(SelectTree): update IEnumerable to List (#4829) 2024-12-12 06:20:01 +00:00
Argo Zhang
c42a34b33b fix(TryConvertTo): add CurrentCulture parameter (#4820)
* style: 调整样式

* fix: 转换增加当前文化信息

* refactor: 增加文化信息

* refactor: 更新文化信息

* chore: bump version 9.1.3-beta05
2024-12-11 18:59:53 +08:00
Argo Zhang
375d4a2055 feat(Split): add SetLeftWidth method (#4818)
* feat: 增加 SetLeftWidth 方法

* chore: 增加脚本支持

* doc: 更新文档

* doc: 增加本地化

* test: 增加单元测试

* chore: bump version 9.1.3-beta04
2024-12-11 14:43:55 +08:00
Argo Zhang
4dde0d5e3a fix(Table): not trigger OnAfterCancelSaveAsync on EditForm/InCell mode (#4817)
* fix: 修复 EditForm/InCell 模式下未触发 OnAfterCancelSaveAsync 回调问题

* chore: bump version 9.1.3-beta03

* test: 更新单元测试
2024-12-11 00:52:44 +00:00
Argo Zhang
dc943bbb53 feat(ILookupService): add GetItemsByKeyAsync method (#4816)
* refactor: 增加 GetItemsByKeyAsync 方法

* refactor: 增加 GetItemsAsync 扩展方法

* refactor: 改造 Lookup 使用方法支持异步方法

* refactor: IEditorItem 增加 LookupService 属性

* refactor: 改造 EditorForm 支持异步字典

* refactor: 改造 LookupFilter 支持异步 Lookup

* test: 跟新 EditorForm 单元测试支持异步 Lookup

* test: 更新单元测试支持异步 Lookup

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试

* test: 更新 EditorForm 单元测试

* test: 更新单元测试

* test: 增加单元测试

* chore: bump version 9.1.3-beta02
2024-12-10 19:03:24 +08:00
Argo Zhang
a85cd0c9f4 doc(Editor): add sample code for GetCode method (#4813)
* chore: 更新 Editor 依赖包

* doc(Editor): 增加直接代码获得组件内容方法
2024-12-10 04:45:26 +00:00
Argo Zhang
1aa380d004 chore(Config): update project toolchain (#4811)
* chore: 移除 wasn 脚本

* chore: 更新 bug 模板

* chore: 更新部署脚本

* chore: 更新 nginx 配置文件

* chore: 移除 wasm 脚本
2024-12-10 10:33:29 +08:00
Argo Zhang
8b9a4a8da0 fix(DialogCloseButton): missing theme button icon (#4809)
* fix(DialogCloseButton): 修复丢失 Icon 问题

* chore: bump version 9.1.3-beta01

* test: 补充单元测试

* test: 更新单元测试
2024-12-10 02:09:08 +00:00
Argo Zhang
efc7c4af33 refactor(Layout): update layout right style (#4807)
* refactor: 更新 layout-right 样式

* chore: bump version 9.1.2
2024-12-09 18:43:52 +08:00
Silver
7fd4a8eaa5 doc(PrintButton): update document of PrintButton (#4799)
* Update zh-CN.json

Correct DialogService to PrintService

Signed-off-by: Silver <63774265+StevenBase@users.noreply.github.com>

* doc: 更新英文资源文件

---------

Signed-off-by: Silver <63774265+StevenBase@users.noreply.github.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2024-12-08 18:58:26 +08:00
Argo Zhang
1972c70283 fix(Layout): update layout-menu style (#4803)
* fix: 固定侧边栏菜单高度

* doc: 更新示例

* doc: 更新样式

* style: 更新侧边栏菜单高度样式
2024-12-08 05:49:42 +00:00
Argo Zhang
4801b7bb5f feat(Layout): update IsFixedTab style (#4801)
* refactor: 移除 100% 样式

* refactor: 更新 Layout 样式

* doc: 更新 Menu 组件
2024-12-08 11:55:40 +08:00
Argo Zhang
f0302eed14 fix(Select): not render UI sometime (#4798)
* refactor: 增加 Row 变量负责 UI 显示数据

* refactor: 增加缓存清空逻辑

* refactor: 增加回车键功能改造

* refactor: 移除 _dataSource 变量

* refactor: 移除不使用的方法

* refactor: 重构搜索逻辑

* test: 更新单元测试

* refactor: 增加私有变量缓存上次虚拟条目结果

* test: 更新单元测试

* chore: bump version 9.1.1
2024-12-07 15:28:52 +08:00
Argo Zhang
caa0a52f02 doc(WebsiteOptions): remove WasmUrl parameter (#4796)
* chore: 精简 WebsiteOptions 参数

* chore: 增加配置文件
2024-12-07 10:36:13 +08:00
Argo Zhang
9493604b5c doc(Icon): remove IconList component (#4793)
* chore: 更新依赖包

* doc: 移除 AntDesign 图标列表

* doc: 增加示例

* doc: 移除 ElementIcon 列表组件

* doc: 移除 FAIconList 组件

* doc: 移除 IconParkList 组件

* doc: 增加 MDI 图标使用示例

* doc: 增加本地化
2024-12-06 06:56:00 +00:00
Argo Zhang
1079c49574 feat(Modal): update form-footer style (#4791) 2024-12-06 05:53:38 +00:00
Argo Zhang
cbc7c4b9fa doc(Theme): update event handler the float theme button (#4789) 2024-12-05 01:12:44 +00:00
Argo Zhang
902e266c57 bug(EditDialog): trigger OnCloseAsync callback twice (#4787)
* refactor: 移除基类方法调用

* refactor: 移除 IJSRuntime 注入服务

* doc: 更新文档

* chore: 更新 auto 文件夹

* revert: 撤销更改

* refactor: 单独响应 OnCloseAsync 参数

* refactor: 修复关闭触发两次问题

* chore: 更新目录结构

* test: 更新单元测试

* revert: 撤销更改

* Revert "refactor: 单独响应 OnCloseAsync 参数"

This reverts commit e25a10dd2c.

* Revert "test: 更新单元测试"

This reverts commit 0634cc1b1a.

* refactor: 重构扩展方法修复触发两次 Close 回调问题

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试
2024-12-05 08:44:21 +08:00
Ocrosoft
2be33264a5 fix(MultiSelect): add StateHasChanged when call SetValue (#4781)
* fix(MultiSelect): add StateHasChanged to fix the issue where the component may not refresh

* Revert "fix(MultiSelect): add StateHasChanged to fix the issue where the component may not refresh"

This reverts commit a376e1502a.

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2024-12-04 14:27:40 +08:00
Argo Zhang
27d61ba14e doc(Auto): update Auto mode (#4785)
* refactor: 增加 ImportMap

* refactor: 更新依赖工程

* refactor: 重构服务注册

* refactor: 同步服务

* refactor: 重构代码

* refactor: 复用服务端服务

* chore: 删除不使用的资源文件

* chore: 删除 StaticFileResponseContextExtensions 扩展

* chore: 删除配置文件

* chore: 增加同步脚本

* chore: 精简配置文件

* chore: 增加忽略文件

* chore: 移除网站图标

* chore: 增加同步网站图标脚本

* chore: 更新全局命名空间

* chore: 更新忽略文件

* chore: 更新配置文件

* chore: api 接口复用

* chore: 增加配置文件

* chore: 移除指定版本号配置

* refactor: 删除 JSRuntime 扩展

* refactor: 重构本地化下拉框

* chore: Client 模式支持本地化

* chore: 增加脚本

* revert: 撤销配置更改
2024-12-04 14:25:26 +08:00
Argo Zhang
05adf6f647 doc(Services): update services ready for auto mode (#4780)
* doc: 增加 ImportMap 组件

* refactor: 移除重复服务

* refactor: 移除 TagHelper 包

* refactor: 移动模拟登录服务

* refactor: 移动多语言服务
2024-12-03 21:13:46 +08:00
Argo Zhang
ca29c43bfc doc(Bootstrap): update icon style file (#4778) 2024-12-02 09:54:38 +00:00
Argo Zhang
6056a9bdab doc(StaticAsset): use WebsiteOption AssetRootPath parameter (#4775)
* refactor: 精简代码

* refactor: 更新脚本路径

* doc: 移除不使用的脚本

* refactor: 使用 WebSiteOption 读取脚本资源根路径

* refactor: 更新瀑布流资源路径

* refactor: 更新模板页加载脚本路径

* refactor: 更新图床路径

* refactor: 统一使用资源文件变量

* refactor: 更正脚本资源路径问题

* refactor: 更新头像路径

* refactor: 更新流程图资源路径

* refactor: 重构 Pre 组件内部资源文件路径

* refactor: 精简代码逻辑

* refactor: 增加第三方图标库样式

* refactor: 更新图标独立加载样式

* refactor: 更新鼠标跟随示例样式

* doc: 更新 Live2D 组件资源路径

* refactor: 重构静态资源路径

* refactor: 重构广告资源路径

* refactor: 重构资源路径

* refactor: 更新根目录变量

* chore: 更新忽略文件

* test: 更新单元测试

* Revert "chore: 更新忽略文件"

This reverts commit 139cb7937e.

* doc: 统一变量名称

* doc: 统一变量名称
2024-12-02 16:17:32 +08:00
Argo Zhang
b9869e917a doc(Sample): update static assets path (#4771)
* refactor: 增加可为空标识

* refactor: 更改路径

* refactor: 更新文档图片资源路径

* refactor: 更新画笔应用资源路径

* refactor: 瀑布流 api 支持部署与开发环境

* chore: bump version 9.1.0
2024-12-02 09:38:57 +08:00
Argo Zhang
e9a7076634 doc(Topology): update javascript path (#4769)
* refactor: 更正路径

* chore: 更新文件路径

* chore: bump version 9.0.2
2024-12-01 21:23:08 +08:00
Argo Zhang
f8827f534f chore(JSModule): update javascript path (#4767)
* wip: 更新路径问题

* refactor: 更新脚本路径

* chore: 更正图标样式

* style: 更新图标路径

* chore: 更新 JS 路径

* chore: 更新加载文件路径

* refactor: 更新路径为相对路径

* chore: 更新路径
2024-11-30 22:08:54 +08:00
Argo Zhang
f37d81ec29 feat(Collapse): add HeaderTemplate parameter (#4763)
* doc: 更正资源文件键值不正确问题

* refactor: 移除宏定义

* refactor: 更正单词拼写错误

* doc: 增加注释文档

* feat: 增加 HeaderClass 参数

* feat: 增加 HeaderTemplate 支持

* doc: 文档格式化

* doc: 更新 HeaderTemplate 示例

* doc: 更新注释

* doc: 更新 CollapseItem 文档

* chore: bump version 9.0.2-beta07

* test: 更新单元测试
2024-11-30 10:43:59 +08:00
Argo Zhang
abfd210ede chore(Project): split out a shared project (#4761)
* chore: 拆分工程

* chore: 移动部分服务到 Server 工程

* chore: 更新文件路径

* chore: 更新路径错误

* refactor: 更新路径

* chore: 移除 Tree 组件

* chore: 更新 Tree 组件

* test: 更新单元测试

* test: 更新资源文件

* test: 更新单元测试
2024-11-29 16:06:46 +08:00
Argo Zhang
0e1dca7bb0 fix(Layout): update width style for layout (#4759)
* style: 更新样式

* doc: 更新样式

* chore: bump version 9.0.2-beta06
2024-11-29 06:11:35 +00:00
Argo Zhang
40a1418414 feat(Table): add OnAfterCancelSaveAsync parameter (#4757)
* feat: 增加 OnAfterCancelSaveAsync 参数

* test: 增加单元测试

* chore: bump version 9.0.2-beta05

* test: 更新单元测试

* test: 更新单元测试
2024-11-29 13:40:43 +08:00
Argo Zhang
44da935a5b doc(SortableList): update parameter document (#4756)
* chore: bump version 9.0.1

* doc: 增加参数说明文档

* doc: 精简代码
2024-11-29 04:13:10 +00:00
Argo Zhang
5405bf0232 feat(Layout): add flex shrink for layout side (#4752) 2024-11-28 07:21:03 +00:00
Argo Zhang
341ffda446 fix(Table): ItemChangedType doesn't pass correct value to EditTemplate on Drawer mode (#4750)
* feat(Table): add cascade value ItemChagnedType for edit template

* chore: bump version 9.0.2-beta04
2024-11-28 10:08:13 +08:00
Argo Zhang
81e8297038 doc(Dialog): add docment for ShowModal dialog service (#4748)
* test: 更新单元测试

* doc(Dialog): add docment for ShowModal dialog service
2024-11-26 23:53:34 -12:00
Argo Zhang
8160795701 doc(TableColumn): update formatter callback annotate (#4745) 2024-11-27 18:47:31 +08:00
Argo Zhang
725ee30e64 doc(GlobalSearch): add key word highlight (#4742)
* refactor: 增加搜索关键字高亮样式

* chore: 更新依赖包到最新
2024-11-26 05:58:38 +00:00
Argo Zhang
541eadb6a6 perf(Table): improve performance for select all on header (#4740) 2024-11-26 03:45:21 +00:00
Argo Zhang
8308fb4f69 feat(TreeView): use Task instead of ValueTask (#4737)
* refactor(TreeView): use Task instead of ValueTask

* chore: bump version 9.0.2-beta03
2024-11-25 18:36:00 +08:00
Argo Zhang
233ea83942 doc(PopConfirmButton): add hover focus sample documentation (#4735)
* doc: 更新注释文档

* doc: 增加 Trigger 示例

* doc: 增加本地化
2024-11-25 10:32:30 +00:00
Argo Zhang
deaccd5ec5 doc(Footer): update footer style (#4733)
* doc: 更新 Ip 屏蔽逻辑

* doc: 更新备案号

* doc: 重构基金会准则

* doc: 移动基金会信息到 footer 中

* refactor: 更新样式
2024-11-25 13:56:59 +08:00
Argo Zhang
195c0ab6e2 feat(Layout): update style for IsFixedTabHeader (#4731)
* style: 移除重复样式

* refactor: 更新固定标签页表头样式

* chore: bump version 9.0.2-beta02
2024-11-25 04:53:56 +00:00
Argo Zhang
333dd4d80a refactor(TreeView): improve TreeView script (#4728)
* refactor: 精简代码移除不使用的参数

* refactor: 精简 scroll 代码提高性能

* refactor: 更新 GetParentsState 方法

* refactor: 重构 toggleLoading 方法

* refactor: 精简 setChildrenState 方法

* refactor: 精简 dispose 方法

* refactor: 移除 Data 方法

* test: 更新单元测试
2024-11-24 10:57:24 +08:00
Argo Zhang
227fa5ed33 feat(Sort): Sort extension method support IDynamicObject (#4726)
* feat: 增加 CastAndOrder 方法

* test: 更新单元测试

* chore: bump version 9.0.2-beta01
2024-11-23 11:58:08 +00:00
Argo Zhang
d0c4d9abd4 feat(TreeView): update javascript of TreeView (#4725)
* refactor: 精简脚本移除不使用事件

* refactor: 修复键盘功能

* chore: bump version 9.0.1
2024-11-23 15:32:43 +08:00
Argo Zhang
3f3bb1aa51 refactor(Checkbox): use server render instead of client render (#4723) 2024-11-23 13:59:03 +08:00
Argo Zhang
57cb436617 doc(MeiliSearch): update package for style (#4719)
* style: 更新搜索栏样式

* chore: 更新搜索栏依赖包
2024-11-22 05:58:30 +00:00
Argo Zhang
bbc8d1bd8b doc(WinBox): update style variable sample (#4716)
* chore: 更新依赖

* doc: 更新文档

* chore: 更新组件包版本

* doc: 更新样式名称

* chore: 更新版本到 9.0.5
2024-11-22 04:04:20 +00:00
Argo Zhang
98a6d98bcf doc(Readme): update readme documentation (#4714)
* chore: 增加证书图片

* doc: 调整文档

* doc: 增加 Readme 文档

* chore: 更新 MeiliSearch 组件
2024-11-22 00:27:20 +00:00
Frost Autumn
70eb2c3ab6 doc(Mermaid): Add doc for Mermaid component (#4711)
* doc: 增加示例文件

* chore: 增加依赖包

* doc(Mermaid): Add doc for Mermaid component

* doc: 更新测试用例

* refactor: 更新排版

---------

Co-authored-by: Argo-AsicoTech <argo@live.ca>
2024-11-22 08:20:05 +08:00
Argo Zhang
b2a6183963 doc(Readme): add .NET Foundation information (#4709) 2024-11-20 12:35:10 +00:00
Argo Zhang
36bb658f8c feat(MeiliSearch): add MeiliSearch component (#4707)
* refactor: 移除 meilisearch 资源

* chore: 增加全局搜索组件

* chore: 更新依赖包增加 MeiliSearchBox 组件

* style: 更新样式
2024-11-20 12:28:11 +00:00
Argo Zhang
4fa4b6e783 refactor(TreeView): support hover/active background color (#4703)
* test: 更新单元测试

* chore: 修复多框架丢失变量不编译资源文件问题

* style: 增加宽度 100% 样式

* style: 调整鼠标悬浮样式

* style: 调整复选框位置

* feat: 更新 dom 结构支持背景色高亮
2024-11-20 13:18:37 +08:00
Argo Zhang
a88f48080d chore(Target): add version props (#4705) 2024-11-20 13:15:46 +08:00
Argo Zhang
dc640a7268 chore(TargetFrameworks): revert multiple frameworks on debug mode (#4701) 2024-11-20 01:43:30 +00:00
Argo Zhang
425338ca89 feat(WinBox): add background color variable (#4699)
* doc: 更新示例

* chore: bump version 9.0.1

* chore: bump version 9.0.2
2024-11-19 11:23:11 +00:00
Argo Zhang
6a0e1555e4 fix(Editor): bump version 9.0.1 (#4697) 2024-11-19 10:57:34 +00:00
Argo Zhang
ac8ea57b55 refactor(TreeView): redesign TreeView dom structure (#4696)
* refactor: 更新 Checkbox 脚本

* refactor: 增加 HasChildren 检查

* chore: bump version 9.0.1-beta04

* style: 调整样式

* refactor: 统一逻辑

* test: 更新单元测试

* refactor: 更新单元测试

* test: 更新单元测试
2024-11-19 14:47:30 +08:00
Argo Zhang
4673c39c7d fix(Select): padding incorrect when validating success (#4692)
* fix: 修复 padding 间隙位置

* chore: bump version 9.0.1-beta03
2024-11-18 11:45:51 +00:00
Diego2098
c66f7dc283 perf(TreeView): improve cache for TreeViewNode (#4677)
* 优化TreeView组件 虚拟滚动性能,更换List为HashSet,降低时间复杂度

* refactor: 重构代码

* refactor: 使用主构造函数精简代码

* refactor: 改用私有变量反射

* refactor: 增加 HashSetComparer 比较器

* refactor: 重构节点缓存类

* refactor: TreeView 组件更新比较器

* refactor: Table 组件更新比较器

* refactor: 改造缓存类

* test: 更新单元测试

* test: 补充 HashSetComparer 单元测试

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2024-11-17 19:38:06 +08:00
Argo Zhang
313ccb7e99 refactor(Layout): adjust z-index value for Modal (#4686) 2024-11-16 19:55:24 -08:00
Argo Zhang
07233a798a doc(Layout): update sample (#4684)
* doc: 更正单词拼写错误

* doc: 精简示例样式

* refactor: 重构代码

* doc: 恢复 IsPage 文档

* style: 更新样式
2024-11-17 02:53:15 +08:00
Argo Zhang
9a1b5cc2c2 feat(Layout): add IsFixedTabHeader parameter (#4668)
* doc: 代码格式化

* refactor: 移除空属性

* refactor: 重新设计收起样式

* feat: Layout 组件支持 static 渲染模式

* fix(Widget): 修复报错问题

* chore: bump version 9.0.0-beta03

* style: 移除抽屉 padding 间隙

* refactor: 移除宽度计算样式

* doc: 后台示例更新登录信息栏

* doc: 格式化文档

* refactor: 样式独立文件

* doc: 精简样式

* refactor: 更新 Widget 组件与模板一致

* refactor: 修复调整结构组件状态不正确问题

* refactor: 重构方法提高性能

* refactor: 修复布尔值时不触发 OnStateChanged 回调问题

* refactor: 修复布尔值时不触发 OnStateChanged 回调问题

* test: 增加单元测试

* refactor: 精简代码提高效率

* refactor: 调整右侧边框样式

* chore: bump version 9.0.1-beta01

* doc: 移除 2019 文字

* doc: 移除 2019 文字

* refactor: 更改样式名称

* refactor: 重构侧边栏收起样式

* refactor: 更新 Menu 透明样式

* doc: 更新后台管理样式

* style: 兼容 Menu 组件

* style: 增加响应式布局

* refactor: 重构样式

* wip: 临时移除静态支持

* style: 微调样式

* refactor: 精简样式

* style: 微调 Menu 样式

* refactor: 增加层次

* style: 调整 Title 颜色

* style: 调整收起展开菜单宽度样式

* style: 增加菜单右侧边框线

* doc: 调整文档

* doc: 更新文档链接

* style: 合并样式

* style: 合并样式

* style: 整理 header-bar 样式

* refactor: 重构样式

* style: 层次化样式

* style: 层次化样式

* refactor: 移除 IsPage 参数

* refactor: 移除 static 判断逻辑

* style: 合并 Header 样式

* refactor: 移除侧边栏抽屉

* style: 合并样式

* refactor: 移除 SideWidth=“0” 设置

* refactor: 使用 div 元素渲染按钮

* refactor: 恢复脚本

* refactor: 重构代码

* doc: 移除 IsPage 文档

* doc: 更新开发工具名称

* refactor: 调整层次结构

* refactor: 增加 IsFixedTabHeader 参数

* doc: 后台管理使用固定标签页参数

* test: 增加单元测试

* doc: 增加参数说明

* style: 更新固定标签头样式

* refactor: 增加 Layout 高度设置

* doc: 更新示例

* test: 更新单元测试
2024-11-17 01:34:50 +08:00
Argo Zhang
1aacef59b0 refactor(Layout): enhance layout styles (#4679)
* doc: 代码格式化

* refactor: 移除空属性

* refactor: 重新设计收起样式

* feat: Layout 组件支持 static 渲染模式

* fix(Widget): 修复报错问题

* chore: bump version 9.0.0-beta03

* style: 移除抽屉 padding 间隙

* refactor: 移除宽度计算样式

* doc: 后台示例更新登录信息栏

* doc: 格式化文档

* refactor: 样式独立文件

* doc: 精简样式

* refactor: 更新 Widget 组件与模板一致

* refactor: 修复调整结构组件状态不正确问题

* refactor: 重构方法提高性能

* refactor: 修复布尔值时不触发 OnStateChanged 回调问题

* refactor: 修复布尔值时不触发 OnStateChanged 回调问题

* test: 增加单元测试

* refactor: 精简代码提高效率

* refactor: 调整右侧边框样式

* chore: bump version 9.0.1-beta01

* doc: 移除 2019 文字

* doc: 移除 2019 文字

* refactor: 更改样式名称

* refactor: 重构侧边栏收起样式

* refactor: 更新 Menu 透明样式

* doc: 更新后台管理样式

* style: 兼容 Menu 组件

* style: 增加响应式布局

* refactor: 重构样式

* wip: 临时移除静态支持

* style: 微调样式

* refactor: 精简样式

* style: 微调 Menu 样式

* refactor: 增加层次

* style: 调整 Title 颜色

* style: 调整收起展开菜单宽度样式

* style: 增加菜单右侧边框线

* doc: 调整文档

* doc: 更新文档链接

* style: 合并样式

* style: 合并样式

* style: 整理 header-bar 样式

* refactor: 重构样式

* style: 层次化样式

* style: 层次化样式

* refactor: 移除 IsPage 参数

* refactor: 移除 static 判断逻辑

* style: 合并 Header 样式

* refactor: 移除侧边栏抽屉

* style: 合并样式

* refactor: 移除 SideWidth=“0” 设置

* refactor: 使用 div 元素渲染按钮

* refactor: 恢复脚本

* refactor: 重构代码

* doc: 移除 IsPage 文档

* doc: 更新开发工具名称
2024-11-16 23:35:07 +08:00
Argo Zhang
f24b4f47b8 doc(VisualStudio): remove version of IDE (#4681)
* doc: 更新开发工具名称

* doc: 更正单词拼写错误
2024-11-16 23:22:16 +08:00
Argo Zhang
56ef57c0e2 refactor(ModalDialog): update javascript check modal first shown (#4676)
* fix: 增加调整位置前检查

* chore: bump version 9.0.1-beta02

* refactor: 精简代码
2024-11-16 15:56:39 +08:00
Argo Zhang
9a09c24e09 feat(Menu): redesign collapse logic (#4672)
* refactor: 更改样式名称

* refactor: 更新 Menu 透明样式

* refactor: 精简样式

* test: 更新单元测试
2024-11-16 02:17:52 +00:00
Argo Zhang
624ade0d4b doc(Install): remove visual studio 2019 (#4670)
* doc: 移除 2019 文字

* doc: 移除 2019 文字
2024-11-16 01:36:44 +00:00
Argo Zhang
dc1a76c835 fix(Checkbox): not trigger OnStateChanged callback when set TValue to bool (#4667)
* refactor: 修复布尔值时不触发 OnStateChanged 回调问题

* test: 增加单元测试
2024-11-15 11:44:21 +00:00
Argo Zhang
ccd3bdb0ec fix(Widget): throw exception when dispose (#4665)
* fix(Widget): 修复报错问题

* chore: bump version 9.0.0-beta03
2024-11-15 07:43:41 +00:00
Argo Zhang
525eaac953 fix(ModalDialog): not shown after close previous window when set IsDraggable and IsCenter to true (#4663)
* refactor: 移动可拖动垂直计算逻辑到 Dialog 脚本内

* feat: 增加 _firstRender 控制仅首次渲染增加样式逻辑

* chore: bump version 9.0.0-beta02
2024-11-15 13:26:59 +08:00
Argo Zhang
f477aa4cd2 doc(net9): remove 404 redirect middle ware (#4660)
* doc: 格式化文档

* fix: 更新文件名

* wip 移除 404 跳转
2024-11-15 10:04:51 +08:00
Amos
b73c3ec300 fix(JsonStringLocalizer): add type check prevent endless loop (#4653)
* fix(JsonStringLocalizer):Endless loop bug

* chore: bump version 9.0.0-beta01

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2024-11-13 22:33:03 -08:00
Argo Zhang
a8fa755d1c test(Display): update test for nullable value (#4656) 2024-11-13 22:16:39 -08:00
Argo Zhang
4b33dae53d refactor(Display): make TValue as nullable (#4651) 2024-11-13 11:38:11 +08:00
Argo Zhang
573ed2651c chore(net9): bump version 9.0 (#4649) 2024-11-13 11:04:29 +08:00
Argo Zhang
43f1783c27 refactor(Checkbox): update the state value callback (#4646)
* fix: 修复 Checkbox 回传 state 值始终有值问题

* chore: bump version 9.0.0-rc.2.11.11.0

* doc: 更新示例

* doc: 更新示例文档

* doc: 补充 IsVirtualize 参数文档
2024-11-11 18:43:35 +08:00
Argo Zhang
a4084e7b82 fix(FullScreenButton): update fullscreen state icon (#4642)
* fix: update fullscreen state icon

* refactor: 重构代码提高可读性
2024-11-11 13:22:06 +08:00
Argo Zhang
cf8e25ca72 feat(Authorization): redesign service for IAuthorizationPolicyProvider (#4640)
* refactor: 兼容 web app wasm 模式

* refactor: 移除 AddAuthorizationCore 方法

* chore: 移除 System.Text.Json 依赖

* chore: bump version 9.0.0-rc.2.11.10.2
2024-11-10 19:13:45 +08:00
Argo Zhang
855641369a refactor(Layout): integrate widget styles (#4638)
* refactor: 集成 widget 默认样式

* chore: bump version 9.0.0-rc.2.11.10.1
2024-11-10 13:22:56 +08:00
Argo Zhang
64bde703a4 feat(Layout): add default theme support dark mode (#4636)
* refactor: 微调默认样式

* style: 增加内置样式

* feat: 增加 dark 主题样式

* style: Layout 组件支持 dark 模式

* chore: bump version 9.0.0-rc.2.11.10.0

* chore: 更新 pack 配置项
2024-11-10 11:30:46 +08:00
Argo Zhang
6aa8f4d1a0 fix(AutoFill): support numberpad enter key (#4634)
* feat: 增加 IsEnterKey 判断

* refactor: 使用 IsEnterKey 判断键值

* refactor: 增加小键盘支持

* test: 增加小键盘单元测试
2024-11-09 23:40:46 +08:00
Argo Zhang
67c2e18d43 feat(Editor): summernote jQuery upgrade to 3.6.0 (#4633) 2024-11-09 19:32:37 +08:00
Argo Zhang
17ed9ac2a1 feat(TreeView): support virtualize scroll (#4624)
* feat: 增加 IsVirtual 参数

* doc: 增加大数据示例

* doc: 增加虚拟滚动文档

* feat: 节点文本增加不折行样式

* doc: 更新示例

* refactor: 代码格式化

* refactor: 加载子节点动画改为脚本实现

* doc: 虚拟滚动模式下手风琴特效禁用

* refactor(Checkbox): 代码格式化

* fix(Checkbox): 修复点击未刷新问题

* refactor: 增加 @ 关键字

* chore: 更新依赖

* refactor: 客户端实现级联操作

* doc: 更新示例

* feat: 实现客户端更新父节点逻辑

* refactor: 优化性能

* refactor: 增加父节点逻辑判断

* perf: 增加内部缓存提高性能

* feat: 增加 TreeView 加载动画图标

* refactor: 增加加载动画图标样式

* refactor: 增加加载动画样式脚本

* doc: 增加加载子节点动画延时

* refactor: 子节点展开清缓存

* wip: 临时提交

* feat: 实现父节点级联逻辑

* refactor: 使用原生 checkbox 元素

* feat: 增加 TriggerClick 逻辑改为客户端触发

* feat: 实现客户端脚本逻辑

* feat: 增加父节点样式

* refactor: 移除父节点样式

* feat: 增加同步样式代码

* refactor: 精简回调逻辑提高性能

* refactor: 更新客户端逻辑仅回调一次

* refactor: 取消 Checkbox 冒泡限制

* feat: 增加当前节点状态同步逻辑

* fix: 子节点联动逻辑增加本身状态改变

* refactor: 移除 SetNodeStateByIndex 方法提高性能

* fix: 修复父节点级联状态未同步问题

* refactor: 微调逻辑

* test: 更新单元测试

* revert: 撤销更改

* refactor: 不需要等待客户端脚本执行

* refactor: 重构递归方法

* refactor: 重构 SetParentCheck 方法提高性能

* test: 更新单元测试

* test: 更新单元测试

* refactor: 移除关键字

* test: 更新单元测试

* test: 修复单元测试

* test: 修复单元测试

* test: 更新单元测试

* refactor: 增加 net9.0 新中间件

* chore: 更新配置开发模式使用单框架

* chore: App 引导页支持静态资源

* chore: 增加 RunTargetFramework 配置项

* chore: App 支持切换 net8/9

* refactor: 更新级联设置子节点逻辑

* test: 更新单元测试

* refactor: 重构方法提高性能

* refactor: 代码格式化

* test: 更新单元测试

* test: 补充单元测试

* test: 增加虚拟化单元测试

* test: 增加 SetParentCheck 单元测试

* test: 增加单元测试

* test: 更新单元测试

* refactor: 重构 OnTriggerClickAsync

* test: 更新单元测试
2024-11-09 15:52:20 +08:00
Argo Zhang
3cbd726f78 chore(Framework): add runtime framework config (#4631)
* refactor: 增加 net9.0 新中间件

* chore: 更新配置开发模式使用单框架

* chore: App 引导页支持静态资源

* chore: 增加 RunTargetFramework 配置项

* chore: App 支持切换 net8/9
2024-11-09 15:32:34 +08:00
Argo Zhang
be5a5b8b76 refactor(Checkbox): redesign javascript invoke improve performance (#4629)
* refactor: 移除关键字

* test: 更新单元测试

* refactor: 重构 OnTriggerClickAsync

# Conflicts:
#	src/BootstrapBlazor/Components/Checkbox/Checkbox.razor.cs
#	src/BootstrapBlazor/Components/Checkbox/Checkbox.razor.js

* test: 更新单元测试

* refactor: 重构客户端交互逻辑提供性能

* test: 更新单元测试

* refactor: 更新关键字

* doc: 增加注释
2024-11-09 15:23:54 +08:00
Argo Zhang
5d1e209d00 fix(Table): throw exception when click delete button in table row (#4625) 2024-11-08 23:59:43 +08:00
Argo Zhang
9fcd84c4ac feat(Checkbox): use client click instead of server event (#4620)
* refactor: 使用原生 checkbox 元素

* feat: 增加 TriggerClick 逻辑改为客户端触发

* feat: 实现客户端脚本逻辑

* feat: 增加父节点样式

* refactor: 移除父节点样式

* feat: 增加同步样式代码

* test: 更新单元测试

* test: 增加单元测试

* refactor: 精简代码

* feat: 增加 StopPropagation 支持

* refactor: 更新阻止冒泡逻辑

* test: 增加阻止冒泡单元测试

* test: 更新单元测试
2024-11-07 19:25:59 +08:00
Argo Zhang
cc22758988 fix(Checkbox): render UI when click input (#4618)
* refactor(Checkbox): 代码格式化

* fix(Checkbox): 修复点击未刷新问题

* chore: bump version 9.0.0-rc.2.11.6.0
2024-11-06 16:47:36 -08:00
Argo Zhang
e35bbdc9ea doc(Tab): update NotAuthorized parameter documentation (#4613)
* doc: 增加 404 重定向

* feat(Tab): 移除 NotAuthorized/NotFound 参数

* feat(Layout): 移除 NotAuthorized/NotFound 参数

* Revert "feat(Layout): 移除 NotAuthorized/NotFound 参数"

This reverts commit f5e5f49583.

* Revert "feat(Tab): 移除 NotAuthorized/NotFound 参数"

This reverts commit df041c745b.

* refactor: 更新参数文档

* refactor: 更新私有变量

* refactor: 代码格式化

* Revert "chore(Qodana): add qodana CI checks (#4610)"

This reverts commit 52449392b0.
2024-11-05 18:51:46 -08:00
qodana-cloud[bot]
52449392b0 chore(Qodana): add qodana CI checks (#4610)
* Add qodana.yaml file

* Add github workflow file

---------

Co-authored-by: Qodana Application <qodana-support@jetbrains.com>
2024-11-05 18:46:06 -08:00
Argo Zhang
ed22793bde doc(404): add not found middleware (#4615)
* doc: 增加 404 重定向

* refactor: 修复 301 重定向问题
2024-11-05 18:43:37 -08:00
Argo Zhang
f099365035 feat(Layout): add default style (#4609)
* refactor: 更新变量

* feat: Layout 组件增加对 Logout 下拉框样式控制

* style: 增加默认样式

* style: 增加 侧边栏菜单颜色变量

* chore: bump version 9.0.0-rc.2.11.3.1
2024-11-05 11:11:09 +08:00
Argo Zhang
5ca5ef449d feat(Table): add DisableAddButtonCallback parameter (#4607)
* feat(Table): add DisableAddButtonCallback parameter

* test: 更新单元测试

* chore: bump version 9.0.0-rc.2.11.5.0
2024-11-05 01:59:45 +00:00
Argo Zhang
04b894974b refactor(Select): refactor the editable mode logic (#4606) 2024-11-04 11:45:31 +00:00
Argo Zhang
a802e1a6d2 feat(Table): add DisableDelete/EditButtonCallback Parameter (#4603)
* feat(Table): add DisableDelete/EditButtonCallback Parameter

* test: 更新单元测试

* chore: bump version 9.0.0-rc.2.11.3.0

* chore: 更新 docker image
2024-11-03 20:34:25 +08:00
Argo Zhang
e832302b7c fix(TableColumn): ShownWithBreakPoint not work well with Fixed (#4601)
* refactor: 更正变量名

* refactor: 消除参数

* feat: 增加 GetColumnFixedWidth 扩展方法

* refactor: 移除 CheckShownWithBreakpoint 方法

* test: 更新单元测试

* chore: bump version 9.0.0-rc.2.11.2.1
2024-11-02 05:29:26 +00:00
Argo Zhang
bcd80c5cb6 fix(Table): missing scroll after toggle CardView mode (#4600)
* refactor: 卡片模式增加滚动条样式

* fix: 修复卡片模式切换后固定表头模式下滚动条丢失问题

* doc: 代码格式化

* doc: 更新示例

* refactor: 使用 ?? 操作符

* refactor: 增加判断

* refactor: 增加释放资源逻辑

* fix(Table): add toggleView function
2024-11-02 12:01:44 +08:00
Argo Zhang
dd5b65b3c9 feat(Cascader): add OnBlurAsync parameter (#4599)
* feat(Cascader): add OnBlurAsync parameter

* test: add unit test
2024-11-02 02:59:21 +00:00
Argo Zhang
36feb5321f feat(RTL): support RTL mode (#4597)
* chore: 增加 rtl 样式库

* chore: 增加忽略文件

* doc: 代码格式化

* style: 代码块增加 ltr 样式

* style: 更新组件 margin 样式支持 rtl

* style: 网站样式支持 rtl

* refactor: 兼容 rtl 模式

* style: 表格样式兼容 rtl

* chore: 增加 rtl 样式表

* style: 更新分页组件 rtl 样式

* chore: bump version 9.0.0-rc.2.11.2.0

* style: 更新样式
2024-11-02 10:35:06 +08:00
Argo Zhang
feda9f426e chore(Winbox): body should be compatible with dark mode (#4595) 2024-11-02 01:30:03 +00:00
Argo Zhang
7c6501064b feat(TableRowContext): add RenderMode parameter (#4596)
* feat: add RenderMode on TableRowContext

* test: 更新单元测试

* test: 增加单元测试覆盖率
2024-11-02 01:00:26 +00:00
Argo Zhang
2f6350baed feat(HandWritten): remove HandWritten component (#4592)
* doc: 更新手写组件文档

* chore: 移除 Handwritten 组件

* Revert "chore: 移除 Handwritten 组件"

This reverts commit e434235176.

* Reapply "chore: 移除 Handwritten 组件"

This reverts commit 51739f7f0c.

* doc: 更新文档
2024-11-01 11:36:49 +00:00
Argo Zhang
d302b88354 feat(ModalDialog): support IsCenter when set IsDraggable to true (#4589)
* feat: 增加可拖动垂直居中功能

* chore: 更新样式与脚本

* test: 更新单元测试

* doc: 更新参数文档

* test: 更新单元测试

* refactor: 更改默认值

* test: 更新单元测试

* refactor: 补全括弧
2024-11-01 15:23:00 +08:00
Argo Zhang
e8e7bbf272 fix(AutoComplete): click event also trigger focus event (#4588)
* fix(AutoComplete): remove focus client event

* feat: 增加 triggerFocus 方法

* refactor: 精简代码

* refactor: 更改为私有变量

* test: 更新单元测试
2024-11-01 14:36:41 +08:00
Argo Zhang
896a3ba60e feat(net9): support net9.0 framework (#4585)
* chore: 更新框架到 net9.0

* doc: 格式化单元格

* chore: 更新打包脚本移除 BuildBundlerMinifierPlus 工具

* chore: 更新配置消除警告信息

* chore: 更新打包脚本移除 BuildBundlerMinifierPlus 工具

# Conflicts:
#	src/Bundle.props

* chore: 更新 scss 目录打包不输出

* chore: 更新开发模式脚本

* chore: 更新打包脚本

* refactor: 增加包私有化

* doc: 格式化单元格

* style: 更新 scroll 样式

* chore: 更新忽略配置

* chore: 更新工具链

* chore: 更改文件名

* chore: 移除代码拷贝脚本

* chore: 更新配置启用压缩

* chore: 开启 scss 脚本实时更新

* chore: 更新依赖包

* chore: 更新忽略文件

* chore: 更新拷贝任务名称

* chore: 增加警告忽略配置

* chore: 更新工具链配置

* refactor: 使用 Assets 特性

* refactor: 更新自动化 dotnet 版本

* chore: 更新框架

* refactor: 更新包消除警告信息

* chore: 更新依赖包

* chore: 更新依赖消除警告信息

* chore: 调整依赖

* refactor: 移除 Sass 打包工具

* refactor: 移动 sass 工具到 targets 配置文件中

* chore: 更新依赖包

* chore: 更新项目配置文件

* chore: 移除 version 相关配置

* refactor: 移除 Title 组件

* doc(ErrorLogger): 更新参数说明文档

* chore: bump version 9.0.0-rc03

* chore: 更新字典

* chore: 更新依赖

* doc: 更新命名空间

* refactor: 移除冗余样式

* refactor: 移除 ThemeLoader 组件

* refactor: 移除 ThemeLoader 组件
2024-11-01 12:51:39 +08:00
Argo Zhang
79b0e24873 feat(ThemeLoader): remove ThemeLoader component (#4587)
* refactor: 移除 ThemeLoader 组件

# Conflicts:
#	src/BootstrapBlazor.Server/Components/App.razor

* refactor: 移除 ThemeLoader 组件

* doc: 更新文档
2024-11-01 12:46:56 +08:00
Argo Zhang
1035c2a576 feat(PrintService): remove Print component (#4582)
* refactor: 移除 Print 组件

* refactor: 重构 PrintService 服务
2024-10-31 20:31:34 +08:00
Argo Zhang
557107b96f fix(SelectTable): validate component shoud be skip validate in search panel (#4580)
* fix(Table): 增加缺失的 SkipValidate 设置

* fix: 增加搜索面板下取消验证逻辑

* fix: 更新单元测试

* chore: bump version 8.11.1-beta03
2024-10-31 20:14:20 +08:00
Argo Zhang
40bea27bf1 feat(IErrorLogger): support DetailedErrors config (#4579)
* doc: 增加弹窗示例

* refactor: 优化代码

* refactor: 增加异常提示信息栏

* doc: 增加示例文档

* refactor: 增加 DetailedErrors 配置项检查

* test: 更新单元测试
2024-10-30 13:10:53 +00:00
Argo Zhang
2fb6b5ec90 feat(ErrorLogger): redesign ErrorLogger component (#4576)
* refactor: 重构 Root 组件

* doc: 更新文档

* refactor: 重构 Root 组件

* refactor: 增加 EnableErrorLogger 开关

* refactor: 重构 Root 组件增加 EnableErrorLogger 参数

* test: 代码格式化

* refactor: 性能优化

* refactor: 更新接口

* refactor: 重构 ErrorLogger 组件

* test: 更新单元测试

* test: 增加单元测试
2024-10-30 19:59:36 +08:00
Argo Zhang
6dfcef5ef2 doc(ErrorLogger): update sample code (#4568)
* refactor: 移除 Title 组件

* refactor: 增加 ErrorLogger 包裹组件
2024-10-29 13:17:53 +08:00
Argo Zhang
f384e6c818 feat(AjaxService): redesign AjaxService (#4570)
* refactor: 重构 AjaxService 服务

* refactor: 移除 Ajax 组件

* test: 完善单元测试
2024-10-29 13:16:59 +08:00
Argo Zhang
99090e3d6b feat(Checkbox): optimize OnBeforeStateChanged callback method (#4566)
* refactor: 增加 data-bb-trigger-before 标签支持参数动态赋值

* refactor: 判断标签值进行 invoke 提高效率

* chore: bump version 8.11.1-beta02

* refactor: 更新关键字
2024-10-28 15:15:47 +08:00
Argo Zhang
18c485d478 chore(Sass): move sass dept into targets (#4564) 2024-10-28 10:47:21 +08:00
Argo Zhang
0c5707b8e5 feat(ColorPicker): add Swatches parameter (#4562)
* fix: 修复 swatches 丢失问题

* chore: 更新依赖包到最新

* chore: 更新工具链

* doc: 更新文档

* doc: 更新键值

* doc: 更新参数文档

* bump version 8.11.1-beta01

* doc: 更正弹窗文本错误
2024-10-28 10:31:05 +08:00
Argo Zhang
c7be111124 feat(ColorPicker): add Swatches parameter (#4560)
* feat: 增加 Swatches 参数

* test: 更新单元测试

* chore: bump version 8.11.0
2024-10-27 11:32:07 +08:00
Argo Zhang
39ba47cc75 feat(IFrame): update default style (#4556)
* chore: 增加字典

* doc: 增加 IFrame 文档链接

* feat: 增加 Height 参数

* doc: 增加 IFrame 示例

* doc: 增加参数文档

* refactor: 更新文档

* chore: 更新 IFrame 默认样式
2024-10-27 10:55:20 +08:00
Argo Zhang
c069a65a89 doc(DemoBlock): add Height parameter (#4558) 2024-10-27 10:52:24 +08:00
Argo Zhang
d41b7f3e81 fix(Table): missing border style when fix column (#4554)
* fix(Table): update table style

* chore: bump version 8.10.5-beta01
2024-10-26 09:52:15 +00:00
Argo Zhang
74a74d3cd7 feat(Dialog): add ShowModal extensions method (#4552)
* feat(Dialog): add ShowLiteralConfirmModal method

* test(Dialog): add unit test for ShowLiteralConfirmModal

* feat(ResizeNotification): remove ResizeNotification service (#4550)

* chore: 更新 scss 链接

* refactor: 移除服务

* refactor: 移除 ResizeNotification 组件

* refactor: 增加系列化标签

* refactor: 更新 Responsive 组件

* test: 更新单元测试

* test: 更新单元测试

* refactor: 更新代码

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试

* refactor: 重构 ShowModal 方法

* doc: 更新示例

* test: 更新单元测试

* test: 更新单元测试

---------

Co-authored-by: MadLongTom <36219016+MadLongTom@users.noreply.github.com>
2024-10-26 13:50:33 +08:00
Argo Zhang
3a939f288c feat(ResizeNotification): remove ResizeNotification service (#4550)
* chore: 更新 scss 链接

* refactor: 移除服务

* refactor: 移除 ResizeNotification 组件

* refactor: 增加系列化标签

* refactor: 更新 Responsive 组件

* test: 更新单元测试

* test: 更新单元测试

* refactor: 更新代码

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试
2024-10-25 22:05:08 +08:00
Argo Zhang
d35150cd1e doc(Download): update download url (#4547)
* refactor: 更改命名空间

* refactor: 移除命名空间

* chore: 增加版本号控制文件

* chore: 更新下载地址链接
2024-10-25 12:32:21 +08:00
Argo Zhang
59ce9a07f4 feat(EyeDropper): remove EyeDropper component (#4545)
* refactor: 移除 EyeDropper 组件

* refactor: 重构服务

* refactor: 更新脚本

* refactor: 更新单元测试

* chore: 移除根元素中组件

* doc: 更新取色服务文档位置

* doc: 更新文档
2024-10-25 12:24:41 +08:00
Argo Zhang
02a8024fcd feat(BrowserFinger): redesign IBrowserFinger service (#4543)
* refactor: 移除 BorwerFinger 组件

* refactor: 重构服务

* test: 更新单元测试
2024-10-25 12:12:17 +08:00
Argo Zhang
696292effe feat(Clipboard): remove Clipboard component (#4541)
* refactor: 移动剪切板服务

* refactor: 移除 ClipBoard 组件

* test: 更新单元测试

* test: 更新单元测试
2024-10-25 12:03:41 +08:00
Argo Zhang
b9a5bbdb97 feat(FullScreen): remove FullScreen component (#4537)
* refactor: 移除 FullScreen 组件

* feat: 更改 FullScreen 为服务

* test: 更新单元测试

* refactor: 精简脚本

* refactor: 精简代码逻辑
2024-10-25 11:45:13 +08:00
Argo Zhang
0cae07550d feat(Title): update TitleService (#4539)
* feat: 更改为服务

* refactor: 移除 Title 组件

* test: 更新单元测试

* test: 更新单元测试

* refactor: 增加 Token 代码
2024-10-25 10:49:18 +08:00
Argo Zhang
b21d36ffb2 feat(RibbonTab): update menu body height default value to 84.5 (#4535) 2024-10-25 01:44:11 +00:00
Argo Zhang
897ced3e79 feat(Tab): add height 100% style (#4533) 2024-10-25 09:38:36 +08:00
Argo Zhang
229fedd297 chore(JsonEnumConverter): remove core namespace (#4531)
* refactor: 更改命名空间

* chore: 移除不使用的命名空间

* test: 更新单元测试
2024-10-23 23:57:13 -07:00
Argo Zhang
cf30213e1c feat(DateTimePicker): add OnBlurAsync parameter (#4529)
* feat: 增加 OnBlurAsync 参数

* test: 更新单元测试
2024-10-24 12:58:21 +08:00
Argo Zhang
7bc52258b5 feat(AutoFill): add OnBlurAsync parameter (#4527) 2024-10-24 12:41:43 +08:00
Argo Zhang
44c229c343 feat(Slider): add OnBlurAsync parameter (#4525)
* feat(FloatingLabel): add OnBlurAsync parameter

* feat: 增加 OnBlurAsync 回调方法

* refactor: 移动参数到基类

* refactor: 移动参数到基类

* refactor: 重构 AutoComplete 组件

* refactor: 重构 AutoFill 组件

* doc: 更新文档注释

* refactor: 复用基类事件

* refactor: 使用基类事件

* feat(Slider): add OnBlurAsync parameter

* test: 更新单元测试
2024-10-24 12:37:56 +08:00
Argo Zhang
420f7f7689 feat(FloatingLabel): add OnBlurAsync parameter (#4523)
* feat(FloatingLabel): add OnBlurAsync parameter

* feat: 增加 OnBlurAsync 回调方法

* refactor: 移动参数到基类

* refactor: 移动参数到基类

* refactor: 重构 AutoComplete 组件

* refactor: 重构 AutoFill 组件

* doc: 更新文档注释

* refactor: 复用基类事件

* refactor: 使用基类事件
2024-10-24 12:34:16 +08:00
Argo Zhang
0afbc41e77 feat(BootstrapInput): add OnBlurAsync parameter (#4521)
* feat(BootstrapInput): add OnBlurAsync parameter

* test: 增加单元测试

* test: 更新单元测试
2024-10-24 12:10:13 +08:00
Argo Zhang
dcdf40d4e9 feat(BootstrapInputNumber): add OnBlurAsync parameter (#4519)
* feat(InputNumber): add OnBlurAsync parameter

* test: 更新单元测试
2024-10-24 11:48:07 +08:00
Argo Zhang
41e26e28ab feat(Textarea): add OnBlurAsync parameter (#4518)
* feat: 增加 OnBlurAsync 回调方法

* test: 更新单元测试
2024-10-24 11:34:42 +08:00
j4587698
0b24a25e53 feat(Select): support SelectedItem<TValue> generic value (#4512)
* AutoFill改造Select高亮

* refactor: 格式化代码

* Revert "AutoFill改造Select高亮"

This reverts commit b7289689b3.

# Conflicts:
#	src/BootstrapBlazor/Components/AutoFill/AutoFill.razor.cs

* feat: 增加 IModelEqualityComparer 接口

* feat: 增加编辑逻辑

* doc: 更新示例

* doc: 更新示例

* test: 增加 OnChanged 单元测试

* test: 增加 OnSelectedItemChanged 单元测试

* test: 增加单元测试

* test: 更新单元测试

* test: 增加 TextConvertToValueCallback 单元测试

* doc: 增加可编辑功能文档

* doc: 更新文档

---------

Co-authored-by: Argo-AsicoTech <argo@live.ca>
2024-10-23 18:17:14 -07:00
Argo Zhang
e94371a82e feat(IBluttooth): add Start/StopNotifications method (#4510)
* chore: 重新设计蓝牙接口定义

* refactor: 重新设计蓝牙接口

* doc: 更新文档

* refactor: 移除 Connect 属性

* doc: 更新比对逻辑

* feat: 完善 StartNotifications 方法

* feat: 增加 remove 扩展方法

* feat: 增加 StopNotifications 方法

* feat: 增加资源销毁逻辑

* refactor: 更新参数名称

* feat: 增加重复判断

* refactor: 移除日志

* refactor: 更改 ReadValue 方法返回值

* test: 更新单元测试

* test: 更新单元测试

* feat: 增加 IsNotify 属性

* test: 更新单元测试

* doc: 更新文档
2024-10-23 14:24:08 +08:00
Argo Zhang
3af183cdde feat(IBluetootchDevice): add GetPrimaryServices method (#4504)
* refactor: 更改客户端输出

* doc: 更新示例

* refactor: 更改为错误提示信息

* refactor: 更新时区计算逻辑

* doc: 更新文档

* feat: 增加获取服务方法

* refactor: 重构代码

* feat: 增加 getPrimaryServices 方法

* feat: 增加 getCharacteristics 方法

* refactor: 增加 UUID 标签

* refactor: 更正脚本错误

* doc: 更新文档

* refactor: 标签重命名

* test: 增加单元测试

* refactor: 重构标签文件名称

* doc: 更新文档

* doc: 更新文档
2024-10-22 19:47:52 +08:00
Argo Zhang
c5e1e145f3 feat(BluetoothDevice): add GetCurrentTime method (#4501)
* doc: 更新示例

* feat: 增加 BluetoothDeviceInfo 类

* doc: 更新示例

* feat: 增加蓝牙服务扩展方法

* feat: 增加 SoftwareRevision 参数

* feat: 增加 GetAllServices 扩展方法

* doc: 更新示例

* chore: 增加命名空间配置

* test: 增加测试代码

* feat: 增加 CurrentTime 解析方法

* feat: 增加 GetCurrentTime 方法

* doc: 更新示例

* feat: 支持时区

* doc: 更新注释

* doc: 更新示例

* test: 增加单元测试

* test: 增加单元测试

* doc: 更新示例

* test: 更新单元测试
2024-10-22 16:01:29 +08:00
Argo Zhang
3f3f8b92d7 chore(foundation): add dotnet foundation information (#4499)
* chore: 更新 readme 增加基金会文档

* chore: 更新 License 增加基金会权益

* chore: 更新源文件头标注

* doc: 更新源代码标注

* chore: 更新 readme 文档

* chore: 更改维护者单词
2024-10-22 10:47:05 +08:00
Argo Zhang
259b6f216c feat(IBluetoothService): add BluetoothFilterOption parameter (#4496)
* feat: 增加 BluetoothRequestOptions 参数

* refactor: 更新脚本

* doc: 更新示例

* doc: 更新示例

* test: 更新单元测试

* chore: bump version 8.10.4

* test: 更新单元测试
2024-10-21 15:49:52 +08:00
Argo Zhang
697fdea012 feat(IBluetoothService): add IBluetoothService service (#4492)
* feat: 增加蓝牙接口

* refactor: 移除可见性修饰符

* chore: 增加蓝牙服务

* doc: 更新蓝牙示例

* refactor: 增加 getAvaliablity 方法

* feat: 增加 Request 方法

* doc: 更新示例

* feat: 更新蓝牙设备

* doc: 更新示例

* feat: 增加电量读取方法

* doc: 更新示例

* refactor: 移除 GetDevices 方法

* doc: 更新示例

* feat: 增加 IBluetoothDevice 接口

* doc: 更新示例

* refactor: 更改为通用设计

* doc: 更新示例

* refactor: 精简代码

* refactor: 更新读取方法

* refactor: 更新读取数据方法

* refactor: 更新接口

* refactor: 更新代码

* feat: 增加扩展方法

* doc: 精简代码

* feat: 增加 ErrorMessage 参数

* feat: 增加异常回调方法

* feat: 增加 ErrorMessage 参数

* feat: 增加方法返回值

* refactor: 增加 IAsyncDispose 接口

* refactor: 更新脚本

* doc: 增加异常逻辑

* refactor: 代码重构

* refactor: 更新脚本使用 byte 通讯

* refactor: 更改为 byte 通讯

* refactor: 重构蓝牙模块检查

* doc: 更新文档

* doc: 更新文档

* doc: 更新文档

* doc: 更新示例

* doc: 更新文档

* doc: 更新文档

* doc: 更新示例文档

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试
2024-10-20 20:20:47 +08:00
Argo Zhang
ac3c3ca9ca doc(SlideButton): update Offset annotate (#4494) 2024-10-20 20:19:46 +08:00
Argo Zhang
78c691b480 doc(Pre): add ignoreUnescapedHTML config (#4489)
* refactor: 更新加载逻辑

* doc: 增加高亮配置

* test: 更新单元测试
2024-10-19 13:52:58 +08:00
Argo Zhang
c45180a945 feat(ISerialService): add ISerialService service (#4487)
* feat: 增加串口

* chore: 增加串口通讯服务

* doc: 更新示例

* refactor: 更新 Option 简化逻辑

* doc: 更新示例

* feat: 更新接口定义

* doc: 更新按钮状态

* feat: 实现写入逻辑

* doc: 更新示例文档

* refactor: 重构接收数据方法逻辑

* doc: 更新示例

* refactor: 调整写入方法参数

* doc: 更新示例

* style: 微调 Console 组件样式

* feat: 更新关闭逻辑

* doc: 更新示例

* doc: 更新示例

* refactor: 移除 console 代码

* doc: 实现循环发送逻辑

* doc: 分类更改为服务

* doc: 完善发送数据逻辑

* feat: 继承 IAsyncDispose 接口

* refactor: 代码优化

* refactor: 更正关闭串口逻辑

* refactor: 申请串口增加保护逻辑

* doc: 更新文档

* refactor: 更新文档

* doc: 更新文字

* doc: 增加新组件标志

* chore: bump version 8.10.4-beta03

* test: 更新单元测试

* refactor: 重命名类

* doc: 更新示例

* test: 更新单元测试

* test: 更新单元测试
2024-10-19 13:18:51 +08:00
Argo Zhang
fdd92e1835 fix(FileIcon): missing svg widht/height (#4483)
* fix: 更新 Icon 组件变量

* chore: bump version 8.10.4-beta02
2024-10-18 10:14:35 +08:00
Argo Zhang
5af54c7595 feat(CheckboxList): update style of IsVertical (#4481)
* style: 更新样式

* chore: 更新脚本

* chore: 增加 net9 支持

* chore: 支持 net9 sdk

* chore: remove net9 sdk
2024-10-18 09:34:13 +08:00
Argo Zhang
3a690c60b8 chore(sdk): add net9 sdk support (#4479)
* chore: 增加 net9 支持

* chore: 支持 net9 sdk

* chore: remove net9 sdk
2024-10-18 09:30:38 +08:00
Argo Zhang
d76464a2bb fix(Tab): not update url when close the latest tab item (#4477)
* fix(tab): 导航Tab 当关闭最后一个标签时,跳转默认url

* 添加demo

* doc: 增加组件注释

* chore: 更新格式

* refactor: 重构代码

* refactor: 更新逻辑

* refactor: 重构代码

* refactor: 删除标签页时清空菜单配置项参数

* test: 更新单元测试

* test: 更新单元测试

* chore: 移除测试工程

* chore: bump version 8.10.4-beta01

---------

Co-authored-by: Diego <2248356998@qq.com>
2024-10-17 19:51:00 +08:00
Argo Zhang
be300a878d doc(Site): update dependencies to the latest (#4472)
* chore: 指定 sass 工具版本号

* chore: 更新依赖包
2024-10-17 18:09:14 +08:00
Argo Zhang
5749ff0682 feat(IZipArchiveService): auto create zip folder (#4469)
* feat: 增加文件夹自动创建功能

* test: 增加单元测试

* chore: bump version 8.10.3
2024-10-16 16:29:13 +08:00
Argo Zhang
c31b4815d3 chore(Icon): bump version 8.1.0 (#4464) 2024-10-15 21:14:20 +08:00
Argo Zhang
60e95b2134 feat(Tab): support style attribute (#4462)
* feat(Tab): support style attribute

* chore: bump version 8.10.3-beta03
2024-10-14 15:55:09 +08:00
Argo Zhang
b9299ef677 fix(Select): update padding-right variable (#4460)
* refactor: update padding right variable

* chore: bump version 8.1.0.3-beta02
2024-10-14 15:00:29 +08:00
Argo Zhang
53b2cec736 feat(BarcodeGenerator): redesign BarcodeGenerator component (#4459)
* doc: 增加配置组件

* chore: 更新字典

* doc: 更新示例

* chore: 更新依赖包

* doc: 更新参数说明文档

* test: 更新单元测试
2024-10-14 14:38:42 +08:00
Argo Zhang
4254fabd66 fix(ColorPicker): throw exception when dispose (#4457) 2024-10-14 14:04:35 +08:00
Argo Zhang
c07c23417c refactor(JsonEnumConverter): update namespace (#4455) 2024-10-14 14:04:14 +08:00
Argo Zhang
f9f09348bf refactor(Localizer): update Localization namesapce (#4453)
* refactor: 更改命名空间

* doc: 更新命名空间

* doc: 更新命名空间

* test: 更新单元测试
2024-10-14 14:03:46 +08:00
Diego2098
71ee1ab035 perf(Tab): improve create tab item from url performance (#4445)
* fix(tab): 创建TabItem时不需要渲染TabItem组件

* 添加复现demo

* 更新复现demo

* refactor: 增加不渲染设置

* refactor: 重构代码

* refactor: 更新私有变量

* chore: 增加拼写字典配置

* refactor: 精简代码

* refactor: 更改参数生效生命周期

* refactor: 增加部分 Tab 参数

* doc: 更新文档

* doc: 更新示例

* refactor: 增加部分 Tab 参数

* test: 增加单元测试

* refactor: 精简代码

* doc: 更新文档

* chore: 移除测试工程

* revert: 撤销代码更改

* chore: bump version 8.10.3-beta01

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试

---------

Co-authored-by: Argo-AsicoTech <argo@live.ca>
2024-10-13 20:49:43 +08:00
Argo Zhang
14871c4ed6 feat(Layout): add ShowTabItemClose parameter (#4449)
* refactor: 增加部分 Tab 参数

* test: 增加单元测试
2024-10-13 20:05:32 +08:00
Alex chow
ab93093eac doc(UriFormat): use SafeUnescaped instead of Unescaped (#4440)
Co-authored-by: Argo-AsicoTech <argo@live.ca>
2024-10-12 20:19:40 +08:00
Alex chow
75130dab56 feat(Link): add Rel parameter #4437 (#4438)
* feat(Link): 添加 Rel 属性参数 #4437

* refactor: 代码格式化

* test: 更新单元测试

---------

Co-authored-by: Argo-AsicoTech <argo@live.ca>
2024-10-12 20:13:24 +08:00
Argo Zhang
51be23dd6a doc(ImageCropper): add round image sample code (#4443)
* refactor: 增加 throw 防止 js 导入失败时无提示

* doc: 更新 ImageCropper 示例

* doc: 更新示例

* feat: 增加圆形头像示例

* chroe: bump version 8.1.0

* test: 更新单元测试

* refactor: 重构代码
2024-10-12 20:08:01 +08:00
Argo Zhang
a7607123f4 chore(deps): update dependence (#4435)
* chore(deps): update dependence

* chore(deps): update dependence

* chore: 更新依赖
2024-10-11 18:18:09 +08:00
Argo Zhang
1bf275a778 chore(Props): update project configuration (#4433)
* chore: update Html2Pdf to 8.2.1

* chore: update dependence package version

* chore: 更新 bundle 配置

* chore: 更新 wasm 配置支持

* chore: 更新仓库信息配置
2024-10-10 21:36:21 -07:00
Argo Zhang
63384c8f17 doc(HtmlToPdf): bump version 8.2.1 (#4431) 2024-10-10 21:24:41 -07:00
Argo Zhang
0b7fe8aaed doc(Icons): update icons style sheet documentation (#4428)
* refactor: 移除 version 工具配置

* chore: 更新 warning 配置

* chore: 更新 Json 依赖配置

* chore: 移除版本工具链配置

* refactor: 移动 CS8002 警告配置

* chore: 移除平台配置

* chore: 更新 Json 高风险配置

* chore: 增加 wasm 平台支持配置

* chore: 更新 Json 版本配置

* doc: 更新图标样式使用文档

* chore: bump version 8.10.2
2024-10-10 19:49:28 -07:00
Argo Zhang
5c414c1f96 chore(Props): update project configuration (#4425)
* refactor: 移除 version 工具配置

* chore: 更新 warning 配置

* chore: 更新 Json 依赖配置

* chore: 移除版本工具链配置

* refactor: 移动 CS8002 警告配置

* chore: 移除平台配置

* chore: 更新 Json 高风险配置

* chore: 增加 wasm 平台支持配置

* chore: 更新 Json 版本配置
2024-10-10 18:15:28 -07:00
Argo Zhang
de6c9b668c feat(ColorPicker): support IsSupportOpacity toggle (#4423)
* doc: 增加排序功能

* chore: 更新依赖包

* chore: 精简配置文件

* feat: 支持动态切换值

* doc: 更新示例

* test: 更新单元测试
2024-10-10 15:49:01 +08:00
Argo Zhang
17f93f6b0b chore(Security): update dependence (#4421)
* refactor: 调整基金会图片样式

* chore(Security): update dependence
2024-10-10 12:22:49 +08:00
Argo Zhang
07799163b8 feat(DropdownWidget): add OnItemShown/CloseAsync parameter (#4419)
* feat: add OnItemCloseAsync method

* doc: 更新 DropdownWidget 示例代码

* feat: 增加 OnItemShownAsync 回调方法

* test: 更新单元测试

* chore: 更新配置文件

* refactor: 精简代码

* test: 增加单元测试

* test: 更新单元测试

* chore: bump version 8.10.2-beta05
2024-10-09 19:19:52 -07:00
Argo Zhang
bdae9f4114 doc(Table): update edit mode sample code (#4418)
* chore: 更新依赖包

* doc: 更新编辑模式示例
2024-10-09 19:01:22 +08:00
dependabot[bot]
f90fa0cbc1 chore(deps): bump System.Text.Json in /src/BootstrapBlazor.Server (#4412)
Bumps [System.Text.Json](https://github.com/dotnet/runtime) from 8.0.4 to 8.0.5.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.4...v8.0.5)

---
updated-dependencies:
- dependency-name: System.Text.Json
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-09 18:11:50 +08:00
Argo Zhang
b89943d4b9 feat(Table): IsKeepSelectedRows effect in add method (#4414)
* feat: 增加 IsKeepSelectedRowAfterAdd 参数

* refactor: 重构代码

* chore: bump version 8.10.2-beta04

* test: 更新单元测试

* doc: 增加 IsKeepSelectedRowAfterAdd 参数文档

* Revert "refactor: 重构代码"

This reverts commit b6d77cf9cf.

* refactor: 代码重构
2024-10-09 15:30:42 +08:00
Argo Zhang
fe032c9370 doc(Readme): add .net foundation code of conduct (#4410)
* doc: add .net foundation code of conduct

* doc: 更新网站
2024-10-08 14:31:00 +08:00
Argo Zhang
490e0aaceb fix(Table): table footer cell not update in Card mode (#4408)
* fix: 修复卡片模式下 Footer 统计函数不更新问题

* chore: bump version 8.10.2-beta03
2024-10-08 13:20:41 +08:00
Argo Zhang
67a235ecff feat(AutoComplete): add OnBlurAsync parameter (#4406)
* refactor: 精简代码

* feat: 增加 OnBlurAsync 参数

* test: 增加单元测试

* revert: 撤销更改
2024-10-08 11:57:04 +08:00
Argo Zhang
fb28ef966f chore(TableExport): bump version 8.3.0 (#4405) 2024-10-08 11:10:03 +08:00
j4587698
50186e531f feat(ThemeProvider): support auto mode (#4400)
* 更改Theme切换的实现方式

* 删除部分调试信息

* refactor: 重构代码

* refactor: 代码重构提高可读性

* refactor: 代码重构

* refactor: 精简代码

* test: 更新单元测试

* refactor: 更新代码

* refactor: 保持动画效果一致

* refactor: 增加保护逻辑

* refactor: 提高代码可读性

---------

Co-authored-by: Argo-AscioTech <argo@live.ca>
2024-10-07 20:33:47 +08:00
Argo Zhang
d0d24b3a87 doc(Icon): update css refer documentation (#4398)
* doc: 更新 BootstrapIcon 文档

* doc: 增加 MD 图标文档

* refactor: 精简代码

* refactor: 精简代码
2024-10-07 18:34:59 +08:00
Argo Zhang
68523117e2 feat(Topology): remove css isoloation (#4396) 2024-10-06 11:03:20 +08:00
Argo Zhang
7e782fc8a7 refactor(SvgIcon): add css variable (#4394)
* refactor: 增加 Icon 图标大小变量

* refactor: SvgIcon 增加样式变量
2024-10-05 22:43:04 +08:00
Argo Zhang
38acb2f995 feat(SignaturePad): remove css isolation (#4392) 2024-10-04 21:31:20 +08:00
Argo Zhang
466db27580 doc(DockView): update dockview sample code (#4390)
* doc: 更新卡片模式下样式

* doc: 更新示例
2024-10-03 22:30:19 +08:00
Argo Zhang
119e5d7bae refactor(Online): add sort function (#4388)
* refactor: 代码格式化

* feat: 列表排序

* refactor: 更新样式
2024-10-02 22:12:07 +08:00
Argo Zhang
65d9737bb2 feat(WebClientService): make client info id consistent with webclient id (#4385)
* refactor: 更改 IRootComponentGenerator 接口方法

* refactor: 更新示例

* Revert "refactor: 更改 IRootComponentGenerator 接口方法"

This reverts commit e9d8e6a447.

* doc: 更新注释

* refactor: 增加 GetClientId 方法

* doc: 更新示例

* test: 更新单元测试

* refactor: 更新脚本

* refactor: 撤销新增方法

* doc: 更新示例

* test: 移除单元测试

* refactor: 精简代码
2024-10-01 17:21:16 +08:00
Argo Zhang
d85da3fee7 feat(Table): add CreateSearchModelCallback parameter (#4384)
* perf: 优化性能

* refactor: 精简代码

* refactor: 增加 CreateSearchModelCallback 回调方法

* test: 更新单元测试

* chore: bump version 8.10.2-beta02

* test: 增加单元测试

* test: 更新单元测试

* test: 更新单元测试

* refactor: 删除注释掉的代码
2024-09-30 12:53:10 +08:00
Argo Zhang
f0dfab00b7 perf(ValidateForm): support validate multiple validate form (#4382)
* perf: 优化性能

* refactor: 精简代码

* refactor: 重构代码提高可读性

* revert: 移除后来增加的代码

* test: 更新单元测试
2024-09-30 10:29:24 +08:00
Argo Zhang
b18a5506b8 perf(DateTimePicker): update cache when click year button (#4381)
* fix: 年视图切换时获得禁用日期数据

* test: 增加单元测试

* refactor: 更新单元测试
2024-09-30 10:10:30 +08:00
Argo Zhang
3739e9bb15 fix(Table): search model initialize twice (#4379)
* fix: 修复顶栏搜索自定义模型初始化问题

* chore: bump version 8.10.2-beta01
2024-09-29 18:30:44 +08:00
Amos
edb667cfb7 feat(DateTimePicker): support customize disabled date (#4304)
* feat(DateTimePicker): Support custom disable dates

* 调整单元测试

* 撤销格式化调整

* 撤销格式化调整

* 调整单元测试

* 调整ViewMode的赋值逻辑

* 调整单元测试

* 调整SelectedValue赋值

* 提高覆盖率

* 调整MinValueToToday逻辑

* 撤销MinValueToToday时对MinValue/MaxValue的校验

* refactor: 重命名参数名称

* 调整支持不可为空时间

* 补充单元测试

* test: 更新单元测试

* doc: 移除不使用的命名空间

* revert: 撤销更改

* refactor: 更新代码提高代码覆盖率

* refactor: 精简代码提高可读性

* doc: 更新功能示例

* refactor: 更改禁用日期回调方法名称

* test: 更新单元测试

* refactor: 重新设计禁用日期获得逻辑

* doc: 更新示例

* test: 更新单元测试

* refactor: 重构代码

* refactor: 重构代码

* refactor: 撤销代码更改

* test: 更新单元测试

* refactor: 重构清除缓存逻辑

* doc: 更新示例

* refactor: 更新缓存清除逻辑

* test: 更新单元测试

* refactor: 代码重构

* doc: 更新注释文档

* doc: 更新示例

* refactor: 代码重构

* perf: 提高性能

* refactor: 重构代码

* feat: 视图切换时更新禁用日期缓存

* refactor: 格式化代码

* wip: 临时提交

* refactor: 增加 UI 显示逻辑

* revert: 撤销 UI 更改

* refactor: 重命名回调方法

* refactor: 优化代码

* refactor: 更新示例

* feat: 增加缓存清除实例方法

* doc: 增加动态切换回调方法示例

* refactor: 重构 FormatValueAsString 提高可读性

* doc: 更新文档说明

* doc: 更新注意事项

* test: 增加清除方法单元测试

* doc: 更新介绍文字

* doc: 更正单词拼写错误

* refactor: 调整示例

* doc: 更新文档

* doc: 更新示例

* refactor: 更新文档

* refactor: 防止多线程报错

* feat: 增加 DisplayDisabledDayAsEmpty 参数

* doc: 更新示例

* refactor: 更新 FormatValueAsString 逻辑

* doc: 更新 DisplayDisabledDayAsEmpty 参数说明

---------

Co-authored-by: Argo-AscioTech <argo@live.ca>
2024-09-29 14:01:26 +08:00
Argo Zhang
9b879c46ee doc(DockView): update lock sample code (#4376)
* dock: 更新锁定示例

* chore: upgrade dockview package to 8.1.6
2024-09-28 19:58:38 +08:00
Argo Zhang
10b6629c3a doc(CardUpload): update documation (#4373)
* doc: 更新示例上传文件限制更改为 5M

* feat: 增加 AutoResetWhenInvalid 参数

* doc: 代码格式化

* Revert "feat: 增加 AutoResetWhenInvalid 参数"

This reverts commit 87985498f6.

* chore: bump version 8.10.1
2024-09-27 16:28:45 +08:00
Argo Zhang
5c629bb377 feat(ListView): item template support click callback (#4370)
* feat: 模板支持 OnClick 与内置样式

* chore: bump version 8.9.4
2024-09-27 16:24:44 +08:00
Ernesto Ramos Rio
ed8209e9db fix(DateTimePicker): body defaulting to current month (#4357)
* adjusting single view mode to display current date instead of previous month

* doc: 代码格式化

* refactor: 更新变量名称

* doc: 代码格式化

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2024-09-27 12:56:50 +08:00
Argo Zhang
565e669e6c fix(Table): IsDisabled parameter not work in Toolbar on gear mode (#4362)
* fix: 更新单元测试

* refactor: 代码重构

* Revert "fix: 更新单元测试"

This reverts commit 9d74006dbe.

* fix: 更新 gear 按钮内禁用功能
2024-09-27 09:18:03 +08:00
AiZhen
4a8f80aacd fix(ValidateForm): validate all validation from MetadataType (#4360)
* 修复 MetadataType 方式继承 IValidateCollection 接口验证后又对其中涉及的属性进行了单独验证,在特定情况下会忽略单独验证的错误提示。#4359

* fix: 更新 ValidateForm 验证逻辑

* refactor: 重构代码

* refactor: 更改 IValidateCollection 接口方法名称

* 调整代码以通过验证。

* doc: 增加注释文档

* refactor: 精简代码

* test: 更新单元测试

* chore: bump version 8.9.4-beta06

---------

Co-authored-by: Argo <argo@live.ca>
2024-09-26 14:55:41 +00:00
Argo Zhang
3cb9837df7 fix(PopConfirmButton): can't remove pop in table extension button (#4356)
* fix: can't remove the pop

* chore: bump version 8.9.4-beta05

* test: 更新单元测试
2024-09-25 16:17:08 +08:00
Argo Zhang
eb94df80c4 chore(Dependence): update project configuration (#4355)
* chore: update pull request template

* chore: update sass compiler package

* chore: 单元测试统一版本号

* refactor: 调整框架依赖版本号

* chore: 更新包版本
2024-09-25 10:52:23 +08:00
Argo Zhang
14a3099334 refactor(TreeView): prevent space key default action (#4353)
* doc: 更新示例增加垂直滚动条

* refactor: 阻止空格默认行为

* chore: bump version 8.9.4-beta04
2024-09-25 10:17:14 +08:00
Argo Zhang
9938de3300 feat(TreeView): support toggle node by ArrowLeft/Right (#4351)
* feat: 增加左右按键支持

* test: 增加单元测试

* refactor: 更改参数名称

* refactor: 更新参数名称

* feat: 支持空格

* doc: 更新注释

* doc: 更新示例本地化

* test: 移除不需要的单元测试

* chore: bump version 8.9.4-beta03
2024-09-24 16:19:19 +08:00
Argo Zhang
a88946d165 feat(TreeView): add ScrollIntoViewOptions parameter (#4349)
* fix: 增强脚本防止报错

* perf: 优化性能

* refactor: 增加父级节点跳转逻辑

* feat: 增加选中节点自动居中功能

* feat: 增加 ScrollIntoViewOptions 配置

* test: 更新单元测试
2024-09-24 13:39:33 +08:00
Argo Zhang
44ca5711b8 feat(TreeView): support keyboard shortcut (#4345)
* refactor: 增加 EnableKeyboardArrowUpDown 参数

* refactor: 增加 js 回调

* feat: 增加客户端脚本逻辑

* feat: 实现上移下移逻辑

* feat: 增加 Enter 支持

* perf: 性能优化

* refactor: 精简代码提高可读性

* chore: bump version 8.9.4-beta02

* doc: 代码格式化

* refactor: 精简代码

* test: 更新单元测试

* doc: 增加示例

* doc: 更新本地化文档
2024-09-24 11:08:40 +08:00
Argo Zhang
e8d9bf1d35 feat(Dialog): support call show OnAfterRender lifecycle (#4343)
* refactor: 增加脚本加载阻塞逻辑

* refactor: 代码重构

* chore: bump version 8.9.4-beta01

* refactor: 移除基类脚本调用

* Revert "refactor: 代码重构"

This reverts commit 789d4b4df8.

* Revert "refactor: 增加脚本加载阻塞逻辑"

This reverts commit e9baf2f9f9.

* feat: 增加加载与初始化阻塞类

* feat: 支持 OnAfterRender 中弹窗
2024-09-23 13:57:46 +08:00
Argo Zhang
4d5801b3a5 chore(VideoPlayer): upgrade package version (#4339)
* chore: bump VideoPlayer version 8.0.7

* chore: 更新依赖

* chore: 更新 NoDataString 参数
2024-09-22 19:46:46 +08:00
Argo Zhang
bff062b92d refactor(FileViewer): bump version 8.1.0 (#4337)
* refactor: 更新属性名称

* chore: 更新组件包
2024-09-21 23:19:33 +08:00
Argo Zhang
9022b718ef feat(Checkbox): auto set DisplayText when set ShowAfterLabel to true (#4334)
* feat(Checkbox): support ShowAfterLabel

* test: 增加单元测试

* test: 更新单元测试

* chore: bump version 8.9.3
2024-09-20 16:06:14 +08:00
Argo Zhang
1ef1030933 fix(ValidateForm): show first element tooltip when set ShowAllInvalidResult to false (#4332)
* refactor: 更新寻找报错组件逻辑

* chore: bump version 8.9.3-beta02
2024-09-20 14:31:40 +08:00
AiZhen
d8b0458294 feat(MetadataTypeAttribute): support IValidatableObject/IValidateCollection (#4323)
* 增增 MetadataTypeAttribute 方式,以支持 IValidatableObject、IValidateCollection 接口验证方式。
增加简单示例。

* 增强 MetadataTypeAttribute 方式,以支持 IValidatableObject、IValidateCollection 接口验证方式。
增加简单示例。
修复文档测试错误。

* 修复代码覆盖率。

* 添加测试代码。

* 完善代码覆盖率。

* 调整示例。

* refactor: 代码格式化与规范化

* refactor: 移除不需要的命名空间

* doc: 更新示例代码

* refactor: 增加扩展方法提高代码复用率

* doc: 更新示例

* doc: 更新 MetadataType 示例

* refactor: 更新验证逻辑

* test: 更新单元测试

* chore: bump version 8.9.3-beta01

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2024-09-20 13:54:29 +08:00
AApuci
cf67c8552c fix(Dropzone): Insertions should be committed when drag ends without a drop. (#4313)
* 在drag元素但未drop时,items依然会插入变化,也需要commit

如果无此代码,拖拽立刻放下,将导致 此拖拽元素 hover等事件不再响应

* Revert "在drag元素但未drop时,items依然会插入变化,也需要commit"

This reverts commit fda87476a3.

* fix(Dropzone): Insertions should be committed while drag end without drop.

当drap但未drop而直接放下取消时,会调用 items.insert处理,此时需要commit;
否则可能导致 拖拽元素 hover 等响应异常

* chore: 更新字典

* test: 更新单元测试

* style: 更新样式名称

* refactor: 更新方法名称

* refactor: 精简代码

* refactor: 重构代码

* test: 更新单元测试

* chore: 补充字典

---------

Co-authored-by: Argo-AscioTech <argo@live.ca>
2024-09-20 12:17:40 +08:00
Argo Zhang
96aef4df16 chore(Docker): update docker auto script (#4327)
* doc: 更新文档

* style: 调整 H3 下边距

* chore: 更新字典

* doc: 更新配置文件

* chore: 更新 PR 模板

* chore: 更新 Docker 镜像脚本
2024-09-19 13:52:47 +08:00
Argo Zhang
752796712f feat(OnScreenKeyboard): update base class to fix script error (#4325)
* doc: 更新示例

* chore: 更新依赖包
2024-09-18 21:00:46 +08:00
Argo Zhang
06059918e5 feat(SortableList): add OnAdd parameter (#4319)
* doc: 更新示例

* doc: 增加示例本地化

* chore: 更新依赖包

* doc: 更新示例

* refactor: 更新示例代码

* refactor: 更新示例

* doc: 更新示例
2024-09-17 21:04:50 +08:00
Argo Zhang
5516fad731 fix(ValidateForm): add trigger the first invalid control tooltip logic (#4309)
* refacto: 更新触发第一个验证未通过组件状态逻辑

* refactor: 更新脚本

* feat: 增加条件判断

* fix: 更新错误条件

* chore: 更新 readme 文档

* feat: 重构获得错误显示逻辑

* refactor: 更新显示逻辑
2024-09-16 20:48:48 +08:00
Argo Zhang
d6b2551d17 fix(Sortable): incorrect dom when set Clone to true (#4317) 2024-09-16 20:48:19 +08:00
Argo Zhang
271d398e12 chore(Bug): update bug template (#4315)
* chore: 更新 bug 模板

* chore: 更新 Bug 模板配置项

* chore: remove slnf file
2024-09-16 14:41:38 +08:00
Argo Zhang
ab6b76b60b feat(Components): split extension component project into BootstrapBlazor.Extensions (#4311)
* chore: 拆分工程

* chore: 更新 Editor 组件包

* chore: 移除单元测试项目
2024-09-15 21:01:48 +08:00
Argo Zhang
9df814e5a4 fix(AutoFill): should not trigger OnCustomFilter callback when ArrowUp/Down/Esc/Enter key up (#4308) 2024-09-15 10:29:14 +08:00
Argo Zhang
f97a27fe57 doc(SortableList): add custom template sample (#4307) 2024-09-15 09:56:37 +08:00
Argo Zhang
7e78384945 feat(ValidateForm): add ShowAllInvalidResult parameter (#4306)
* feat: add parameter ShowAllInvalidResult

* feat: update ShowAllInvalidResult script

* chore: 更新 Layout 组件 Bar 样式

* test: 更新单元测试

* chore: bump version 8.9.2
2024-09-14 20:47:52 +08:00
AiZhen
c58ea0530b feat(FreeSqlExtensions): support CustomPredicate custom convert (#4300)
* 增加 FreeSqlExtensions.ToDynamicFilter 扩展方法自定义转换参数。

* refactor: 重新设计转换逻辑

* chore: bump version 8.2.1

* doc: 更新错误提示信息

---------

Co-authored-by: Argo-AscioTech <argo@live.ca>
2024-09-13 16:09:45 +08:00
Argo Zhang
264f7b5ac0 feat(RibbonTab): redesign RibbonTabItem class remove base class MenuItem (#4297)
* refactor: 重构 RibbonTabItem 类

* doc: 更新示例

* refactor: 增加缺失的属性

* chore: bump version 8.9.2-beta11

* chore: 更新 readme 文档

* feat: 增加 CssClass 参数支持自定义样式

* test: 更新单元测试

* chore: bump version 8.9.2-beta12
2024-09-13 11:34:02 +08:00
Argo Zhang
74dd58e16c doc(readme): update readme documentation (#4299)
* chore: 更新 readme 文档

* chore: bump version 8.9.2-beta11
2024-09-13 11:18:40 +08:00
Argo Zhang
7247d251cb bug(Select): not show full item after click Clear button (#4291)
* refactor: 重命名使用私有字段代替属性

* fix: 修复开启虚拟滚动后清空按钮导致数据不正确问题

* doc: 更新示例

* refactor: 变量重命名

* test: 更新单元测试

* chore: bump version 8.9.2-beta10

* test: 增加异常保护

* test: 更新单元测试

* refactor: 精简代码逻辑
2024-09-12 16:19:25 +08:00
Argo Zhang
2dfb64aa6a fix(BarCode): not work missing Id (#4288)
* refactor: 更新 Id 移除引用

* chore: 更新依赖

* chore: bump version 8.0.2

* chore: 更新 BarCode 包
2024-09-12 14:57:23 +08:00
Argo Zhang
af3140a335 feat(Layout): support dark mode (#4286)
* feat: support dark mode

* chore: bump version 8.9.2-beta09
2024-09-12 12:24:47 +08:00
Argo Zhang
a2a95e3122 feat(Table): add cascading value ChangeType to EditTemplate (#4285)
* feat: add ChangeType cascade value

* chore: bump version 8.9.2-beta08
2024-09-12 10:10:46 +08:00
Argo Zhang
ec6cb2af83 fix(Select): not trigger OnSelectedItemChanged when click clear icon (#4283)
* fix: 清空搜索栏触发 SelectedItemChanged 回调方法

* chore: bump version 8.9.2-beta07

* test: 更新单元测试
2024-09-12 09:42:47 +08:00
Argo Zhang
7dd6a2b25d feat(ValidateForm): add IValidateCollection interface for multiple validation (#4272)
* feat: 支持 IValidateCollection 接口

* doc: 更新示例

* doc: 更新示例代码

* doc: 更新本地化资源文件

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试
2024-09-11 20:10:14 +08:00
Amos
0718f9c050 feat(ValidateForm): add IValidatableObject support (#4260)
* 增加IValidatableObject支持

* 增加单元测试

* 补充demo模型

* 调整单元测试

* refactor: 更改模型名称

* chore: 更新字典

* chore: 移除不使用的命名空间

* doc: 更新示例

* fix: 修复字段更改时验证失效问题

* test: 更新单元测试

* doc: 格式化文档

* doc: 更新注释

* feat: 增加 IValidataResult 接口

* doc: 增加 IValidataResult 接口示例

* feat: 更新示例

* feat: 增加 ResetMemberNames 属性用于验证联动

* refactor: 调整时长防止脚本报错

* feat: 更新组件验证逻辑

* test: 更新单元测试

* refactor: 增加联动逻辑

* refactor: 精简代码

* feat: 增加验证失败联动逻辑

* refactor: 更改为 IValidateCollection 接口

* chore: 更新组件验证联动逻辑

* doc: 更新示例

* doc: 更新示例

* doc: 撤销更新准备还原类验证逻辑

* feat: 增加 IValidatableObject 逻辑支持

* refactor: 增加异常保护

* doc: 更新示例

* test: 更新单元测试

---------

Co-authored-by: Argo-AscioTech <argo@live.ca>
2024-09-11 16:13:13 +08:00
Argo Zhang
9425792f61 feat(NumberFilter): support nullable data type (#4261)
* feat: 支持可为空数据类型

* chore: bump version 8.9.2-beta06

* test: 更新单元测试
2024-09-10 17:13:49 +08:00
Argo Zhang
6f02ab0fe7 fix(Cascader): not pop dropdown menu after update IsDisable to false (#4257)
* refactor: 更正单词拼写错误

* refactor: 修复禁用后无法弹出问题

* chore: bump version 8.9.2-beta05
2024-09-10 15:28:32 +08:00
Argo Zhang
4dc4e05460 fix(ValidateBase): should Render UI after validate (#4255)
* fix: 调用刷新同步组件状态

* test: 更新单元测试
2024-09-10 15:13:57 +08:00
Amos
0de6cc81b4 refactor(IValidateComponent): remove ToggleMessage validProperty parameter (#4252)
* 删除无用的参数

* refactor: 增加忽略错误范围

* doc: 更新示例

* refactor: ToggleMessage 更改为异步方法

* style: 更新多选框样式

* Revert "style: 更新多选框样式"

This reverts commit eb2456fe9a.

* Revert "refactor: ToggleMessage 更改为异步方法"

This reverts commit cf04dacb74.

---------

Co-authored-by: Argo-AscioTech <argo@live.ca>
2024-09-10 14:40:48 +08:00
luodaoyi
f118a216d7 fix(EFCore): update EditAsync method (#4249)
Co-authored-by: Argo Zhang <argo@live.ca>
2024-09-10 12:19:35 +08:00
Amos
29e1d10ef9 fix(ValidateForm): ValidateAllProperties not work (#4245)
* 修复ValidateAllProperties属性设置不符合预期问题

* doc: 更新注释文档

* test: 更新单元测试

* test: 增加单元测试

---------

Co-authored-by: Argo-AscioTech <argo@live.ca>
2024-09-10 12:15:47 +08:00
Amos
1c74005c7b doc(ValidateForm): rename CustomerValidator to FormItemValidator (#4244)
Co-authored-by: Argo Zhang <argo@live.ca>
2024-09-10 10:42:07 +08:00
Argo Zhang
b8c28d1be4 feat(RequiredValidator): enhance the RequiredValidator class (#4247)
* refactor: 更改内部变量名

* refactor: 移除公共属性

* feat: 增加多语言支持

* chore: 更新字典表

* test: 更新单元测试名称

* test: 更新单元测试
2024-09-10 10:33:47 +08:00
Argo Zhang
5369c28397 feat(Player): support YouTube Vimeo video (#4242)
* doc: 更新示例

* chore: 更新源码包

* chore: 支持 YouTube

* refactor: 更改命名空间

* chore: 更新依赖包

* refactor: 支持 YouTube

* doc: 更新 YouTube 示例

* doc: 更新示例

* chore: 更新字典

* refactor: 重命名 Markers 类

* chore: 更新字典

* doc: 增加 Vimeo 示例

* doc: 更新音频源

* feat: 增加多语言

* chore: bump version 8.0.0-beta05

* revert: 撤销命名空间更改

* chore: 更新 Player 依赖包

* doc: 增加本地化
2024-09-10 08:53:54 +08:00
Argo Zhang
da3bc9a8b8 feat(ColorPicker): add localizer parameter (#4240)
* feat: support i18n

* chore: bump version 8.9.2-beta04
2024-09-09 17:45:52 +08:00
Argo Zhang
7e23a7ea59 doc(Readme): remove oscs badge (#4238)
* doc: remove oscs badge

* doc: 更新 readme 文件
2024-09-09 17:40:58 +08:00
Argo Zhang
a3a28d4506 fix(Table): not collapse edit form after save the new item (#4236)
* refactor: 使用 IsVisible 代替 checkVisibility 提高兼容性

* fix: 修复EditForm 模式下新建条目保存时未自动关闭问题

* chore: bump version 8.9.2-beta03
2024-09-09 14:56:14 +08:00
Argo Zhang
ed6dca900b feat(JSModule): redesign JSModule support null js object (#4234)
* refactor: 移除 Module 属性支持 空 对象

* doc: 移除不使用的代码

* refactor: 返回值增加可为空标识

* refactor: 返回值可为空

* refactor: 更新返回值类型

* doc: 更新示例

* test: 更新单元测试

* test: 更新单元测试
2024-09-09 14:14:08 +08:00
Argo Zhang
e95c53b573 fix(RadioList): update vertical button style (#4232)
* fix: 更新脚本

* fix: 兼容垂直布局

* chore: bump verson 8.9.2-beta02

* doc: 移除空行
2024-09-09 12:52:15 +08:00
Argo Zhang
678a39386b feat(ColorPicker): support IsDiabled parameter (#4231)
* feat: 支持手动更新值逻辑

* style: 值自动转化为大写样式

* test: 更新单元测试

* feat: 支持禁用状态切换

* style: 增加禁用样式

* perf: 优化性能

* doc: 更新示例

* test: 更新单元测试

* doc: 更新本地化资源文件

* doc: 更新文档资源文件

* chore: bump version 8.9.2-beta01
2024-09-09 12:13:30 +08:00
jin momiji
11d9d1a0a4 feat(ColorPicker): add IsSupportOpacity parameter (#4069)
* feat: Add new version of color picker associated file (file contents copied from old version)

* feat: Implement simple hue slider and saturation/brightness Palette

* feat: Add multiple color formats to display

* feat: Added an extension to set the Alpha channel

* feat: Adds a callback to send the last result after closing the Settings window

* refactor: Move the mouse event to the js side for computation instead of sending it to blazor for computation and returning it to element

* feat: Adds coordinates calculated based on the entered color values and modifies component positions

* feat: Adjust the code format, fix some details, and add the corresponding usage document content

* feat: Add tests for 'NeedAlpha' and 'FormatType'

* refactor: 增加颜色拾取器脚本与样式

* chore: 增加脚本自动化

* feat: 更新组件 ColorPicker 组件支持透明度

* refactor: 更新样式

* feat: 增加默认值初始化逻辑

* doc: 更新示例

* refactor: 更新实现逻辑

* refactor: 实现透明度数值显示

* refactor: 更新 dom 结构

* revert: 撤销组件

* revert: 撤销示例

* revert: 撤销文档本地化更新

* test: 删除单元测试

* test: 增加单元测试

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2024-09-08 20:33:07 +08:00
Argo Zhang
a7528e3870 bug(PopConfirmButtom): throw exception cause dispose (#4225)
* fix: 更新脚本防止报错

* chore: bump version 8.9.1
2024-09-07 16:20:43 +08:00
Argo Zhang
7d9a6a9fef doc(CodeEditor): remove sample code for anlysis log (#4221)
* fix: 增加 LoadModule 异常日志

* doc: 更新示例名称

* doc: 临时屏蔽组件分析日志

* test: 增加单元测试
2024-09-07 02:31:04 +08:00
Argo Zhang
830fd762f6 feat(CherryMarkdown): inherits BootstrapModuleComponentBase (#4217)
* refactor: 更新基类复用 JSModule 类

* chore: bump version 8.0.1

* chore: 更新依赖包
2024-09-06 13:45:14 +08:00
Argo Zhang
4487117da5 fix(Table): selected row callback causes infinite loop (#4215)
* fix: 增加选中行判断逻辑防止多次触发

* chore: bump version 8.9.1-beta05

* test: 补充单元测试
2024-09-06 13:36:50 +08:00
Argo Zhang
f0435a0470 feat(Table): add Required parameter (#4213)
* doc: 更新注释文档

* feat: 增加 Required 参数

* feat: 增加 IsRequiredWhenAdd/Edit 参数

* refactor: 实现类实现 Required 参数

* doc: 更新文档

* feat: 增加 ShowRequired 参数

* refactor: 增加 Required 值传递逻辑

* feat: 实现必填项标志显示逻辑

* refactor: 更改为主构造函数

* feat: 增加 RequiredErrorMessage 参数

* feat: 增加 RequiredErrorMessage 参数

* feat: 增加必填项提示文字资源文件

* chore: bump version 8.9.1-beta04

* test: 更新单元测试

* test: 更新 Auto 标签单元测试

* test: 更新单元测试

* test: 更新单元测试

* refactor: 增加参数标签

* test: 更新单元测试
2024-09-05 17:46:58 +08:00
Argo Zhang
8b7cf66a19 feat(Table): add BeforeShowEditDialogCallback parameter (#4211)
* wip: 临时移除 props

* chore: 更新解决方案文件

* doc: 更新文档

* doc: 更新注释文档

* feat(Table): add BeforeShowEditDialogCallback Parameter

* test: 更新单元测试

* chore: bump version 8.9.1-beta03
2024-09-05 09:32:10 +08:00
Argo Zhang
535eee94af feat(Converter): add JsonEnumConverter class (#4209)
* feat: 增加 JsonEnumConverter 转换器

* test: 增加单元测试

* refactor: 移除代码

* chore: bump version 8.0.2

* feat: 增加枚举转换器标签

* revert: 恢复扩展方法

* chore: bump version 8.9.1-beta02

* doc: 更新注释文档

* refactor: 移除转化器使用 BB 内置的

* chore: bump version 8.1.5-beta01

* doc: 更新依赖包

* chore: bump version 8.1.4-beta01

* chore: 更新依赖包

* chore: 更新 Core 工程位置
2024-09-04 16:10:49 +08:00
Argo Zhang
0d535d28c0 feat(Core): add BootstrapBlazor.Core project (#4205)
* chore: 增加 Core 工程

* chore: bump version 8.9.1-beta01

* chore: 更新 readme 文件

* test: 增加单元测试

* test: 更新单元测试

* test: 更新单元测试
2024-09-04 14:04:33 +08:00
Sunny
ccfa790bb1 doc(ButtonUpload): update document for ShowUploadFileList (#4200)
* Update en-US.json

Update en-US.json

Signed-off-by: Sunny <53289193+yhuse@users.noreply.github.com>

* Update zh-CN.json

Signed-off-by: Sunny <53289193+yhuse@users.noreply.github.com>

---------

Signed-off-by: Sunny <53289193+yhuse@users.noreply.github.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2024-09-04 12:10:25 +08:00
Argo Zhang
6141769f8b feat(DockViewV2): update Renderer parameter to enum data type (#4203)
* feat: 增加 DockViewRenderMode 类

* refactor: 更改 Renderer 参数为枚举类型

* refactor: 更改序列化转化器为泛型

* chore: bump version 8.1.3

* chore: 更新分析器规则

* chore: 更新依赖包
2024-09-04 12:04:11 +08:00
Argo Zhang
9b9678f723 feat(Player): add Mode parameter (#4196)
* refactor: 更正单词拼写错误

* feat: 增加 PlayerMode 参数指定播放器类型

* doc: 更新 Audio 示例

* doc: 增加音频示例

* chore: bump version 8.0.0-beta04

* chore: 更新依赖包
2024-09-03 14:40:50 +08:00
chengKun
89301c9dd6 feat(DockViewV2): update Renderer default value (#4193)
* refactor: 移除 Renderer 渲染方式默认值

* refactor: 处理renderer渲染方式

* doc: 代码格式化

* chore: bump version 8.1.2

* chore: 更新依赖包

---------

Co-authored-by: Argo-AscioTech <argo@live.ca>
2024-09-03 11:11:49 +08:00
Argo Zhang
cd2885b09a feat(Player): add Reload instance method (#4192)
* feat: 增加 reload 方法

* doc: 增加 reload 视频示例

* doc: 移除不使用的命名空间

* refactor: 更新配置类为 PlayerOptions

* doc: 根据最新设计更新示例

* doc: 增加菜单多语言
2024-09-03 10:48:05 +08:00
Argo Zhang
9e59472dd9 feat(Player): add IsHls parameter (#4190)
* doc: 增加菜单

* doc: 增加源代码映射

* doc: 增加 Marker 示例

* feat: 增加 PlayerMarker 类

* chore: bump version 8.0.0-beta03

* feat: 增加 IsHls 参数支持 meu8 格式

* chore: 移除 Player.razor.css 隔离样式

* doc: 增加 Hls 格式媒体

* chore: 增加多语言本地化

* chore: 更新依赖包
2024-09-02 11:53:34 +08:00
Argo Zhang
5318c5c3cd refactor(Player): redesign Player component use Callback (#4188)
* refactor: 增加 PlaySource 设置

* doc: 更新示例

* feat: 增加 Tracks 功能

* feat: 增加预览功能

* refactor: 重构 Players 结构

* doc: 更新示例

* chore: bump version 8.0.0-beta02

* chore: 更新依赖包 8.0.0-beta02
2024-09-01 19:24:07 +08:00
Argo Zhang
a76d009668 feat(Player): add Player component (#4186)
* refactor: 精简代码

* feat: 增加 Player 工程

* chore: 更新字典

* chore: bump version 8.0.0-beta01

* chore: bump version 8.9.0
2024-08-31 23:36:45 +08:00
Argo Zhang
70e2847970 test(Core): merge base class (#4182)
* fix: 更新逻辑

* doc: 更正示例锚点

* doc: 更新文档

* doc: 更新示例文档

* test: 重构 EFCore 单元测试

* test: 精简单元测试基类

* test: 移除 ExportPdfTest 基类

* test: 移除 FooContext 类

* test: 更新 Tab 单元测试

* chore: bump version 8.8.5-beta09
2024-08-30 11:17:28 +08:00
Argo Zhang
8ae4b5dac6 refactor(Split): update javascript make min/max correct (#4184)
* fix: 更新逻辑

* doc: 更正示例锚点

* doc: 更新文档

* doc: 更新示例文档
2024-08-30 10:06:56 +08:00
Argo Zhang
f0e630abb0 feat(Split): resolve minimum setting conflict (#4180)
* feat: 更新 tooltip 报错问题

* fix: 增加 border-style 样式

* refactor: 精简代码

* feat: 增加最小值冲突解决逻辑

* chore: bump version 8.8.5-beta08
2024-08-29 20:37:54 +08:00
Argo Zhang
9241937b61 feat(Split): add Minimum parameter (#4178)
* feat: 增加最小尺寸参数

* refactor: 调整参数位置

* doc: 更正过期提示词

* feat: 增加 FirstPaneMinimumSize 参数输出

* doc: 更新文档键值

* feat: 实现最大值最小值动态计算功能

* doc: 增加最小值示例

* refactor: 增加异常保护

* doc: 更新参数说明文档

* doc: 增加参数说明文档

* test: 增加单元测试

* chore: bump version 8.8.5-beta07
2024-08-29 15:56:11 +08:00
Argo Zhang
09d53ff881 feat(Split): add OnResizeAsync parameter (#4177)
* feat: 增加 OnResizedAsync 回调方法

* feat: 增加 SplitterResizedEventArgs 类

* doc: 增加 OnResizeAsync 示例

* refactor: 增加 SplitsOnResizedAsync 文档

* doc: 增加折叠按钮文档

* refactor: 增加 IsCollapsible 参数动态支持

* test: 更新单元测试

* refactor: 重构方法名

* chore: bump version 8.8.5-beta06
2024-08-29 13:33:57 +08:00
Argo Zhang
ca28669677 feat(Split): add ShowBarHandle parameter (#4175)
* feat: add ShowBarHandle parameter

* test: 增加单元测试

* doc: 增加 ShowBarHandle 参数文档

* feat: 增加 ShowBarHandle 参数

* test: 更新单元测试
2024-08-29 12:24:20 +08:00
Argo Zhang
bb45bc1891 fix(PopConfirmButton): auto reset palcement to Auto (#4173)
* doc: 增加注释文档

* refactor: 增加不支持的参数更改为 Auto

* chore: bump version 8.8.5-betra05
2024-08-29 10:15:06 +08:00
Argo Zhang
7711a848f9 feat(split): add IsKeepOriginalSize parameter (#4171)
* feat: 增加 IsKeepOriginalSize 参数

* style: 微调样式

* test: 增加单元测试

* chore: bump version 8.8.5-beta04

* doc: 增加参数文档
2024-08-29 10:04:50 +08:00
Diego2098
20f7bc7e7e fix(WinBox): dispose ChildContent component (#4167)
* fix: winbox 关闭时刷新组件

* chore: bump version 8.0.3

* doc: 更新示例

* chore: 更新依赖包

---------

Co-authored-by: Argo-AscioTech <argo@live.ca>
2024-08-28 12:58:08 +08:00
Amos
25a413c5ea feat(split): support pane collapsible (#4138)
* feat(split): support pane collapsible

* modify css

* modify css

* beautify and fix bugs

* adjust parameter

* modify unit tests

* modify unit tests

* coverage

* modify css

* fix bugs

* wip: test modify PR

* add document

* fix bugs

* modify some description

* fix bugs

* refactor: 调整 bar 样式

* style: 调整垂直样式

* style: 增加垂直布局样式

* style: 增加 handler 样式

* style: 更新垂直布局样式

* refactor: 增加 IsCollapsible 参数

* refactor: 增加按钮支持

* style: 微调样式

* doc: 精简 dom 结构

* style: 微调样式适配收起动画

* feat: 更新脚本实现收起展开动画特效

* style: 颜色变量化

* style: 增加动画效果

* doc: 更新文档说明

* test: 更新单元测试

* feat: 增加 OnCollapsedAsync 回调方法

* feat: 实现 OnCollapsedAsync 逻辑

* test: 增加单元测试

* doc: 移除不需要的本地化设置

* chore: bump version 8.8.5-beta03

* style: 增加暗黑主题颜色

* style: 更正暗黑主题变量

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2024-08-28 01:29:47 +08:00
Argo Zhang
c66b9f2f3d fix(AutoComplete): support Tab when set IsPopover to true (#4165)
* refactor: 格式化脚本

* refactor: 增加 Focus 事件

* refactor: 精简代码

* chore: bump version 8.8.5-beta02
2024-08-27 12:42:28 +08:00
Argo Zhang
c22a03d5c0 feat(WinBox): add Mask background color function (#4164)
* fix: 模态框支持遮罩

* refactor: 更新遮罩透明度

* chore: bump version 8.0.2

* doc: 更新遮罩功能
2024-08-27 12:16:50 +08:00
Argo Zhang
d58768cd80 feat(WebSpeechRecognition): add Callback parameter (#4162)
* refactor: 更正语音包设置

* refactor: 增加回调事件条件

* chore: bump version 8.0.0

* chore: 更新 WinBox 依赖包

* chore: bump version 8.8.5-beta01
2024-08-27 10:21:49 +08:00
Argo Zhang
5f41cfb2e9 fix(WinBox): Title parameter not work (#4160)
* fix: 更新脚本

* chore: bump version 8.0.1

* doc: 更新 WinBox 包
2024-08-26 20:43:52 +08:00
Argo Zhang
107ed92633 fix(TableExport): throw exception when exeport excel (#4157)
* feat: 增加 FieldCount 实现

* chore: bump version 8.2.1

* doc: 更新 TableExport 包

* doc: 更正错别字
2024-08-26 18:58:54 +08:00
chengKun
5945b0fb3c feat(DockViewV2): support Renderer parameter (#4153)
* fix: 修复dockview切换tab或拖动时iframe重新加载

* fix: 给拖动时新增的group添加ResizeObserver

* fix: 修复把floating group拖入结构中时浮动按钮显示状态异常

* refactor:panel添加内边距

* refactor: 代码格式化

* refactor: 增加异常保护

* fix:修复title拼接错误导致自定义布局页面报错

* chore: bump version 8.1.1

* doc: 更新依赖包

---------

Co-authored-by: Argo-AscioTech <argo@live.ca>
2024-08-26 17:15:43 +08:00
vickyhcq
08141de52b refactor(Table): add PopupFormDialog Field (#4128)
Signed-off-by: Argo Zhang <argo@live.ca>
Co-authored-by: Argo Zhang <argo@live.ca>
2024-08-26 00:06:29 +08:00
Argo Zhang
61414bb5da feat(Table): add EditDialog parameter (#4150)
* feat: 增加 EditDialog 参数

* doc: 更新示例

* refactor: 重构单元测试

* test: 增加单元测试
2024-08-26 00:02:09 +08:00
Argo Zhang
1039f1d146 feat(Recognition): support continuous recognition (#4146)
* refactor: 移除测试代码

* feat: 实现 stop/abort 逻辑

* refactor: 适配 safari 浏览器

* feat: 增加识别参数

* refactor: 代码格式化

* refactor: 增加识别参数

* doc: 移除 WebSpeech 菜单

* feat: 移除可信度增加 IsFinal 参数

* feat: 支持持续识别功能

* doc: 更新示例

* refactor: 增加持续识别支持

* test: 更新单元测试

* doc: 增加持续识别本地化文字说明

* doc: 更新文档

* test: 更新单元测试
2024-08-25 17:12:34 +08:00
Argo Zhang
14161aa9de test(TestBase): redesign test context base (#4144)
* test: 移除 DrawerTestBase 基类

* test: 移除 DialogTestBase 基类

* test: 重构 AuthorizationViewTestBase 单元测试

* test: 更新继承关系精简代码

* test: 移除 EditorForm 测试基类

* test: 更新 EFCore 测试基类

* test: 重构 PdfTest 测试基类

* test: 移除 ErrorLogger 测试基类

* test: 移除 MessageTest 基类

* test: 移除 SwalTestBase

* test: 移除 RobbinTabTestBase

* test: 移除 PopoverTestBase

* test: 重构 TableDialogTestBase

* test: 移除 TableDrawerTestBase

* test: 移除 TablePopConfirmTestBase

* test: 重构 ValidateFormTestBase

* test: 重构 TabTestBase

* test: 移除 TableTestBase

* test: 移除 TableSortDialogTestBase

* test: 修复单元测试

* test: 移除 CollectionOrderer 规则

* test: 重构 SpeechTestBase

* test: 增加代码覆盖率排除规则

* chore: bump version 8.8.4
2024-08-25 14:00:57 +08:00
Argo Zhang
0cc6eb5609 test(Fixture): remove collection unit test (#4142)
* test: 更正文件名

* test: 更新单元测试

* refactor: 单元测试隔离

* test: 隔离容易出错的单元测试

* revert: 撤销更新

* test: 撤销基类更新

* test: 移除共享

* test: 撤销基类更新

* test: 撤销基类更新

* refactor: 适配其他单元测试工程

* refactor: 移除命名空间

* test: 更新单元测试

* refactor: 移除不使用的命名空间

* test: 移除单元测试内不使用的命名空间

* chore: 移除不使用的命名空间

* test: 更新单元测试
2024-08-25 01:38:15 +08:00
Argo Zhang
db419c17be feat(WebSpeechRecognition): add WebSpeechRecognition service (#4140)
* test: 代码重构

* test: 更新单元测试

* test: 更新单元测试

* test: 移动报错单元测试到其他集合

* refactor: 精简代码

* refactor: 移动报错单元测试到其他集合

* test: 增加 ButtonTestBase 隔离单元测试

* refactor: 精简代码

* refactor: 移动到新文件夹

* refactor: 移动语音识别到单独文件夹

* feat: 增加语音识别

* refactor: 增加脚本

* doc: 增加示例

* refactor: 移除不需要的回调方法

* doc: 更新示例

* refactor: 更新异常回调

* doc: 更新示例

* feat: 增加回调方法

* test: 更新单元测试

* doc: 更新示例
2024-08-24 23:23:58 +08:00
Argo Zhang
5a2b1caf5c feat(WebSpeech): add GetVoices method (#4137)
* doc: 增加菜单

* chore: 增加源码映射配置

* feat: 增加 GetVoices 方法

* doc: 更新示例

* feat: 增加 Voice 实体类

* feat: SpeakAsync 方法增加 voice 参数

* doc: 更新示例

* doc: 增加本地化

* feat: 增加 OnErrorAsync 回调方法

* test: 增加 Error 单元测试

* feat: 增加 CancelAsync 方法

* doc: 增加停止按钮示例

* feat: 增加暂停恢复方法实现逻辑

* test: 补全单元测试

* test: 增加单元测试

* test: 增加单元测试
2024-08-24 12:22:59 +08:00
Argo Zhang
ad6ac66d62 feat(WebSpeechSynthesizer): add WebSpeechSynthesizer service (#4135)
* refactor: 使用主构造函数

* feat: 增加 WebSpeech 服务

* feat: 增加 WebSpeechService 服务

* doc: 增加示例

* feat: 增加回调方法

* doc: 更新示例

* doc: 更新示例

* chore: bump version 8.8.4-beta07
2024-08-23 23:02:16 +08:00
Argo Zhang
511a88ee72 feat(WinBox): add ShowModal method (#4132)
* feat: 增加 ShowModal 方法

* style: 更新样式名称

* feat: 增加级联参数

* feat: 增加关闭弹窗按钮

* chore: 增加字典

* style: 增加内置样式

* feat: 增加 Stack 方法

* feat: 增加最大化最小化恢复窗口方法

* doc: 更新示例

* feat: 增加 Overflow 参数

* style: 增加不换行样式

* feat: 增加设置标题图标方法

* doc: 更新文档

* doc: 更新示例增加功能按钮

* feat: 更正OnShow 回调

* refactor: 删除冗余变量

* doc: 增加 Modal 示例

* refactor: 增加 modal 样式

* test: 更新 DateTimePicker 单元测试

* test: 增加 Root 单元测试

* test: 更新 Button 单元测试

* Revert "test: 更新 DateTimePicker 单元测试"

This reverts commit b6a9875ef6.

* Revert "test: 更新 Button 单元测试"

This reverts commit b82fe2a8f4.

* chore: bump version 8.0.0-beta04

* chore: bump version 8.0.0-beta04
2024-08-23 15:05:38 +08:00
Argo Zhang
7dc2eed0ef doc(WinBox): add QA documentation (#4126)
* chore: 增加 new 标识符号

* refactor: 增加暗黑模式支持

* refactor: 增加文档

* feat: 增加 IRootComponentGenerator 接口

* doc: 更新文档

* refactor: 增加自动生成根节点方法

* chore: bump version 8.0.0-beta03

* chore: 更新依赖包

* doc: 更新文档

* doc: 更新链接文档

* chore: 格式化项目文件
2024-08-22 20:30:20 +08:00
Argo Zhang
9f89a1d9d9 feat(IRootComponentGenerator): add IRootComponentGenerator interface (#4124)
* feat: 增加 IRootComponentGenerator 接口

* chore: bump version 8.8.4-beta06
2024-08-22 20:05:58 +08:00
Argo Zhang
f75d09f656 fix(Split): mask not removed after drag (#4122)
* refactor: 更新遮罩逻辑

* chore: bump version 8.8.4-beta05
2024-08-22 17:22:06 +08:00
Argo Zhang
e207c5bd64 fix(Table): do not trigger sort when click copy column icon (#4120)
* fix: 防止拷贝触发排序

* doc: 更新示例

* chore: bump version 8.8.4-beta04
2024-08-22 17:15:25 +08:00
spring rain
f40679b00b doc(ContextMenus): add localization (#4116)
Co-authored-by: Argo Zhang <argo@live.ca>
2024-08-22 16:00:07 +08:00
Argo Zhang
be83f7812f feat(WinBox): add WinBox component (#4118)
* chore: 增加组件资源

* chore: 增加服务

* feat: 增加 WinBox 服务

* feat: 增加 WinBox 组件

* chore: 增加 Logo

* chore: 增加 WinBox 工程

* doc: 增加 WinBox 代码映射配置

* doc: 代码格式化

* doc: 增加示例组件

* chore: 增加服务

* doc: 增加菜单

* doc: 移除不使用的脚本

* chore: 增加 WinBox 工程

* refactor: 增加扩展方法

* feat: 增加 Close 回调方法

* doc: 增加本地化菜单

* doc: 增加默认示例

* refactor: 更新弹窗状态改变回调方法

* refactor: 增加回调方法

* doc: 更新示例

* doc: 增加参数说明文档

* doc: 更新注释

* chore: 增加依赖包

* refactor: 增加自定义样式

* chore: bump version 8.0.0-beta02
2024-08-22 15:58:35 +08:00
spring rain
73b6a4a1db feat(ContextMenu): Add OnClickBefore callback event (#4112)
* Add OnClickBefore callback event

* refactor: 移动 OnBeforeShowCallback 到 ContextMenu 组件上

* feat: 增加 OnDisabledCallback 回调方法

* feat: 增加 OnDisabledCallback 参数

* doc: 增加示例

* doc: 更新示例代码

* doc: 更新测试示例代码

* refactor: 精简逻辑提高性能

* refactor: 增加只读关键字

* revert: 移除关键字

* test: 更新单元测试

* test: 更新单元测试

* test: 增加单元测试

* doc: 增加示例本地化

* chore: bump version 8.8.4-beta03

---------

Co-authored-by: Argo-AscioTech <argo@live.ca>
2024-08-22 12:33:16 +08:00
Argo Zhang
8a4a136a85 feat(DockView): add Renderer parameter (#4114)
* refactor: 增加 Renderer 参数

* refactor: 增加 Renderer 参数控制渲染方法

* chore(DockView): bump version 8.1.0
2024-08-22 11:33:51 +08:00
Argo Zhang
eb7a516394 fix(Split): iframe drags incorrectly (#4109)
* feat: 支持 iframe 拖动

* chore: bump version 8.8.4-beta02
2024-08-21 14:13:18 +08:00
Argo Zhang
4ee8dd7065 test(Configuration): update test for check docs.json (#4107)
* doc: 移除 doc 配置

* doc: 补全本地化

* test: 更新单元测试

* test: 更新单元测试

---------

Co-authored-by: YSMC-W <ysmc_w@163.com>
Co-authored-by: YSMC-W <505496523@qq.com>
2024-08-21 11:10:44 +08:00
Argo Zhang
86ebfab548 chore(Build): upgrade dependence to latest version (#4105)
* chore: add Base class

* chore: bump version 8.2.0

* chore: bump version 8.2.0

* chore: bump version 8.2.0

* chore: bump version 8.1.0

* chore: 更新依赖包到最新

* chore: bump version 8.1.0

* chore: bump version 8.1.0

* chore: bump version 8.1.0

* chore: bump version 8.1.0

* chore: bump version 8.2.0

* chore: bump version 8.2.0

* chore: bump version 8.2.0

* chore: bump version 8.1.0

* doc: 更正单词拼写错误

* test: 更新单元测试

* test: 更新依赖组件包

* refactor: 根据最新包调整代码

* test: 精简代码消除警告信息

* test: 增加 EditorTestBase 单元测试隔离
2024-08-21 10:32:13 +08:00
Argo Zhang
975205c6bd doc(Tutorials): add pro website link (#4103)
* doc: add NET9.0 in list

* doc: 增加 pro.blazor.zone 站点介绍

* doc: 增加 admin 路由

* style: 增加鼠标特效

* doc: 增加中台卡片

* doc: 增加演示网站
2024-08-21 01:03:54 +08:00
Argo Zhang
7664351801 doc(BootstrapInput): update UseInputEvent documentation (#4097)
* doc: 更新 UseInputEvent 文档

* test: 更新 ButtonUpload 组件单元测试

* test: 更新刷新按钮单元测试

* doc: 移除不需要 IAsyncDisposable 接口

Co-authored-by: jin momiji <105467851+momijijin@users.noreply.github.com>
2024-08-20 10:34:33 +08:00
Argo Zhang
d8d13c716e feat(ButtonUpload): add ChildContent parameter (#4095)
* feat: 增加 BrowserButtonColor 参数

* feat: 增加 ChildContent 参数

* refactor: razor 文件支持

* chore: bump version 8.8.4-beta01
2024-08-19 13:19:11 +08:00
Argo Zhang
c88fa83ce5 fix(Chart): update chart.js url (#4093)
* fix: update chart.js url

* chore: bump version 8.2.3

* chore: update chart version to 8.2.3
2024-08-19 11:23:06 +08:00
Argo Zhang
b9c6cb1810 feat(Chart): support client extension option (#4091)
* refactor: remove tooltips option

* refactor: 消除警告信息

* refactor: 移除调试输出脚本

* feat: 增加 BootstrapBlazor Chart 客户端实例

* refactor: 更新脚本名称

* refactor: 增加自定义工具栏扩展方法

* Revert "refactor: 更新脚本名称"

This reverts commit 9d5c598656.

* chore: 增加 js 输出脚本

* chore: bump version 8.2.2

* doc: 增加自定义 Tooltip 示例文档

* doc: 格式化文档

* doc: 增加回调示例

* doc: 增加实现步骤文档

* doc: 增加注释文档

* chore: upgrade Chart package to 8.2.2

* chore: bump version 8.8.3
2024-08-19 01:34:58 +08:00
Argo Zhang
97a273a6c4 feat(Chart): upgrade chart.js to 4.4.3 (#4089)
* refactor: upgrade lib to 4.4.3

* chore: bump version 8.2.1
2024-08-18 23:05:46 +08:00
Argo Zhang
db3ad716da fix(Chart): reload method missong OnClickData callback (#4086)
* fix: update method missong onClickDataMethod handler

* refactor: add Interop parameter

* chore: bump version 8.2.0
2024-08-17 21:17:29 +08:00
Argo Zhang
90c34878e8 refactor(Table): refactor logic for event callback selected row (#4084)
* test: 更新单元测试

* refactor: 更改逻辑

* refactor: 移除回调方法

* refactor: 精简代码

* refactor: 重构代码提高代码可读性

* refactor: 简化逻辑提高代码可读性

* doc: 增加注释文档

* refactor: 重构代码提高代码可读性

* refactor: 重构代码提高代码可读性

* refactor: 更新代码消除警告信息

* refactor: add SelectedRowsChanged callback

* chore: bump version 8.8.3-beta05

* revert: 撤销更改

Co-authored-by: Amos <hzh990094740@outlook.com>

---------

Co-authored-by: Amos <hzh990094740@outlook.com>
2024-08-17 02:29:48 +08:00
Argo Zhang
c492c6fb79 fix(Table): PageItems not work (#4082)
* refactor: 更新 _pageItems 变量逻辑

* refactor: 支持 PageItems 代码更改逻辑
2024-08-17 02:16:42 +08:00
Argo Zhang
4a61921da9 feat(CardUpload): add IsUploadButtonAtFirst (#4081)
* feat: 增加 IsUploadButtonAtFirst 参数

* feat: 增加 IsUploadButtonAtFirst

* refactor: 增加前置增加按钮逻辑

* refactor: 增加前置增加按钮逻辑

* test: 增加单元测试

* refactor: 更新脚本
2024-08-17 02:11:22 +08:00
Argo Zhang
c8764afea2 refactor(Chart): move AppendData into ChartDataSource (#4079)
* refactor: 移动 AppendData 到 DataSource 中

* refactor: 更新脚本

* chore: bump version 8.1.10

* doc: 更新示例
2024-08-16 12:49:35 +08:00
Argo Zhang
2764b1d25e fix(Table): not callback SelectedRow when query data (#4072)
* fix: 修复 ResetSelectedRows 未回调问题

* refactor: 精简代码逻辑

* chore: bump version 8.8.3-beta04

* refactor: 增加回调

* Revert "fix: 修复 ResetSelectedRows 未回调问题"

This reverts commit f1484a526f.

* Revert "refactor: 精简代码逻辑"

This reverts commit b46d42c00e.

* refactor: 撤销代码

* doc: 更新注释文档

* fix: 增加 SelectedRows 回调方法

Co-authored-by: AiZhen <53560110+AiYuZhen@users.noreply.github.com>
2024-08-15 23:49:29 +08:00
Argo Zhang
acac1b9d5f feat(TableExport): add DataReaderBase class (#4074)
* refactor: 使用基类精简代码

* chore: update excel package
2024-08-15 22:20:26 +08:00
Argo Zhang
c99b66075a doc(Chart): revert Stack parameter (#4064)
* chore: bump version 8.1.9

* doc: 更新 Chart 组件到 8.1.9

* feat: 增加 Swap 功能

* doc: 更新 Swap 示例

* refactor: 更新逻辑

* chore: 更新本地化资源文件

* doc: 更新文档

* refactor: 内置插件

* chore: bump version 8.0.4

* chore: 更新依赖包

* doc: 更新文档
2024-08-14 21:55:42 +08:00
AiZhen
ff0a638ac3 revert(Chart): remove Stack parameter (#4059)
Co-authored-by: Argo Zhang <argo@live.ca>
2024-08-14 19:59:34 +08:00
Argo Zhang
2591ee6f3f feat(SortableList): add MultiDrag parameter (#4061)
* chore: 更新组件包名称

* chore: 更新配置消除警告信息

* doc: 增加多选拖动示例

* feat: 增加 MultiDrag 参数示例

* style: 增加默认样式

* chore: 更新扩展组件统一配置

* doc: 更新文档说明

* feat: 增加 SortableListItem 类

* doc: 增加多项拖动示例

* refactor: 增加 SortableEvent 简化代码

* chore: bump version 8.0.2

* chore: bump version 8.0.3

* feat: 增加 FooSortableListItem 组件

* doc: 使用组件更新示例代码

* refactor: 移除样式

* doc: 更新示例

* chore: 更新依赖包
2024-08-14 19:55:26 +08:00
ice6
158274ea21 fix(MaterialDesignIcons): wrong link to material design icon (#4054)
* fix: wrong link to material design icon

Signed-off-by: ice6 <ice6@live.cn>

* fix: wrong link to material design icons

Signed-off-by: ice6 <ice6@live.cn>

---------

Signed-off-by: ice6 <ice6@live.cn>
Signed-off-by: Argo Zhang <argo@live.ca>
Co-authored-by: Argo Zhang <argo@live.ca>
2024-08-14 11:37:37 +08:00
Argo Zhang
9e57fea3b3 chore(props): update ide config for NET9 (#4057)
* doc: 更新链接

* chore: 移除 bundleconfig 配置文件

* chore: 增加警告排除配置

* chore: 合并配置

* chore: 增加依赖包消除警告信息
2024-08-14 11:28:08 +08:00
Argo Zhang
305e9a1802 doc(SortableList): update clone sample (#4053)
* doc: 更新克隆示例

* doc: 更新拖动示例
2024-08-14 10:11:25 +08:00
Argo Zhang
e69bdd4080 fix(Table): has gap when set IsFixedFooter to true (#4050)
* style: 调整 footer 样式

* doc: 代码格式化

* doc: 增加固定表头固定页脚示例

* chore: 移除 Chart 工程引用

* style: 代码格式化

* doc: 更正代码错误

---------

Co-authored-by: Amos <hzh990094740@outlook.com>
2024-08-14 00:08:24 +08:00
Argo Zhang
2ba4ce4fe2 fix(Table): fieldName incorrect when column set IsFixed=true (#4048)
* doc: 格式化文档

* fix(Table): fieldName incorrect on OnResizeColumnAsync

* chore: bump version 8.8.3-beta03

Co-authored-by: 250721899 <250721899@qq.com>
2024-08-13 17:42:32 +08:00
Argo Zhang
f85b22791c feat(Chart): add AppendData parameter (#4047)
* chore: bump version 8.1.7

* chore: 更新依赖

* Feat(Chart): use custom ChartDataSource (#4041)

Co-authored-by: Argo Zhang <argo@live.ca>

* chore: bump version 8.1.8

* refactor: 重构代码

* feat: 增加 AppendData 扩展数据

* feat: 增加 AppendData 参数

* refactor: 增加 deepMerge 方法

* doc: 增加 AppendData 示例

* chore: 更新项目依赖

* refactor: 更新命名空间

---------

Co-authored-by: AiZhen <53560110+AiYuZhen@users.noreply.github.com>
2024-08-13 17:01:38 +08:00
AiZhen
4792fe6ebc feat(Chart): use custom ChartDataSource (#4041)
Co-authored-by: Argo Zhang <argo@live.ca>
2024-08-13 15:39:51 +08:00
Argo Zhang
2cdc38e08f feat(Table): add CreateTItemCallback to support required modifier (#4042)
* refactor: 移除 new 约束

* feat: 增加 CreateItemCallback 回调方法用于创建泛型模型实例

* refactor: 适配 SearchModel 模型

* refactor: 移除 new 约束

* test: 增加单元测试

* chore: 数据服务移除 new 约束

* test: 更新单元测试

Co-authored-by: ihonliu <ihonliu@gmail.com>
2024-08-13 14:28:12 +08:00
Argo Zhang
172d17e3c9 fix(Table): cancel edit when selected multiple row on EditFormMode (#4040) 2024-08-13 11:09:28 +08:00
AiZhen
e3cfcdc98b feat(Chart): add Stack parameter (#4038)
* Revert "feat(Layout): do not render Header/Footer if template is null (#3946)"

This reverts commit 1b727d972b.

* Reapply "feat(Layout): do not render Header/Footer if template is null (#3946)"

This reverts commit ebc5367d63.

* 增加堆叠分组属性。

---------

Co-authored-by: Argo Zhang <argo@live.ca>
2024-08-12 23:35:23 +08:00
Argo Zhang
04026f7f29 fix(Table): throw exception when resize window on enable detail and fix header (#4037)
* fix: throw exception when resize window

* chore: bump version 8.8.3-beta02
2024-08-12 22:07:35 +08:00
Argo Zhang
3554cc95ef refactor(SortableList): update OnUpdate/OnRemove logic (#4034)
* refactor: 移除恢复节点逻辑

* chore: 更新依赖包

* doc: 更新资源文件

* chore: bump version 8.0.1

* chore: 更新依赖包
2024-08-12 20:11:00 +08:00
Argo Zhang
0acee7423c feat(SortableList): add SortableList component (#4029)
* feat: 增加 Sortable 工程

* feat: 增加 SoratableList 组件

* refactor: 移除接口

* doc: 增加 SortableList 菜单与代码映射配置

* refactor: 增加响应式样式

* doc: 代码格式化

* doc: 增加 SortableList 示例

* doc: 代码格式化

* feat: 增加 Clone 配置

* doc: 增加克隆节点示例

* feat: 增加 putback 参数支持

* doc: 增加排序参数示例

* refactor: 增加 Handler 属性

* doc: 增加有条件性拖拽示例

* refactor: 增加表格拖拽逻辑

* refactor: 更新脚本支持懒加载元素

* feat: 增加 OnUpdate 回调方法

* doc: 增加 OnUpdate 方法示例

* doc: 增加 OnRemove 回调方法示例

* feat: 增加 OnRemove 回调方法

* feat: 增加客户端拖动逻辑提高性能

* chore: bump version 8.0.0
2024-08-12 17:22:28 +08:00
Argo Zhang
54a180c81f doc(DrawerService): add documentation for DrawerService (#4027)
* refactor: 移动 Icon 组件位置

* doc: 更新文档配置

* doc: 增加 DrawerService 文档

* doc: 增加抽屉服务文档

* doc: 更新文档状态
2024-08-11 14:29:21 +08:00
Argo Zhang
d1e71085fd feat(SvgIcon): add SvgIcon component (#4025)
* refactor: 重构代码

* test: 增加单元测试

* feat: 增加 href 参数逻辑

* test: 增加单元测试

* chore: bump version 8.8.3-beta01
2024-08-11 10:23:24 +08:00
Argo Zhang
78ec7ec5c4 feat(Core): add BootstrapBlazor Core project (#4023)
* chore: 增加 Core 工程

* chore: 增加 BootstrapBlazor.Core 工程
2024-08-11 10:00:14 +08:00
Argo Zhang
e7a609902e feat(ElementIcon): add Element svg icons (#4021)
* chore: remove bundle props link

* feat: add ElementIcon project

* refactor: 更改样式名称

* chore: bump version 8.0.4

* test: 增加 Element Icon 单元测试

* chore: 增加 Element Icon 工程

* test: 合并单元测试工程

* refactor: 更改 svg 资源路径

* chore: 增加 Element Icon 菜单

* doc: 增加 Element 示例

* refactor: 重构代码

* chore: 更新依赖包

* chore(AntDesign): bump version 8.0.0

* chore(ElementIcon): bump version 8.0.0

* chore: 更新依赖包
2024-08-11 01:14:09 +08:00
Argo Zhang
7a8bedbc8f doc(Icon): add Icon menu (#4019)
* doc: 更新图标菜单

* doc: 新建图标分类

* doc: 更新命名空间

* doc: 增加 SvgIcon 组件

* refactor: 移动 FAIcon 到 Icons 目录下

* refactor: 字节跳动图标组件名称更改

* refactor: 字节跳动图标列表组件

* refactor: 更新脚本

* doc: 更新资源文件

* refactor: 移除 IconList 组件

* refactor: 移除 ByteDanceIconList 组件

* doc: 增加 IconList 组件

* refactor: 调整脚本路径

* chore: 更新依赖包组件

* refactor: 增加  BootstrapIcon 图标集合

* chore: BootstrapIcon 包更新到 8.0.3

* doc: 增加 Bootstrap Icon 页面

* doc: 增加 MaterialDesign Icon 文档

* doc: 更新链接地址

* doc: 格式化文档

* refactor: 精简代码

* refactor: 更新 ant 图标

* style: 更新样式

* refactor: 增加 AntDesignIcon 列表

* refactor: 更改组件名称
2024-08-11 00:20:00 +08:00
Argo Zhang
605b9ef96b fix(Table): calc body height incorrect on CardView mode (#4017)
* fix: 修复 CardView 模式下未观察 Toolbar 与 pages

* chore: bump version 8.8.2
2024-08-10 13:12:26 +08:00
Argo Zhang
5d5624b696 fix(AutoFill): support enter when set OnCustomeFilter callback (#4015) 2024-08-10 12:30:18 +08:00
Argo Zhang
573e1f45b8 feat(TreeView): MaxSelectedCount support collapsed node (#4014)
* feat: 增加子节点判断

* test: 更新单元测试
2024-08-10 11:31:18 +08:00
Argo Zhang
f73a595463 feat(AntDesignIcon): add AntDesignIcon lib (#4012)
* refactor: 增加 AntDesign Icon 工程

* feat: 增加 AntDesign 图标

* doc: 更新注释

* test: 更新单元测试

* refactor: 更新示例

* chore: 更新菜单配置
2024-08-10 01:48:11 +08:00
Argo Zhang
4442d52a77 feat(CheckboxList): add OnMaxSelectedCount/OnMaxSelectedCountExceed parameter (#4010)
* feat: 增加 MaxSelectedCount/OnMaxSelectedCountExceed 参数

* doc: 增加示例文档

* test: 增加单元测试

* chore: bump version 8.8.2-beta05
2024-08-09 19:16:21 +08:00
Argo Zhang
debdabce33 feat(TreeView): add MaxSelectedCount OnMaxSelectedCountExceed parameter (#4007)
* feat: 增加 OnBeforeStateChanged 回调方法

* feat: 增加 MaxSelectedCount 参数

* refactor: 通过 OnBeforeStateChanged 实现逻辑

* refactor: 增加 OnMaxSelectedCountExceed 回调执行逻辑

* refactor: 增加客户端阻止逻辑

* refactor: 增加阻止继承标签

* doc: 更新文档

* refactor: 更新注释

* refactor: 精简代码

* test: 增加单元测试

* refactor: 重构代码

* test: 更新单元测试

* test: 更新单元测试

* doc: 更新文档

* doc: 增加多选最大值示例
2024-08-09 17:14:38 +08:00
Argo Zhang
fbfa97c528 feat(Checkbox): add OnBeforeStateChanged parameter (#4005)
* feat: 增加 OnBeforeStateChanged 回调方法

* refactor: 增加客户端阻止逻辑

* refactor: 增加阻止继承标签

* feat: 支持 OnBeforeStateChanged 回调方法

* doc: 格式化代码

* doc: 增加示例文档

* refactor: 重构代码

* test: 更新单元测试
2024-08-09 14:46:03 +08:00
Argo Zhang
e9e23e66fe bug(ValidaetForm): do not show label when InputGroup inside ValidateForm (#4003)
* refactor: 更改为可为空类型

* test: 更新单元测试

* test: 更新单元测试

* chore: bump version 8.8.2-beta04
2024-08-08 20:12:54 +08:00
Argo Zhang
acb412a954 fix(Table): overflow container when toolbar or pages wrap (#4001)
* fix(Table): table overfolow when pages wrap

* chore: bump version 8.8.2-beta03
2024-08-08 19:28:07 +08:00
Argo Zhang
5ee4ad92aa fix(Table): throw exception when resize table (#4000) 2024-08-08 18:43:35 +08:00
Argo Zhang
183e9a7890 feat(DriverJs): add Highlight method (#3997)
* feat: 增加 drive 方法

* refactor: 精简代码

* refactor: 移动回调方法到 Config 中

* doc: 更新示例

* feat: 增加高亮功能

* doc: 更新文档

* doc: 更新高亮示例

* chore: bump version 8.0.1
2024-08-07 19:46:33 +08:00
Argo Zhang
9cf3d3558c feat(DriverJs): add many instance method (#3995)
* doc: 更新按钮文字

* refactor: 增加元素判断

* refactor: 精简代码

* refactor: 增加实例方法

* refactor: 增加 AutoDrive/AutoDestroy 参数

* refactor: 代码格式化

* chore: bump version 8.0.0

* chore: 更新依赖包
2024-08-07 12:13:53 +08:00
Argo Zhang
f9f13536c9 refactor(IntersectionObserver): add AutoUnobserverWhenIntersection parameter (#3990)
* refactor: 更新 OnIntersecting 回调方法参数

* doc: 更新示例

* doc: 增加本地化

* test: 更新单元测试

* doc: 更新示例

* doc: 更新示例组件

* refactor: 更正脚本方法名称

* refactor: 更新逻辑

* refactor: 更新参数

* doc: 更新示例

* doc: 更新示例增加视频状态文字

* doc: 更新本地化文本内容

* test: 更新单元测试

* doc: 格式化文档

* doc: 更新示例

* doc: 增加示例

* test: 更新单元测试

* test: 更新单元测试

* test: 更新单元测试
2024-08-06 15:53:15 +08:00
Argo Zhang
7126ee9a33 refactor(IntersectionObserver): update Threshold data type (#3988)
* test: 增加单元测试

* refactor: 更改 Threshold 数据类型

* refactor: 更改回调方法名称

* refactor: 精简代码

* doc: 更新示例

* doc: 更新文档

* refactor: 移除 LoadMore 组件

* test: 更新单元测试
2024-08-06 10:26:42 +08:00
Argo Zhang
b02327aa70 feat(IntersectionObserver): add AutoUnobserve parameter (#3986)
* doc: 更新组件文档

* doc: 更新本地化文档

* refactor: 增加 AutoUnobserver 参数

* doc: 更新文档

* doc: 更新示例

* refactor: 更新脚本

* feat: 增加 UseElementViewport 参数

* doc: 更新触底加载

* doc: 更新示例文档

* style: 更新样式

* style: 调整正在加载指示器样式
2024-08-06 09:21:37 +08:00
Argo Zhang
476c935645 feat(IntersectionObserver): add IntersectionObserver component (#3984)
* doc: 增加源代码映射关系

* doc: 增加交叉检测组件

* feat: 增加交叉检测组件

* doc: 增加示例

* refactor: 增加示例

* refactor: 增加脚本

* refactor: 更新交叉检测逻辑

* doc: 更新示例

* doc: 更新文档本地化
2024-08-05 20:06:44 +08:00
Tony Guo
a7f9747346 feat(LoadMore): Add Observe element scroll to the Bottom Trigger Event (#3978)
* feat(LoadMore): Add Observe element scroll to the Bottom Trigger Event

新增:监听元素滚动底部触发新增数据方法,数据获取失败后重新获取数据的方法

* feat(LoadMore): Add Observe element scroll to the Bottom Trigger Event

新增:监听元素滚动底部触发新增数据方法,数据获取失败后重新获取数据的方法

* Update LoadMore.razor.cs

---------

Co-authored-by: mrtonyguo <guozhang164@hotmail.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2024-08-05 17:22:30 +08:00
SamXMG
656c028bd2 fix(Layout): can't collapse side when set side with value (#3977)
Co-authored-by: SamXMG <SamXMG@noreply.gitcode.com>
Co-authored-by: Argo Zhang <argo@live.ca>
2024-08-05 17:21:51 +08:00
Argo Zhang
e2c60b7a9d fix(Table): calc table height incorrect when invisible at first render (#3980)
* fix: 修复不可见表格高度计算不正确问题

* refactor: 使用动画帧 api

* chore: bump version 8.8.2-beta02
2024-08-05 16:56:45 +08:00
Argo Zhang
3468812560 fix(TimePicker): can't update value in Dialog (#3975)
* fix: 修复不可见状态时高度无法获得问题

* chore: bump version 8.8.2-beta01
2024-08-04 19:49:01 +08:00
3438 changed files with 89437 additions and 448785 deletions

View File

@@ -1,4 +1,4 @@
.dockerignore
.dockerignore
.env
.git
.gitignore

View File

@@ -68,10 +68,10 @@ resharper_web_config_type_not_resolved_highlighting = warning
resharper_web_config_wrong_module_highlighting = warning
# Code files
[*.{cs,csx,vb,vbx}]
[*.{cs,csx,vb,vbx,css,scss}]
indent_size = 4
[*.{cs,css,js,json,*html,razor,txt,log}]
[*.{cs,css,scss,js,json,*html,razor,txt,log}]
charset = utf-8-bom
[*.{xml,config,*proj,nuspec,props,resx,targets,yml,tasks}]
@@ -119,7 +119,7 @@ dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
@@ -140,11 +140,11 @@ dotnet_naming_symbols.constant_fields.required_modifiers = const
dotnet_style_operator_placement_when_wrapping = beginning_of_line
tab_width = 4
end_of_line = crlf
dotnet_style_prefer_collection_expression = true:suggestion
dotnet_style_prefer_collection_expression = when_types_exactly_match:suggestion
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:suggestion
dotnet_style_namespace_match_folder = true:suggestion
dotnet_style_namespace_match_folder = false:suggestion
dotnet_style_allow_multiple_blank_lines_experimental = true:silent
dotnet_style_allow_statement_immediately_after_block_experimental = true:silent
dotnet_code_quality_unused_parameters = all:suggestion
@@ -192,7 +192,7 @@ csharp_new_line_between_query_expression_clauses = true
# Indentation preferences
csharp_indent_case_contents = true
csharp_indent_switch_labels = true
csharp_indent_labels = flush_left
csharp_indent_labels = one_less_than_current
# Space preferences
csharp_space_after_cast = false
csharp_space_after_keywords_in_control_flow_statements = true
@@ -216,9 +216,9 @@ csharp_preserve_single_line_blocks = true
visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:suggestion
[*.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
file_header_template = Licensed to the .NET Foundation under one or more agreements.\nThe .NET Foundation licenses this file to you under the Apache 2.0 License\nSee the LICENSE file in the project root for more information.\nMaintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
csharp_style_namespace_declarations = file_scoped:silent
csharp_style_expression_bodied_local_functions = false:silent
csharp_using_directive_placement = outside_namespace:silent
csharp_prefer_simple_using_statement = true:suggestion
csharp_style_prefer_method_group_conversion = true:silent
@@ -245,3 +245,5 @@ csharp_style_prefer_switch_expression = true:suggestion
csharp_style_prefer_pattern_matching = true:silent
csharp_style_prefer_not_pattern = true:suggestion
csharp_style_prefer_extended_property_pattern = true:suggestion
csharp_prefer_static_anonymous_function = true:suggestion
csharp_prefer_system_threading_lock = true:suggestion

View File

@@ -18,7 +18,6 @@
".iced",
".config",
".cs",
".vb",
".json"
]
}

15
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
# These are supported funding model platforms
github: [ArgoZhang] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: bootstrapblazor # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

View File

@@ -23,7 +23,19 @@ body:
label: Expected Behavior
description: A clear and concise description of what you expected to happen.
validations:
required: false
required: true
- type: dropdown
attributes:
label: Interactive render mode
description: What render mode of our software are you running?
options:
- Static Server (Static server-side rendering (static SSR))
- Interactive Server (Interactive server-side rendering (interactive SSR) using Blazor Server)
- Interactive WebAssembly (Client-side rendering (CSR) using Blazor WebAssembly)
- Interactive Auto (Server, then client)
default: 1
validations:
required: true
- type: textarea
attributes:
label: Steps To Reproduce
@@ -35,22 +47,36 @@ body:
- If we will not be able to repro the behavior you're reporting.
- If the repro project is attached as a `.zip` file.
- If the GitHub repro project is set to `Private`.
如果您选择此模板说明您是想提交一个组件的 `BUG` 而不是来描述一个您遇到的问题结果,所以必须提供复现步骤与复现工程。如果不提供我们将不予处理,机器人将于一段时间后自动关闭本 `Issue`
请在下方文本框内写清楚,运行后点击那个页面,或者点击那个按钮复现问题,文件上传拖动到下方文本框内即可。
**最小复现工程**
- 删除 `bin` `obj` 文件夹后打包成 `zip` 压缩包的文件
- 公开 `github` 仓库地址
- 私有 `github` 仓库地址(邀请 argo@live.ca
placeholder: "drop file in here. (此处写复现步骤,最小工程压缩包可拖拽到这里)"
validations:
required: false
required: true
- type: textarea
attributes:
label: Exceptions (if any)
description: Include the exception you get when facing this issue.
placeholder:
validations:
required: false
- type: input
- type: dropdown
attributes:
label: .NET Version
description: |
Run `dotnet --version`
label: .NET Version
options:
- NET9.0
- NET8.0
- NET7.0
- NET6.0
default: 0
validations:
required: false
required: true
- type: textarea
attributes:
label: Anything else?
@@ -58,9 +84,9 @@ body:
- ASP.NET Core version:
- The IDE (VS / VS Code/ VS4Mac) you're running on, and its version:
- Include the output of `dotnet --info`:
Links? References? Anything that will give us more context about the issue you are encountering!
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: false

View File

@@ -18,14 +18,14 @@ body:
description: A clear and concise description of what the problem is.
placeholder: I am trying to do [...] but [...]
validations:
required: false
required: true
- type: textarea
attributes:
label: Describe the solution you'd like
description: |
A clear and concise description of what you want to happen. Include any alternative solutions you've considered.
validations:
required: true
required: false
- type: textarea
attributes:
label: Additional context

View File

@@ -1,45 +0,0 @@
# {PR title}
Summary of the changes (Less than 80 chars)
## Description
{Detail}
Fixes #{bug number} (in this specific format)
## Customer Impact
{Justification}
## Regression?
- [ ] Yes
- [ ] No
[If yes, specify the version the behavior has regressed from]
## Risk
- [ ] High
- [ ] Medium
- [ ] Low
[Justify the selection above]
## Verification
- [ ] Manual (required)
- [ ] Automated
## Packaging changes reviewed?
- [ ] Yes
- [ ] No
- [ ] N/A
----
## When servicing release/2.1
- [ ] Make necessary changes in eng/PatchConfig.props

View File

@@ -1,14 +1,37 @@
## {PR title}
## Link issues
fixes #{issue number}
<!-- Thank you for submitting a pull request to our repo. -->
<!--[Please fill in the relevant Issue number after the # above, such as #42]-->
<!--[请在上方 # 后面填写相关 Issue 编号,如 #42]-->
<!-- If this is your first PR in the ASP.NET Core repo, please run through the checklist
below to ensure a smooth review and merge process for your PR. -->
## Summary By Copilot
<!-- Once all that is done, you're ready to go. Open the PR with the content below. -->
<!-- Summary of the changes (Less than 80 chars) -->
## Regression?
- [ ] Yes
- [ ] No
### Description
<!--[If yes, specify the version the behavior has regressed from]-->
<!--[是否影响老版本]-->
close #{bug number}
## Risk
- [ ] High
- [ ] Medium
- [ ] Low
<!--[Justify the selection above]-->
## Verification
- [ ] Manual (required)
- [ ] Automated
## Packaging changes reviewed?
- [ ] Yes
- [ ] No
- [ ] N/A
## ☑️ Self Check before Merge
⚠️ Please check all items below before review. ⚠️
- [ ] Doc is updated/provided or not needed
- [ ] Demo is updated/provided or not needed
- [ ] Merge the latest code from the main branch

View File

@@ -18,13 +18,14 @@ jobs:
- name: Setup .NET SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
dotnet-version: 9.0.x
- name: Test
run: |
dotnet test test/UnitTest --collect:"XPlat Code Coverage"
- name: Upload to Codecov
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: BB

View File

@@ -10,17 +10,17 @@ on:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
dotnet-version: 9.0.x
- name: Build
env:
env:
NUGET_API_KEY: ${{secrets.NUGET_API_KEY}}
Bundle: True
run: |
@@ -32,6 +32,14 @@ jobs:
dotnet test test/UnitTest --collect:"XPlat Code Coverage"
- name: Upload to Codecov
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Check Router
run: |
dotnet test test/UnitTestDocs
- name: Check Localizer
run: |
dotnet test test/UnitTest.Localization

View File

@@ -1,25 +0,0 @@
name: Deploy to Huawei VM
on:
push:
branches:
- master-off
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Sync Huawei Clound VM
uses: appleboy/ssh-action@master
env:
BRANCH_NAME: ${{ env.GITHUB_REF }}
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: 22
script: |
cd ~/BootstrapBlazor
git checkout dev
sh ~/deploy-blazor.sh

View File

@@ -3,7 +3,8 @@ name: Build docker image
on:
push:
branches:
- dev-dockerfile
- pack
- release
jobs:
docker:
@@ -12,13 +13,13 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Login to Docker Hub
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Docker images
uses: docker/build-push-action@v2.7.0
uses: docker/build-push-action@v6
with:
file: src/BootstrapBlazor.Server/Dockerfile
push: true

View File

@@ -4,22 +4,23 @@ on:
push:
branches:
- pack
- release
- hotfix
jobs:
pack:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
dotnet-version: 9.0.x
- name: Publish to Nuget
env:
env:
NUGET_API_KEY: ${{secrets.NUGET_API_KEY}}
Bundle: True

View File

@@ -15,7 +15,7 @@ jobs:
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
dotnet-version: 9.0.x
- name: Publish wasm
run: |

View File

@@ -1,104 +0,0 @@
name: Package extensions to Nuget
on:
push:
branches:
- release
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Publish to Nuget
env:
NUGET_API_KEY: ${{secrets.NUGET_API_KEY}}
Bundle: True
run: |
dotnet pack src/Extensions/Components/BootstrapBlazor.AzureOpenAI -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.AzureOpenAI.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.AzureSpeech -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.AzureSpeech.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.BaiduOcr -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.BaiduOcr.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.BaiduSpeech -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.BaiduSpeech.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.BarCode -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.BarCode.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
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
dotnet pack src/Extensions/Components/BootstrapBlazor.CherryMarkdown -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.CherryMarkdown.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.CodeEditor -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.CodeEditor.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.Dock -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.Dock.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.FloatingUI -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.FloatingUI.*.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/Components/BootstrapBlazor.Gantt -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.Gantt.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.Html2Pdf -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.Html2Pdf.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.Live2DDisplay -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.Live2DDisplay.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
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.MaterialDesign -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.MaterialDesign.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.MaterialDesign.Extensions -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.MaterialDesign.Extensions.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.MouseFollower -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.MouseFollower.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.Splitting -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.Splitting.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.SummerNote -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.SummerNote.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.TableExport -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.TableExport.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/Components/BootstrapBlazor.Topology -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.Topology.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/DataServices/BootstrapBlazor.DataAccess.PetaPoco -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.DataAccess.PetaPoco.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/DataServices/BootstrapBlazor.DataAccess.EntityFrameworkCore -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.DataAccess.EntityFrameworkCore.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/DataServices/BootstrapBlazor.DataAccess.FreeSql -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.DataAccess.FreeSql.*.nupkg -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate
dotnet pack src/Extensions/BootstrapBlazor.TagHelper -c Release -o publish
dotnet nuget push publish/BootstrapBlazor.TagHelper.*.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

7
.gitignore vendored
View File

@@ -374,10 +374,13 @@ src/**/wwwroot/**/uploader
**/package-lock.json
# sass
**/BootstrapBlazor/wwwroot/scss/theme/*.css
**/BootstrapBlazor/wwwroot/scss/theme/*.css.map
**/BootstrapBlazor/wwwroot/css/animate.min.css
**/BootstrapBlazor/wwwroot/css/bootstrapblazor.min.css
**/BootstrapBlazor/wwwroot/css/bootstrap.min.css
**/BootstrapBlazor/wwwroot/css/bootstrap.rtl.min.css
**/BootstrapBlazor/wwwroot/css/sweetalert2.css
**/BootstrapBlazor/wwwroot/css/motronic.min.css
**/BootstrapBlazor/wwwroot/css/nano.min.css
# Bootstrap
**/BootstrapBlazor/wwwroot/js/bootstrap.blazor.bundle.min.js

View File

@@ -12,8 +12,8 @@
[issuetracker "Gitee-Commit"]
regex = "[C|c]ommit:([^\\s]*)"
url = "https://gitee.com/Longbow/BootstrapBlazor/commit/$1"
url = "https://github.com/dotnetcore/BootstrapBlazor/commit/$1"
[issuetracker "Gitee-PR"]
regex = "!([\\d]+)"
url = "https://gitee.com/Longbow/BootstrapBlazor/pulls/$1"
url = "https://github.com/dotnetcore/BootstrapBlazor/pulls/$1"

View File

@@ -1 +0,0 @@
\.git

View File

@@ -15,8 +15,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "linux", "linux", "{EA765165
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\deploy.sh = scripts\linux\deploy.sh
scripts\linux\nginx.conf = scripts\linux\nginx.conf
scripts\linux\remove.sh = scripts\linux\remove.sh
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "windows", "windows", "{4A5226E2-8EBD-4DEA-A1F5-2DF374655FA9}"
@@ -34,121 +35,49 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wasm", "wasm", "{B84D315E-9
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}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components", "components", "{CD062AB6-244D-402A-8F33-C37DAC5856CC}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data-services", "data-services", "{56FEFF09-85FC-408D-A397-6E264E68414E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Chart", "src\Extensions\Components\BootstrapBlazor.Chart\BootstrapBlazor.Chart.csproj", "{337FABF3-4318-408E-8544-C0F20D0197A1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Markdown", "src\Extensions\Components\BootstrapBlazor.Markdown\BootstrapBlazor.Markdown.csproj", "{EEB9751A-5C06-4725-8037-FA9C0F140018}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.TableExport", "src\Extensions\Components\BootstrapBlazor.TableExport\BootstrapBlazor.TableExport.csproj", "{5ED0DD16-1583-4FC3-B2E9-FE5DBA98BD47}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Server", "src\BootstrapBlazor.Server\BootstrapBlazor.Server.csproj", "{1ED371F3-2B28-4B2D-91B8-0C00DA42CB65}"
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.AzureSpeech", "src\Extensions\Components\BootstrapBlazor.AzureSpeech\BootstrapBlazor.AzureSpeech.csproj", "{42108A8A-C773-4F35-A870-3673BDD383E4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.BaiduSpeech", "src\Extensions\Components\BootstrapBlazor.BaiduSpeech\BootstrapBlazor.BaiduSpeech.csproj", "{4ED606D8-D252-4573-8F0F-B69502ADB7ED}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.CherryMarkdown", "src\Extensions\Components\BootstrapBlazor.CherryMarkdown\BootstrapBlazor.CherryMarkdown.csproj", "{018091B3-1E3A-41F3-87B2-5F285C2C3B73}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.SummerNote", "src\Extensions\Components\BootstrapBlazor.SummerNote\BootstrapBlazor.SummerNote.csproj", "{2FFC1564-EF75-454B-9D8E-A437A1737CEC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTestEditor", "test\UnitTestEditor\UnitTestEditor.csproj", "{9552B649-17E2-4BCA-8774-664C83A960CB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Topology", "src\Extensions\Components\BootstrapBlazor.Topology\BootstrapBlazor.Topology.csproj", "{6312863E-771D-4EFE-9B9D-071A01222E7A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.BarCode", "src\Extensions\Components\BootstrapBlazor.BarCode\BootstrapBlazor.BarCode.csproj", "{7F7F3B85-7B15-485C-8DC2-BAFD8C086957}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "localization", "localization", "{1BA43FCA-FA64-449E-A1F1-9C2C4A1D2D3F}"
ProjectSection(SolutionItems) = preProject
localization\de.json = localization\de.json
localization\es.json = localization\es.json
localization\pt.json = localization\pt.json
localization\ru-RU.json = localization\ru-RU.json
localization\th-TH.json = localization\th-TH.json
localization\zh-TW.json = localization\zh-TW.json
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.BaiduOcr", "src\Extensions\Components\BootstrapBlazor.BaiduOcr\BootstrapBlazor.BaiduOcr.csproj", "{F800DC0F-6829-4B64-B96B-B301A512AF2A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.MaterialDesign", "src\Extensions\Components\BootstrapBlazor.MaterialDesign\BootstrapBlazor.MaterialDesign.csproj", "{F9E37619-F519-4F73-8457-FFC4271EC443}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.MaterialDesign.Extensions", "src\Extensions\Components\BootstrapBlazor.MaterialDesign.Extensions\BootstrapBlazor.MaterialDesign.Extensions.csproj", "{B61A9684-E6B5-422E-821B-A29DCD079B43}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.AzureOpenAI", "src\Extensions\Components\BootstrapBlazor.AzureOpenAI\BootstrapBlazor.AzureOpenAI.csproj", "{2A125023-86C5-4300-BC6E-775D32FF8E1D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Dock", "src\Extensions\Components\BootstrapBlazor.Dock\BootstrapBlazor.Dock.csproj", "{608A9F47-A719-4DE7-9967-C25565534F57}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.FloatingUI", "src\Extensions\Components\BootstrapBlazor.FloatingUI\BootstrapBlazor.FloatingUI.csproj", "{19D6EF90-31A9-4E1C-942D-E6052205CA1C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.MouseFollower", "src\Extensions\Components\BootstrapBlazor.MouseFollower\BootstrapBlazor.MouseFollower.csproj", "{71FDF312-4195-4218-A941-754BDF5BAB82}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Html2Pdf", "src\Extensions\Components\BootstrapBlazor.Html2Pdf\BootstrapBlazor.Html2Pdf.csproj", "{CA5BF6FD-257E-4D4B-8DF0-F4035B0C7CA2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Live2DDisplay", "src\Extensions\Components\BootstrapBlazor.Live2DDisplay\BootstrapBlazor.Live2DDisplay.csproj", "{975D45E4-C354-4AFD-8D6F-571938E19105}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTestDocs", "test\UnitTestDocs\UnitTestDocs.csproj", "{6D73FED6-0086-460B-84FA-1FA78176BF59}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.DataAccess.EntityFrameworkCore", "src\Extensions\DataServices\BootstrapBlazor.DataAccess.EntityFrameworkCore\BootstrapBlazor.DataAccess.EntityFrameworkCore.csproj", "{45AD6614-EA04-46E0-B71C-2B12D5F326FE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.DataAccess.FreeSql", "src\Extensions\DataServices\BootstrapBlazor.DataAccess.FreeSql\BootstrapBlazor.DataAccess.FreeSql.csproj", "{DC144D99-C0A9-41CC-92A6-034D7E1E0363}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.DataAccess.PetaPoco", "src\Extensions\DataServices\BootstrapBlazor.DataAccess.PetaPoco\BootstrapBlazor.DataAccess.PetaPoco.csproj", "{8F189E6D-EC14-479F-8411-B5D967229D78}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UniTest.Sass", "test\UniTest.Sass\UniTest.Sass.csproj", "{D8AEAFE7-10AF-4A5B-BC67-FE740A2CA1DF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Splitting", "src\Extensions\Components\BootstrapBlazor.Splitting\BootstrapBlazor.Splitting.csproj", "{568237B9-209E-49B1-9BCF-E853F2D61442}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.CodeEditor", "src\Extensions\Components\BootstrapBlazor.CodeEditor\BootstrapBlazor.CodeEditor.csproj", "{25B67FF0-3D70-47D8-AC70-1934442A8881}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Gantt", "src\Extensions\Components\BootstrapBlazor.Gantt\BootstrapBlazor.Gantt.csproj", "{49D9E679-6824-43DF-9DAA-70E24ACCAA62}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "configuration", "configuration", "{7037C6AF-5E54-40D4-AB44-69DB177C0C23}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
.gitignore = .gitignore
exclusion.dic = exclusion.dic
Framework.props = Framework.props
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.AzureTranslator", "src\Extensions\Components\BootstrapBlazor.AzureTranslator\BootstrapBlazor.AzureTranslator.csproj", "{D63E50CB-EF78-47BF-9809-003D4574ABF4}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}"
ProjectSection(SolutionItems) = preProject
README.md = README.md
README.zh-CN.md = README.zh-CN.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.SvgEditor", "src\Extensions\Components\BootstrapBlazor.SVGEditor\BootstrapBlazor.SvgEditor.csproj", "{E1B885ED-34EB-43B2-93C7-7898BDE90686}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cert", "cert", "{C075C6C8-B9CB-4AC0-9BDF-B2002B4AB99C}"
ProjectSection(SolutionItems) = preProject
scripts\linux\cert\blazor.zone.cer = scripts\linux\cert\blazor.zone.cer
scripts\linux\cert\blazor.zone.key = scripts\linux\cert\blazor.zone.key
scripts\linux\cert\www.blazor.zone.cer = scripts\linux\cert\www.blazor.zone.cer
scripts\linux\cert\www.blazor.zone.key = scripts\linux\cert\www.blazor.zone.key
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Holiday", "src\Extensions\Components\BootstrapBlazor.Holiday\BootstrapBlazor.Holiday.csproj", "{C3849FFF-DCAF-4186-9BF1-C2D67E57D82C}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{9BAF50BE-141D-4429-93A9-942F373D1F68}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTestHoliday", "test\UnitTestHoliday\UnitTestHoliday.csproj", "{AB19F805-A27F-455F-8E36-8F1ADE295868}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Maui", "src\maui\BootstrapBlazor.Maui\BootstrapBlazor.Maui.csproj", "{B94D32F4-2E7C-400B-BC34-D6BA31A234CB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "maui", "maui", "{81615751-490B-4B50-8029-C79846F592BB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.TagHelper", "src\Extensions\Components\BootstrapBlazor.TagHelper\BootstrapBlazor.TagHelper.csproj", "{65CEB170-D561-4878-80E4-625538590D29}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.DataAccess.SqlSugar", "src\Extensions\DataServices\BootstrapBlazor.DataAccess.SqlSugar\BootstrapBlazor.DataAccess.SqlSugar.csproj", "{FF6149D2-82B8-40B4-9BB4-83D7AE9B3DA9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.BootstrapIcon", "src\Extensions\Components\BootstrapBlazor.BootstrapIcon\BootstrapBlazor.BootstrapIcon.csproj", "{23F9B17E-67F7-4009-99BE-209EEE65EBF3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.BootstrapIcon.Extensions", "src\Extensions\Components\BootstrapBlazor.BootstrapIcon.Extensions\BootstrapBlazor.BootstrapIcon.Extensions.csproj", "{CA517F07-F3BA-424B-BACD-3D83122B38CD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.DockView", "src\Extensions\Components\BootstrapBlazor.DockView\BootstrapBlazor.DockView.csproj", "{EB33F94D-BCA7-4B85-98E5-C093D798C804}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.IconPark", "src\Extensions\Components\BootstrapBlazor.IconPark\BootstrapBlazor.IconPark.csproj", "{6BDE87D7-62D9-4650-95F5-B60225BAFA68}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UniTestIconPark", "test\UniTestIconPark\UniTestIconPark.csproj", "{D46E8593-641F-4C90-9D95-3ABF41A327FB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Html2Pdf.iText", "src\Extensions\Components\BootstrapBlazor.Html2Pdf.iText\BootstrapBlazor.Html2Pdf.iText.csproj", "{AF077995-AFE6-4065-9B3C-CC0B79D9D179}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BootstrapBlazor.DriverJs", "src\Extensions\Components\BootstrapBlazor.DriverJs\BootstrapBlazor.DriverJs.csproj", "{B1F29F72-E0C0-41F6-A38E-A02B775C2FE7}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTest.Benchmarks", "tools\Benchmarks\UnitTest.Benchmarks.csproj", "{3E6D8D0E-5A36-4CFD-8612-7D64E3FFE7B1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -164,188 +93,26 @@ Global
{190F25CF-C6F9-4964-97E9-F6A912D527AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{190F25CF-C6F9-4964-97E9-F6A912D527AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{190F25CF-C6F9-4964-97E9-F6A912D527AE}.Release|Any CPU.Build.0 = Release|Any CPU
{337FABF3-4318-408E-8544-C0F20D0197A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{337FABF3-4318-408E-8544-C0F20D0197A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{337FABF3-4318-408E-8544-C0F20D0197A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{337FABF3-4318-408E-8544-C0F20D0197A1}.Release|Any CPU.Build.0 = Release|Any CPU
{EEB9751A-5C06-4725-8037-FA9C0F140018}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EEB9751A-5C06-4725-8037-FA9C0F140018}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EEB9751A-5C06-4725-8037-FA9C0F140018}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EEB9751A-5C06-4725-8037-FA9C0F140018}.Release|Any CPU.Build.0 = Release|Any CPU
{5ED0DD16-1583-4FC3-B2E9-FE5DBA98BD47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5ED0DD16-1583-4FC3-B2E9-FE5DBA98BD47}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5ED0DD16-1583-4FC3-B2E9-FE5DBA98BD47}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5ED0DD16-1583-4FC3-B2E9-FE5DBA98BD47}.Release|Any CPU.Build.0 = Release|Any CPU
{1ED371F3-2B28-4B2D-91B8-0C00DA42CB65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1ED371F3-2B28-4B2D-91B8-0C00DA42CB65}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1ED371F3-2B28-4B2D-91B8-0C00DA42CB65}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1ED371F3-2B28-4B2D-91B8-0C00DA42CB65}.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
{42108A8A-C773-4F35-A870-3673BDD383E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{42108A8A-C773-4F35-A870-3673BDD383E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{42108A8A-C773-4F35-A870-3673BDD383E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{42108A8A-C773-4F35-A870-3673BDD383E4}.Release|Any CPU.Build.0 = Release|Any CPU
{4ED606D8-D252-4573-8F0F-B69502ADB7ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4ED606D8-D252-4573-8F0F-B69502ADB7ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4ED606D8-D252-4573-8F0F-B69502ADB7ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4ED606D8-D252-4573-8F0F-B69502ADB7ED}.Release|Any CPU.Build.0 = Release|Any CPU
{018091B3-1E3A-41F3-87B2-5F285C2C3B73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{018091B3-1E3A-41F3-87B2-5F285C2C3B73}.Debug|Any CPU.Build.0 = Debug|Any CPU
{018091B3-1E3A-41F3-87B2-5F285C2C3B73}.Release|Any CPU.ActiveCfg = Release|Any CPU
{018091B3-1E3A-41F3-87B2-5F285C2C3B73}.Release|Any CPU.Build.0 = Release|Any CPU
{2FFC1564-EF75-454B-9D8E-A437A1737CEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2FFC1564-EF75-454B-9D8E-A437A1737CEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2FFC1564-EF75-454B-9D8E-A437A1737CEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2FFC1564-EF75-454B-9D8E-A437A1737CEC}.Release|Any CPU.Build.0 = Release|Any CPU
{9552B649-17E2-4BCA-8774-664C83A960CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9552B649-17E2-4BCA-8774-664C83A960CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9552B649-17E2-4BCA-8774-664C83A960CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9552B649-17E2-4BCA-8774-664C83A960CB}.Release|Any CPU.Build.0 = Release|Any CPU
{6312863E-771D-4EFE-9B9D-071A01222E7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6312863E-771D-4EFE-9B9D-071A01222E7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6312863E-771D-4EFE-9B9D-071A01222E7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6312863E-771D-4EFE-9B9D-071A01222E7A}.Release|Any CPU.Build.0 = Release|Any CPU
{7F7F3B85-7B15-485C-8DC2-BAFD8C086957}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7F7F3B85-7B15-485C-8DC2-BAFD8C086957}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7F7F3B85-7B15-485C-8DC2-BAFD8C086957}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7F7F3B85-7B15-485C-8DC2-BAFD8C086957}.Release|Any CPU.Build.0 = Release|Any CPU
{F800DC0F-6829-4B64-B96B-B301A512AF2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F800DC0F-6829-4B64-B96B-B301A512AF2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F800DC0F-6829-4B64-B96B-B301A512AF2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F800DC0F-6829-4B64-B96B-B301A512AF2A}.Release|Any CPU.Build.0 = Release|Any CPU
{F9E37619-F519-4F73-8457-FFC4271EC443}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F9E37619-F519-4F73-8457-FFC4271EC443}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F9E37619-F519-4F73-8457-FFC4271EC443}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F9E37619-F519-4F73-8457-FFC4271EC443}.Release|Any CPU.Build.0 = Release|Any CPU
{B61A9684-E6B5-422E-821B-A29DCD079B43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B61A9684-E6B5-422E-821B-A29DCD079B43}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B61A9684-E6B5-422E-821B-A29DCD079B43}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B61A9684-E6B5-422E-821B-A29DCD079B43}.Release|Any CPU.Build.0 = Release|Any CPU
{2A125023-86C5-4300-BC6E-775D32FF8E1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2A125023-86C5-4300-BC6E-775D32FF8E1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2A125023-86C5-4300-BC6E-775D32FF8E1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2A125023-86C5-4300-BC6E-775D32FF8E1D}.Release|Any CPU.Build.0 = Release|Any CPU
{608A9F47-A719-4DE7-9967-C25565534F57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{608A9F47-A719-4DE7-9967-C25565534F57}.Debug|Any CPU.Build.0 = Debug|Any CPU
{608A9F47-A719-4DE7-9967-C25565534F57}.Release|Any CPU.ActiveCfg = Release|Any CPU
{608A9F47-A719-4DE7-9967-C25565534F57}.Release|Any CPU.Build.0 = Release|Any CPU
{19D6EF90-31A9-4E1C-942D-E6052205CA1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{19D6EF90-31A9-4E1C-942D-E6052205CA1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{19D6EF90-31A9-4E1C-942D-E6052205CA1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{19D6EF90-31A9-4E1C-942D-E6052205CA1C}.Release|Any CPU.Build.0 = Release|Any CPU
{71FDF312-4195-4218-A941-754BDF5BAB82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{71FDF312-4195-4218-A941-754BDF5BAB82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{71FDF312-4195-4218-A941-754BDF5BAB82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{71FDF312-4195-4218-A941-754BDF5BAB82}.Release|Any CPU.Build.0 = Release|Any CPU
{CA5BF6FD-257E-4D4B-8DF0-F4035B0C7CA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CA5BF6FD-257E-4D4B-8DF0-F4035B0C7CA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CA5BF6FD-257E-4D4B-8DF0-F4035B0C7CA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CA5BF6FD-257E-4D4B-8DF0-F4035B0C7CA2}.Release|Any CPU.Build.0 = Release|Any CPU
{975D45E4-C354-4AFD-8D6F-571938E19105}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{975D45E4-C354-4AFD-8D6F-571938E19105}.Debug|Any CPU.Build.0 = Debug|Any CPU
{975D45E4-C354-4AFD-8D6F-571938E19105}.Release|Any CPU.ActiveCfg = Release|Any CPU
{975D45E4-C354-4AFD-8D6F-571938E19105}.Release|Any CPU.Build.0 = Release|Any CPU
{6D73FED6-0086-460B-84FA-1FA78176BF59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6D73FED6-0086-460B-84FA-1FA78176BF59}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6D73FED6-0086-460B-84FA-1FA78176BF59}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6D73FED6-0086-460B-84FA-1FA78176BF59}.Release|Any CPU.Build.0 = Release|Any CPU
{45AD6614-EA04-46E0-B71C-2B12D5F326FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{45AD6614-EA04-46E0-B71C-2B12D5F326FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{45AD6614-EA04-46E0-B71C-2B12D5F326FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{45AD6614-EA04-46E0-B71C-2B12D5F326FE}.Release|Any CPU.Build.0 = Release|Any CPU
{DC144D99-C0A9-41CC-92A6-034D7E1E0363}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DC144D99-C0A9-41CC-92A6-034D7E1E0363}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DC144D99-C0A9-41CC-92A6-034D7E1E0363}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DC144D99-C0A9-41CC-92A6-034D7E1E0363}.Release|Any CPU.Build.0 = Release|Any CPU
{8F189E6D-EC14-479F-8411-B5D967229D78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8F189E6D-EC14-479F-8411-B5D967229D78}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8F189E6D-EC14-479F-8411-B5D967229D78}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8F189E6D-EC14-479F-8411-B5D967229D78}.Release|Any CPU.Build.0 = Release|Any CPU
{D8AEAFE7-10AF-4A5B-BC67-FE740A2CA1DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D8AEAFE7-10AF-4A5B-BC67-FE740A2CA1DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D8AEAFE7-10AF-4A5B-BC67-FE740A2CA1DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D8AEAFE7-10AF-4A5B-BC67-FE740A2CA1DF}.Release|Any CPU.Build.0 = Release|Any CPU
{568237B9-209E-49B1-9BCF-E853F2D61442}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{568237B9-209E-49B1-9BCF-E853F2D61442}.Debug|Any CPU.Build.0 = Debug|Any CPU
{568237B9-209E-49B1-9BCF-E853F2D61442}.Release|Any CPU.ActiveCfg = Release|Any CPU
{568237B9-209E-49B1-9BCF-E853F2D61442}.Release|Any CPU.Build.0 = Release|Any CPU
{25B67FF0-3D70-47D8-AC70-1934442A8881}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{25B67FF0-3D70-47D8-AC70-1934442A8881}.Debug|Any CPU.Build.0 = Debug|Any CPU
{25B67FF0-3D70-47D8-AC70-1934442A8881}.Release|Any CPU.ActiveCfg = Release|Any CPU
{25B67FF0-3D70-47D8-AC70-1934442A8881}.Release|Any CPU.Build.0 = Release|Any CPU
{49D9E679-6824-43DF-9DAA-70E24ACCAA62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{49D9E679-6824-43DF-9DAA-70E24ACCAA62}.Debug|Any CPU.Build.0 = Debug|Any CPU
{49D9E679-6824-43DF-9DAA-70E24ACCAA62}.Release|Any CPU.ActiveCfg = Release|Any CPU
{49D9E679-6824-43DF-9DAA-70E24ACCAA62}.Release|Any CPU.Build.0 = Release|Any CPU
{D63E50CB-EF78-47BF-9809-003D4574ABF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D63E50CB-EF78-47BF-9809-003D4574ABF4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D63E50CB-EF78-47BF-9809-003D4574ABF4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D63E50CB-EF78-47BF-9809-003D4574ABF4}.Release|Any CPU.Build.0 = Release|Any CPU
{E1B885ED-34EB-43B2-93C7-7898BDE90686}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E1B885ED-34EB-43B2-93C7-7898BDE90686}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E1B885ED-34EB-43B2-93C7-7898BDE90686}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E1B885ED-34EB-43B2-93C7-7898BDE90686}.Release|Any CPU.Build.0 = Release|Any CPU
{C3849FFF-DCAF-4186-9BF1-C2D67E57D82C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C3849FFF-DCAF-4186-9BF1-C2D67E57D82C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C3849FFF-DCAF-4186-9BF1-C2D67E57D82C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C3849FFF-DCAF-4186-9BF1-C2D67E57D82C}.Release|Any CPU.Build.0 = Release|Any CPU
{AB19F805-A27F-455F-8E36-8F1ADE295868}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AB19F805-A27F-455F-8E36-8F1ADE295868}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AB19F805-A27F-455F-8E36-8F1ADE295868}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AB19F805-A27F-455F-8E36-8F1ADE295868}.Release|Any CPU.Build.0 = Release|Any CPU
{B94D32F4-2E7C-400B-BC34-D6BA31A234CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B94D32F4-2E7C-400B-BC34-D6BA31A234CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B94D32F4-2E7C-400B-BC34-D6BA31A234CB}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{B94D32F4-2E7C-400B-BC34-D6BA31A234CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B94D32F4-2E7C-400B-BC34-D6BA31A234CB}.Release|Any CPU.Build.0 = Release|Any CPU
{B94D32F4-2E7C-400B-BC34-D6BA31A234CB}.Release|Any CPU.Deploy.0 = Release|Any CPU
{65CEB170-D561-4878-80E4-625538590D29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65CEB170-D561-4878-80E4-625538590D29}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65CEB170-D561-4878-80E4-625538590D29}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65CEB170-D561-4878-80E4-625538590D29}.Release|Any CPU.Build.0 = Release|Any CPU
{FF6149D2-82B8-40B4-9BB4-83D7AE9B3DA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF6149D2-82B8-40B4-9BB4-83D7AE9B3DA9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF6149D2-82B8-40B4-9BB4-83D7AE9B3DA9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF6149D2-82B8-40B4-9BB4-83D7AE9B3DA9}.Release|Any CPU.Build.0 = Release|Any CPU
{23F9B17E-67F7-4009-99BE-209EEE65EBF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{23F9B17E-67F7-4009-99BE-209EEE65EBF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{23F9B17E-67F7-4009-99BE-209EEE65EBF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{23F9B17E-67F7-4009-99BE-209EEE65EBF3}.Release|Any CPU.Build.0 = Release|Any CPU
{CA517F07-F3BA-424B-BACD-3D83122B38CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CA517F07-F3BA-424B-BACD-3D83122B38CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CA517F07-F3BA-424B-BACD-3D83122B38CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CA517F07-F3BA-424B-BACD-3D83122B38CD}.Release|Any CPU.Build.0 = Release|Any CPU
{EB33F94D-BCA7-4B85-98E5-C093D798C804}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EB33F94D-BCA7-4B85-98E5-C093D798C804}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EB33F94D-BCA7-4B85-98E5-C093D798C804}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EB33F94D-BCA7-4B85-98E5-C093D798C804}.Release|Any CPU.Build.0 = Release|Any CPU
{6BDE87D7-62D9-4650-95F5-B60225BAFA68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6BDE87D7-62D9-4650-95F5-B60225BAFA68}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6BDE87D7-62D9-4650-95F5-B60225BAFA68}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6BDE87D7-62D9-4650-95F5-B60225BAFA68}.Release|Any CPU.Build.0 = Release|Any CPU
{D46E8593-641F-4C90-9D95-3ABF41A327FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D46E8593-641F-4C90-9D95-3ABF41A327FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D46E8593-641F-4C90-9D95-3ABF41A327FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D46E8593-641F-4C90-9D95-3ABF41A327FB}.Release|Any CPU.Build.0 = Release|Any CPU
{AF077995-AFE6-4065-9B3C-CC0B79D9D179}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AF077995-AFE6-4065-9B3C-CC0B79D9D179}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AF077995-AFE6-4065-9B3C-CC0B79D9D179}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AF077995-AFE6-4065-9B3C-CC0B79D9D179}.Release|Any CPU.Build.0 = Release|Any CPU
{B1F29F72-E0C0-41F6-A38E-A02B775C2FE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B1F29F72-E0C0-41F6-A38E-A02B775C2FE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B1F29F72-E0C0-41F6-A38E-A02B775C2FE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B1F29F72-E0C0-41F6-A38E-A02B775C2FE7}.Release|Any CPU.Build.0 = Release|Any CPU
{3E6D8D0E-5A36-4CFD-8612-7D64E3FFE7B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3E6D8D0E-5A36-4CFD-8612-7D64E3FFE7B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3E6D8D0E-5A36-4CFD-8612-7D64E3FFE7B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3E6D8D0E-5A36-4CFD-8612-7D64E3FFE7B1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -356,56 +123,12 @@ Global
{4A5226E2-8EBD-4DEA-A1F5-2DF374655FA9} = {A627F6CC-94FC-4E48-B3CC-F0EA16700527}
{B84D315E-967D-4FBF-9B72-1F3128155CB0} = {A627F6CC-94FC-4E48-B3CC-F0EA16700527}
{190F25CF-C6F9-4964-97E9-F6A912D527AE} = {7C1D79F1-87BC-42C1-BD5A-CDE4044AC1BD}
{22328011-53B3-447A-B781-AC3C196B2847} = {A2182155-43ED-44C1-BF6F-1B70EBD2DFFE}
{CD062AB6-244D-402A-8F33-C37DAC5856CC} = {22328011-53B3-447A-B781-AC3C196B2847}
{56FEFF09-85FC-408D-A397-6E264E68414E} = {22328011-53B3-447A-B781-AC3C196B2847}
{337FABF3-4318-408E-8544-C0F20D0197A1} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{EEB9751A-5C06-4725-8037-FA9C0F140018} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{5ED0DD16-1583-4FC3-B2E9-FE5DBA98BD47} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{1ED371F3-2B28-4B2D-91B8-0C00DA42CB65} = {A2182155-43ED-44C1-BF6F-1B70EBD2DFFE}
{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}
{42108A8A-C773-4F35-A870-3673BDD383E4} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{4ED606D8-D252-4573-8F0F-B69502ADB7ED} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{018091B3-1E3A-41F3-87B2-5F285C2C3B73} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{2FFC1564-EF75-454B-9D8E-A437A1737CEC} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{9552B649-17E2-4BCA-8774-664C83A960CB} = {7C1D79F1-87BC-42C1-BD5A-CDE4044AC1BD}
{6312863E-771D-4EFE-9B9D-071A01222E7A} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{7F7F3B85-7B15-485C-8DC2-BAFD8C086957} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{F800DC0F-6829-4B64-B96B-B301A512AF2A} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{F9E37619-F519-4F73-8457-FFC4271EC443} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{B61A9684-E6B5-422E-821B-A29DCD079B43} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{2A125023-86C5-4300-BC6E-775D32FF8E1D} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{608A9F47-A719-4DE7-9967-C25565534F57} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{19D6EF90-31A9-4E1C-942D-E6052205CA1C} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{71FDF312-4195-4218-A941-754BDF5BAB82} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{CA5BF6FD-257E-4D4B-8DF0-F4035B0C7CA2} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{975D45E4-C354-4AFD-8D6F-571938E19105} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{6D73FED6-0086-460B-84FA-1FA78176BF59} = {7C1D79F1-87BC-42C1-BD5A-CDE4044AC1BD}
{45AD6614-EA04-46E0-B71C-2B12D5F326FE} = {56FEFF09-85FC-408D-A397-6E264E68414E}
{DC144D99-C0A9-41CC-92A6-034D7E1E0363} = {56FEFF09-85FC-408D-A397-6E264E68414E}
{8F189E6D-EC14-479F-8411-B5D967229D78} = {56FEFF09-85FC-408D-A397-6E264E68414E}
{D8AEAFE7-10AF-4A5B-BC67-FE740A2CA1DF} = {7C1D79F1-87BC-42C1-BD5A-CDE4044AC1BD}
{568237B9-209E-49B1-9BCF-E853F2D61442} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{25B67FF0-3D70-47D8-AC70-1934442A8881} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{49D9E679-6824-43DF-9DAA-70E24ACCAA62} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{D63E50CB-EF78-47BF-9809-003D4574ABF4} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{E1B885ED-34EB-43B2-93C7-7898BDE90686} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{C3849FFF-DCAF-4186-9BF1-C2D67E57D82C} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{AB19F805-A27F-455F-8E36-8F1ADE295868} = {7C1D79F1-87BC-42C1-BD5A-CDE4044AC1BD}
{B94D32F4-2E7C-400B-BC34-D6BA31A234CB} = {81615751-490B-4B50-8029-C79846F592BB}
{81615751-490B-4B50-8029-C79846F592BB} = {A2182155-43ED-44C1-BF6F-1B70EBD2DFFE}
{65CEB170-D561-4878-80E4-625538590D29} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{FF6149D2-82B8-40B4-9BB4-83D7AE9B3DA9} = {56FEFF09-85FC-408D-A397-6E264E68414E}
{23F9B17E-67F7-4009-99BE-209EEE65EBF3} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{CA517F07-F3BA-424B-BACD-3D83122B38CD} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{EB33F94D-BCA7-4B85-98E5-C093D798C804} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{6BDE87D7-62D9-4650-95F5-B60225BAFA68} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{D46E8593-641F-4C90-9D95-3ABF41A327FB} = {7C1D79F1-87BC-42C1-BD5A-CDE4044AC1BD}
{AF077995-AFE6-4065-9B3C-CC0B79D9D179} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{B1F29F72-E0C0-41F6-A38E-A02B775C2FE7} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
{C075C6C8-B9CB-4AC0-9BDF-B2002B4AB99C} = {EA765165-0542-41C8-93F2-85787FEDEDFF}
{3E6D8D0E-5A36-4CFD-8612-7D64E3FFE7B1} = {9BAF50BE-141D-4429-93A9-942F373D1F68}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0DCB0756-34FA-4FD0-AE1D-D3F08B5B3A6B}

View File

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

55
BootstrapBlazor.slnx Normal file
View File

@@ -0,0 +1,55 @@
<Solution>
<Folder Name="/configuration/">
<File Path=".editorconfig" />
<File Path=".gitignore" />
<File Path="exclusion.dic" />
<File Path="Framework.props" />
</Folder>
<Folder Name="/docs/">
<File Path="README.md" />
<File Path="README.zh-CN.md" />
</Folder>
<Folder Name="/localization/">
<File Path="localization/de.json" />
<File Path="localization/es.json" />
<File Path="localization/pt.json" />
<File Path="localization/th-TH.json" />
<File Path="localization/zh-TW.json" />
</Folder>
<Folder Name="/scripts/" />
<Folder Name="/scripts/linux/">
<File Path="scripts/linux/ba.blazor.service" />
<File Path="scripts/linux/deploy-blazor.sh" />
<File Path="scripts/linux/deploy.sh" />
<File Path="scripts/linux/nginx.conf" />
<File Path="scripts/linux/remove.sh" />
</Folder>
<Folder Name="/scripts/linux/cert/">
<File Path="scripts/linux/cert/blazor.zone.cer" />
<File Path="scripts/linux/cert/blazor.zone.key" />
<File Path="scripts/linux/cert/www.blazor.zone.cer" />
<File Path="scripts/linux/cert/www.blazor.zone.key" />
</Folder>
<Folder Name="/scripts/wasm/">
<File Path="scripts/wasm/sync.cmd" />
<File Path="scripts/wasm/sync.sh" />
</Folder>
<Folder Name="/scripts/windows/">
<File Path="scripts/windows/pack.cmd" />
<File Path="scripts/windows/push.cmd" />
<File Path="scripts/windows/push.ps1" />
</Folder>
<Folder Name="/src/">
<Project Path="src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj" />
<Project Path="src/BootstrapBlazor/BootstrapBlazor.csproj" />
</Folder>
<Folder Name="/test/">
<Project Path="test/UniTest.Sass/UniTest.Sass.csproj" />
<Project Path="test/UnitTest.Localization/UnitTest.Localization.csproj" />
<Project Path="test/UnitTest/UnitTest.csproj" />
<Project Path="test/UnitTestDocs/UnitTestDocs.csproj" />
</Folder>
<Folder Name="/tools/">
<Project Path="tools/Benchmarks/UnitTest.Benchmarks.csproj" />
</Folder>
</Solution>

View File

@@ -1,7 +1,9 @@
<Project>
<Import Project="Version.props"/>
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>$(RunTargetFramework)</TargetFramework>
</PropertyGroup>
</Project>

View File

@@ -1,3 +1,6 @@
Copyright (c) .NET Foundation and Contributors
All Rights Reserved
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
@@ -186,7 +189,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [Argo Zhang] (argo@163.com)
Copyright [Argo Zhang] (argo@live.ca)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

198
README.md
View File

@@ -1,11 +1,8 @@
<h1 align="center">Bootstrap Blazor Component</h1>
<div align="center">
<h2>A set of enterprise-class UI components based on Bootstrap and Blazor.</h2>
<h2>Bootstrap Blazor is an enterprise-level UI component library based on Bootstrap and Blazor.</h2>
[![Security Status](https://www.murphysec.com/platform3/v3/badge/1619783039836532736.svg)](https://github.com/dotnetcore/BootstrapBlazor/blob/main/LICENSE)
[![oscs](https://www.oscs1024.com/platform/badge/murphysecurity/murphysec.svg)](https://github.com/dotnetcore/BootstrapBlazor/blob/main/LICENSE)
[![License](https://img.shields.io/github/license/dotnetcore/BootstrapBlazor.svg?logo=git&logoColor=red)](https://github.com/dotnetcore/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/)
@@ -18,162 +15,93 @@
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.
- Supports WebAssembly-based client-side and SignalR-based server-side UI event interaction.
- Supports Progressive Web Applications (PWA).
- Build with C#, a multi-paradigm static language for an efficient development experience.
- .NET Standard 2.1 based, with direct reference to the rich .NET ecosystem.
- Supports NET5. (Server-Side, WASM)
- Seamless integration with existing ASP.NET Core MVC and Razor Pages projects.
## .NET Foundation
[<img align="right" src="https://github.com/dotnet-foundation/swag/blob/main/logo/dotnetfoundation_v4.png?raw=true" width="68px" />](https://dotnetfoundation.org/projects/project-detail/bootstrap-blazor)
<p>This project is part of the <a href="https://www.dotnetfoundation.org/">.NET Foundation</a> and operates under their <a href="https://www.dotnetfoundation.org/code-of-conduct">code of conduct</a>. </p>
## Online Examples
[![website](https://img.shields.io/badge/China-https://www.blazor.zone-success.svg?color=red&logo=buzzfeed&logoColor=red)](https://www.blazor.zone)
[![website](https://img.shields.io/badge/Github-https://argozhang.github.io-success.svg?logo=buzzfeed&logoColor=green)](https://argozhang.github.io)
[![website](https://img.shields.io/badge/online-https://www.blazor.zone-success.svg?color=&logo=buzzfeed&logoColor=green)](https://www.blazor.zone)
## Installation Guide
## Environment
- Install .net core sdk [Offical website](https://dotnet.microsoft.com/download)
- Install Visual Studio 2022 lastest [Offical website](https://visualstudio.microsoft.com/vs/getting-started/)
- Install .net core sdk [Official website](https://dotnet.microsoft.com/download)
- Install Visual Studio 2022 latest [Official website](https://visualstudio.microsoft.com/vs/getting-started/)
## Create a new project from the dotnet new template
## Quick Installation Guide
1. Install the template
`dotnet new install Bootstrap.Blazor.Templates::*`
2. Create the Boilerplate project with the template
`dotnet new bbapp`
## Install Bootstrap Blazor Project Template
1. Download Project Template
Microsoft Market [link](https://marketplace.visualstudio.com/items?itemName=Longbow.BootstrapBlazorUITemplate)
2. Double Click **BootstrapBlazor.UITemplate.vsix**
## Import Bootstrap Blazor into an existing project
1. Go to the project folder of the application and install the Nuget package reference
`dotnet add package BootstrapBlazor`
2. **Add** the `stylesheet` `javascripts` file to your main index file - `Pages/_Host.cshtml (Server)` or `wwwroot/index.html (WebAssembly)`
**HTML**
```HTML
<!DOCTYPE html>
<html lang="en">
<head>
. . .
<link rel="stylesheet" href="_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css">
</head>
<body>
. . .
<script src="_framework/blazor.server.js"></script>
<script src="_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js"></script>
</body>
</html>
### Install Package
```
dotnet add package BootstrapBlazor
```
3. Open the `~/Startup.cs` file in the and register the `Bootstrap Blazor` service:
### Add the following to `_Imports.razor`
```
@using BootstrapBlazor.Components
```
**C#**
### Add the following to the `MainLayout.razor`
```html
<BootstrapBlazorRoot>
@Body
</BootstrapBlazorRoot>
```
### Add the following to your HTML head section
it's either **index.html** or **_Layout.cshtml/_Host.cshtml/App.razor** depending on whether you're running WebAssembly or Server
```html
<link rel="stylesheet" href="_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css" />
```
### Add the following script at the end of the body
```html
<script src="_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js"></script>
```
### Add the following to the relevant sections of `Program.cs`
```csharp
namespace BootstrapBlazorAppName
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
//more code may be present here
services.AddBootstrapBlazor();
}
builder.Services.AddBootstrapBlazor();
```
//more code may be present here
## Usage
```razor
<Display Value="@_text"></Display>
<Button Text="Button" OnClick="@ClickButton"></Button>
@code {
private string? _text;
private void ClickButton(MouseEventArgs e)
{
_text = DateTime.Now.ToString();
}
}
```
## Visual Studio Integration
## Install CLI Template
1. Install the template
```
dotnet new install Bootstrap.Blazor.Templates::*
```
To create a new `Bootstrap Blazor` UI for Blazor application, use the Create New Project Wizard. The wizard detects all installed versions of `Bootstrap Blazor` for Blazor and lists them in the Version combobox—this enables you to start your project with the desired version. You can also get the latest version to make sure you are up to date.
1. Get the Wizard
To use the Create New Project Wizard, install the `Bootstrap Blazor` UI for Blazor Visual Studio Extensions. You can get it from the:
- Visual Studio Marketplace (for Windows)
2. Start the Wizard
To start the wizard, use either of the following approaches
### Using the Project menu:
- Click File > New > Project.
- Find and click the C# Blazor Application option (you can use the search, or filter by Blazor templates).
- Follow the wizard.
## Supported browsers
![chrome](https://img.shields.io/badge/chrome->%3D57-success.svg?logo=google%20chrome&logoColor=red)
![firefox](https://img.shields.io/badge/firefox->522-success.svg?logo=firefox%20browser&logoColor=red)
![edge](https://img.shields.io/badge/edge->%3D16-success.svg?logo=microsoft%20edge&logoColor=blue)
![ie](https://img.shields.io/badge/ie->%3D11-success.svg?logo=internet%20explorer&logoColor=blue)
![Safari](https://img.shields.io/badge/safari->%3D14-success.svg?logo=safari&logoColor=blue)
![Andriod](https://img.shields.io/badge/andriod->%3D4.4-success.svg?logo=android)
![oper](https://img.shields.io/badge/opera->%3D4.4-success.svg?logo=opera&logoColor=red)
### Mobile devices
![ios](https://img.shields.io/badge/ios-supported-success.svg?logo=apple&logoColor=white)
![Andriod](https://img.shields.io/badge/andriod-suported-success.svg?logo=android)
![windows](https://img.shields.io/badge/windows-suported-success.svg?logo=windows&logoColor=blue)
| | **Chrome** | **Firefox** | **Safari** | **Android Browser & WebView** | **Microsoft Edge** |
| ------- | --------- | --------- | ------ | ------------------------- | -------------- |
| **iOS** | Supported | Supported | Supported | N/A | Supported |
| **Android** | Supported | Supported | N/A | Android v5.0+ supported | Supported |
| **Windows 10 Mobile** | N/A | N/A | N/A | N/A | Supported |
### Desktop browsers
![macOS](https://img.shields.io/badge/macOS-supported-success.svg?logo=apple&logoColor=white)
![linux](https://img.shields.io/badge/linux-suported-success.svg?logo=linux&logoColor=white)
![windows](https://img.shields.io/badge/windows-suported-success.svg?logo=windows)
| | Chrome | Firefox | Internet Explorer | Microsoft Edge | Opera | Safari |
| ------- | --------- | --------- | ----------------- | -------------- | --------- | ------------- |
| Mac | Supported | Supported | N/A | N/A | Supported | Supported |
| Linux | Supported | Supported | N/A | N/A | N/A | N/A |
| Windows | Supported | Supported | Supported, IE11+ | Supported | Supported | Not supported |
## Screenshots
![Toggle](https://raw.githubusercontent.com/ArgoZhang/Images/master/BootstrapBlazor/Toggle.png "Toggle.png")
![Toast](https://raw.githubusercontent.com/ArgoZhang/Images/master/BootstrapBlazor/Toast.png "Toast.png")
![Upload](https://raw.githubusercontent.com/ArgoZhang/Images/master/BootstrapBlazor/Upload.png "Upload.png")
![Upload2](https://raw.githubusercontent.com/ArgoZhang/Images/master/BootstrapBlazor/Upload2.png "Upload2.png")
![Bar](https://raw.githubusercontent.com/ArgoZhang/Images/master/BootstrapBlazor/Bar.png "Bar.png")
![Pei](https://raw.githubusercontent.com/ArgoZhang/Images/master/BootstrapBlazor/Pie.png "Pei.png")
![Doughnut](https://raw.githubusercontent.com/ArgoZhang/Images/master/BootstrapBlazor/Doughnut.png "Doughnut.png")
2. Create the Boilerplate project with the template
```
dotnet new bbapp
```
## Contribution
1. Fork
2. Create Feat_xxx branch
3. Commit
4. Create Pull Request
## Donate
## Code of Conduct
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.
For more information see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).
## Donate
If this project is helpful to you, please scan the QR code below for a cup of coffee.
<img src="https://raw.githubusercontent.com/ArgoZhang/Images/master/Donate/BarCode%402x.png" width="382px;" />
## Sponsor
Thanks to [JetBrains](https://jb.gg/OpenSourceSupport) for providing free open source license
<img src="https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg" width="100px" align="right" />

View File

@@ -1,11 +1,9 @@
<h1 align="center">Bootstrap Blazor 组件库</h1>
<div align="center">
<h2>一套基于 Bootstrap 和 Blazor 的企业级组件库</h2>
<h2>Bootstrap Blazor 是一套基于 Bootstrap 和 Blazor 的企业级组件库</h2>
<h4>.NET 基金会成员项目</h4>
[![Security Status](https://www.murphysec.com/platform3/v3/badge/1619783039836532736.svg)](https://github.com/dotnetcore/BootstrapBlazor/blob/main/LICENSE)
[![oscs](https://www.oscs1024.com/platform/badge/murphysecurity/murphysec.svg)](https://github.com/dotnetcore/BootstrapBlazor/blob/main/LICENSE)
[![License](https://img.shields.io/github/license/dotnetcore/BootstrapBlazor.svg?logo=git&logoColor=red)](https://github.com/dotnetcore/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/)
@@ -18,31 +16,14 @@
<a href="README.md">English</a> | <span>中文</span>
---
## 项目介绍
Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架:
- 使用 C# 代替 JavaScript 来创建丰富的交互式 UI。
- 共享使用 .NET 编写的服务器端和客户端应用逻辑。
- 将 UI 呈现为 HTML 和 CSS以支持众多浏览器其中包括移动浏览器。
使用 .NET 进行客户端 Web 开发可提供以下优势:
- 使用 C# 代替 JavaScript 来编写代码。
- 利用现有的 .NET 库生态系统。
- 在服务器和客户端之间共享应用逻辑。
- 受益于 .NET 的性能、可靠性和安全性。
- 始终高效支持 Windows、Linux 和 macOS 上的 Visual Studio。
- 支持 Net5
- 以一组稳定、功能丰富且易用的通用语言、框架和工具为基础来进行生成。
本项目是利用 Bootstrap 样式进行封装的 UI 组件库
## .NET Foundation
[<img align="right" src="https://github.com/dotnet-foundation/swag/blob/main/logo/dotnetfoundation_v4.png?raw=true" width="68px" />](https://dotnetfoundation.org/projects/project-detail/bootstrap-blazor)
<p>该项目属于 <a href="https://www.dotnetfoundation.org/">.NET 基金会</a> ,并根据其 <a href="https://www.dotnetfoundation.org/code-of-conduct">行为准则</a> 运作。</p>
## 社区与项目
目前 `BootstrapBlazor` 团队由六名热爱开源的技术达人组成,其中有四名 **微软最有价值专家(Microsoft MVP)** ;成立了大约 2000 人的 `Blazor 中文社区` 积极响应,只讨论 Blazor 相关技术
本组件库内置 **150** 多个组件,作者所在几家公司的项目均在重度使用,大多数组件都是在实际项目中提炼出来,非常适合国人操作习惯,大大节约开发时间,不像有些开源作品甚至作者本人都不使用,遇到问题从根本上无法解决,提交 Issue 也是让其自行解决并帮忙 PR 到其仓库
本组件库内置 **200** 多个组件,作者所在几家公司的项目均在重度使用,大多数组件都是在实际项目中提炼出来,非常适合国人操作习惯,大大节约开发时间,不像有些开源作品甚至作者本人都不使用,遇到问题从根本上无法解决,提交 Issue 也是让其自行解决并帮忙 PR 到其仓库
作者与团队积极处理 Issue 社区中积极回答问题,绝对不会一个开源仓库有几百上千 Issue 不予处理,当需求合理,即使是新功能也会积极响应并尽快提供新版本不会出现让提交者自己实现功能并提交 PR 的行为
@@ -52,63 +33,98 @@ Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架:
- Argo Zhang [链接地址](https://mvp.microsoft.com/en-us/PublicProfile/5004174)
- Alex Chow [链接地址](https://mvp.microsoft.com/en-us/PublicProfile/5005078)
- Guohao Wang [链接地址](https://mvp.microsoft.com/en-us/PublicProfile/5005089)
- Xiang ju [链接地址](https://mvp.microsoft.com/en-us/PublicProfile/5005108)
## 生态伙伴
- Xiang Ju [链接地址](https://mvp.microsoft.com/en-us/PublicProfile/5005108)
- Guohao Wang [链接地址](https://mvp.microsoft.com/en-us/PublicProfile/5005089) (2023-2025)
## 生态伙伴 WTM
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)
## 开发环境搭建
## 生态伙伴 ThingsGateway
ThingsGateway 边缘网关,致力于打造“高性能、插件扩展、易集成”的工业物联网网关解决方案。
<a href="https://thingsgateway.cn" target="_blank"><img src="https://foruda.gitee.com/images/1752651511062082157/c6a923f8_554725.png" width="100px" /></a>
ThingsGateway 将设备接入、数据上传等功能模块化,降低工业协议开发门槛,自动处理线程调度与数据缓存,极大提升开发效率与系统稳定性。
它不仅是一个网关框架,更是构建数字化工厂、边缘智能系统的核心工具!
ThingsGateway 已集成 Bootstrap Blazor 实现配置管理界面,轻松构建跨平台的边缘网关管理系统 [传送门](https://thingsgateway.cn)
## 开发环境搭建
1. 安装 .net core sdk 最新版 [官方网址](http://www.microsoft.com/net/download)
2. 安装 Visual Studio 2022 最新版 [官方网址](https://visualstudio.microsoft.com/vs/getting-started/)
3. 获取本项目代码 [BootstrapBlazor](https://gitee.com/LongbowEnterprise/BootstrapBlazor)
3. 获取本项目代码 [BootstrapBlazor](https://github.com/dotnetcore/BootstrapBlazor?wt.mc_id=DT-MVP-5004174)
### 克隆代码
```shell
git clone https://gitee.com/LongbowEnterprise/BootstrapBlazor.git
git clone https://github.com/dotnetcore/BootstrapBlazor.git
cd BootstrapBlazor/src/BootstrapBlazor.Server
dotnet run
```
### CLI
**Install Template**
```c#
dotnet new install Bootstrap.Blazor.Templates
```
**Create Project**
## 快速安装指南
### 安装包
```shell
dotnet new bbapp
dotnet add package BootstrapBlazor
```
**Run**
```shell
dotnet run
### 添加默认命名空间到 `_Imports.razor`
```razor
@using BootstrapBlazor.Components
```
### 项目模板
### 添加 `BootstrapBlazorRoot` 到 `MainLayout.razor`
```razor
<BootstrapBlazorRoot>
@Body
</BootstrapBlazorRoot>
```
- [微软市场](https://marketplace.visualstudio.com/items?itemName=Longbow.BootstrapBlazorUITemplate)
- [码云镜像](https://gitee.com/LongbowEnterprise/BootstrapBlazorVsix/raw/master/dist/BootstrapBlazor.UITemplate.vsix)
### 添加样式到 HTML Head 中
具体是 **index.html** 或者 **_Layout.cshtml/_Host.cshtml/App.razor** 取决项目类型 `WebAssembly` 还是 `Server`
```razor
<link rel="stylesheet" href="_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css" />
```
### 更多文档
### 增加脚本到 Html Body 结尾处
```razor
<script src="_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js"></script>
```
### 增加服务 `Program.cs`
```csharp
builder.Services.AddBootstrapBlazor();
```
## 用法示例
```razor
<Display Value="@_text"></Display>
<Button Text="Button" OnClick="@ClickButton"></Button>
@code {
private string? _text;
private void ClickButton(MouseEventArgs e)
{
_text = DateTime.Now.ToString();
}
}
```
## 安装项目模板
```cscharp
dotnet new install Bootstrap.Blazor.Templates::*
```
## 更多文档
- [项目模板](https://www.blazor.zone/template)
- [快速上手](https://www.blazor.zone/install-server)
## 相关资源
- [Blazor 官方文档](https://docs.microsoft.com/zh-cn/aspnet/core/blazor/?WT.mc_id=DT-MVP-5004174)
- [生成 Blazor Web 应用](https://docs.microsoft.com/zh-cn/learn/modules/build-blazor-webassembly-visual-studio-code/?WT.mc_id=DT-MVP-5004174)
- [什么是 Blazor](https://docs.microsoft.com/zh-cn/learn/modules/build-blazor-webassembly-visual-studio-code/2-understand-blazor-webassembly?WT.mc_id=DT-MVP-5004174)
@@ -121,91 +137,26 @@ dotnet run
## QQ交流群
[![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)
[![QQ](https://img.shields.io/badge/QQ-795206915-greenlight.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-greenlight.svg?logo=tencent%20qq&logoColor=red)](https://qm.qq.com/cgi-bin/qm/qr?k=Geker7hCXK0HC-J8_974645j_n6w0OE0&jump_from=webapi)
## 视频教程
B 站视频集锦 [传送门](https://space.bilibili.com/660853738/channel/index)
## 组件
Blazor 应用基于组件。 Blazor 中的组件是指 UI 元素,例如页面、对话框或数据输入窗体。
组件是内置到 .NET 程序集的 .NET 类,用来:
- 定义灵活的 UI 呈现逻辑。
- 处理用户事件。
- 可以嵌套和重用。
- 可以作为 Razor 类库或 NuGet 包共享和分发。
### 内置组件
内置组件 [传送门](https://www.blazor.zone/components)
## 分支说明
- master 稳定分支
- dev 开发功能分支
- 其他 均为临时分支
## 演示地址
[![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)
## 浏览器支持
![chrome](https://img.shields.io/badge/chrome->%3D57-success.svg?logo=google%20chrome&logoColor=red)
![firefox](https://img.shields.io/badge/firefox->522-success.svg?logo=firefox%20browser&logoColor=red)
![edge](https://img.shields.io/badge/edge->%3D16-success.svg?logo=microsoft%20edge&logoColor=blue)
![ie](https://img.shields.io/badge/ie->%3D11-success.svg?logo=internet%20explorer&logoColor=blue)
![Safari](https://img.shields.io/badge/safari->%3D14-success.svg?logo=safari&logoColor=blue)
![Andriod](https://img.shields.io/badge/andriod->%3D4.4-success.svg?logo=android)
![oper](https://img.shields.io/badge/opera->%3D4.4-success.svg?logo=opera&logoColor=red)
### 移动设备
![ios](https://img.shields.io/badge/ios-supported-success.svg?logo=apple&logoColor=white)
![Andriod](https://img.shields.io/badge/andriod-suported-success.svg?logo=android)
![windows](https://img.shields.io/badge/windows-suported-success.svg?logo=windows&logoColor=blue)
| | **Chrome** | **Firefox** | **Safari** | **Android Browser & WebView** | **Microsoft Edge** |
| ------- | --------- | --------- | ------ | ------------------------- | -------------- |
| **iOS** | Supported | Supported | Supported | N/A | Supported |
| **Android** | Supported | Supported | N/A | Android v5.0+ supported | Supported |
| **Windows 10 Mobile** | N/A | N/A | N/A | N/A | Supported |
### 桌面设备
![macOS](https://img.shields.io/badge/macOS-supported-success.svg?logo=apple&logoColor=white)
![linux](https://img.shields.io/badge/linux-suported-success.svg?logo=linux&logoColor=white)
![windows](https://img.shields.io/badge/windows-suported-success.svg?logo=windows)
| | Chrome | Firefox | Internet Explorer | Microsoft Edge | Opera | Safari |
| ------- | --------- | --------- | ----------------- | -------------- | --------- | ------------- |
| Mac | Supported | Supported | N/A | N/A | Supported | Supported |
| Linux | Supported | Supported | N/A | N/A | N/A | N/A |
| Windows | Supported | Supported | Supported, IE11+ | Supported | Supported | Not supported |
[![website](https://img.shields.io/badge/online-https://www.blazor.zone-success.svg?color=greenlight&logo=buzzfeed&logoColor=green)](https://www.blazor.zone)
## GVP 奖杯
![项目奖杯](https://images.gitee.com/uploads/images/2021/0112/120620_e596ac3c_554725.png "GVP.png")
## 项目截图
![登录可查看](https://gitee.com/Longbow/Pictures/raw/master/BootstrapBlazor/Toggle.png "Toggle.png")
![登录可查看](https://gitee.com/Longbow/Pictures/raw/master/BootstrapBlazor/Toast.png "Toast.png")
![登录可查看](https://gitee.com/Longbow/Pictures/raw/master/BootstrapBlazor/Upload.png "Upload.png")
![登录可查看](https://gitee.com/Longbow/Pictures/raw/master/BootstrapBlazor/Upload2.png "Upload2.png")
![登录可查看](https://gitee.com/Longbow/Pictures/raw/master/BootstrapBlazor/Bar.png "Bar.png")
![登录可查看](https://gitee.com/Longbow/Pictures/raw/master/BootstrapBlazor/Pie.png "Pei.png")
![登录可查看](https://gitee.com/Longbow/Pictures/raw/master/BootstrapBlazor/Doughnut.png "Doughnut.png")
## 开源协议
[![Gitee license](https://img.shields.io/github/license/dotnetcore/BootstrapBlazor.svg?logo=git&logoColor=red)](https://gitee.com/LongbowEnterprise/BootstrapBlazor/blob/master/LICENSE)
[![Gitee license](https://img.shields.io/github/license/dotnetcore/BootstrapBlazor.svg?logo=git&color=&logoColor=green)](https://gitee.com/LongbowEnterprise/BootstrapBlazor/blob/master/LICENSE)
## 特别鸣谢
### 上海智通建设发展股份有限公司
特别鸣谢胡总对本项目的鼎力赞助 **10000**
特别鸣谢对本项目的鼎力赞助 **10000**
<img src="https://gitee.com/Longbow/Pictures/raw/master/BootstrapBlazor/Donate@x2.png" width="552px;" />
@@ -216,8 +167,17 @@ Blazor 应用基于组件。 Blazor 中的组件是指 UI 元素,例如页面
3. 提交代码
4. 新建 Pull Request
## 行为准则
本项目采用了《贡献者公约》所定义的行为准则,以明确我们社区的预期行为。
更多信息请见 [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).
## 捐助
如果这个项目对您有所帮助,请扫下方二维码打赏一杯咖啡。
<img src="https://gitee.com/Longbow/Pictures/raw/master/WeChat/BarCode@2x.png" width="382px;" />
## 赞助商
感谢 [JetBrains](https://jb.gg/OpenSourceSupport) 提供的免费开源 License
<img src="https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg" width="100px" align="right" />

7
Version.props Normal file
View File

@@ -0,0 +1,7 @@
<Project>
<PropertyGroup>
<RunTargetFramework>net9.0</RunTargetFramework>
</PropertyGroup>
</Project>

View File

@@ -10,6 +10,7 @@ cors
dest
dissubmit
dropup
dropzone
editform
ellips
fullscreen
@@ -55,7 +56,9 @@ Github
menuitem
Segmenteds
Responsives
resx
tabset
tabindex
Splittings
Foos
Localizer
@@ -66,12 +69,12 @@ Goto
elec
ahora
Nuget
lastest
bootstrapblazor
layui
devui
appsettings
cshtml
csharp
Starup
args
nameof
@@ -93,3 +96,25 @@ webp
Pdfi
simhei
Hmmss
winbox
autoplay
youtube
vimeo
scrlang
Validata
Validatable
noselect
Urls
Pharmacode
bluetooth
iframe
Sqlite
maxlength
inputmode
Totp
otpauth
Hotp
univer
rdkit
webkitdirectory
dotx

View File

@@ -30,7 +30,7 @@
"WeekText": "Woche",
"NextWeek": "Nächste Woche",
"WeekHeaderText": "",
"WeekLists": "Son,Mon,Die,Mit,Don,Fre,Sam",
"WeekLists": "So,Mo,Di,Mi,Do,Fr,Sa",
"WeekNumberText": "{0} Woche(n)",
"Months": "Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember",
"Title": "{0} {1}"
@@ -65,7 +65,7 @@
"YearPeriodText": "{0} - {1}",
"Months": "Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember",
"MonthLists": "Jan,Feb,Mar,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez",
"WeekLists": "Son,Mon,Die,Mit,Don,Fre,Sam",
"WeekLists": "So,Mo,Di,Mi,Do,Fr,Sa",
"GenericTypeErroMessage": "DateTimePicker unterstützt nur DateTime oder Nullable<DateTime>",
"Today": "Heute",
"Yesterday": "Gestern",
@@ -78,6 +78,7 @@
"ClearButtonText": "Leeren",
"TodayButtonText": "Heute",
"ConfirmButtonText": "Ok",
"DateTimeFormat": "dd\\.MM\\.yyyy HH\\:mm\\:ss",
"DateFormat": "dd\\.MM\\.yyyy",
"Last7Days": "Letzte 7 Tage",
"Last30Days": "Letzte 30 Tage",
@@ -109,7 +110,7 @@
"ErrorMessage": "Bitte geben Sie denselben Wert nochmals ein"
},
"BootstrapBlazor.Components.ErrorLogger": {
"ToastTitle": "Anwendungfehler"
"ToastTitle": "Anwendungsfehler"
},
"BootstrapBlazor.Components.GoTop": {
"TooltipText": "Nach oben"
@@ -119,7 +120,7 @@
},
"BootstrapBlazor.Components.Logout": {
"PrefixDisplayNameText": "Willkommen",
"PrefixUserNameText": "Account:"
"PrefixUserNameText": "Benutzername:"
},
"BootstrapBlazor.Components.LogoutLink": {
"Text": "Ausloggen"
@@ -130,7 +131,8 @@
"BootstrapBlazor.Components.ModalDialog": {
"CloseButtonText": "Schließen",
"SaveButtonText": "Speichern",
"PrintButtonText": "Drucken"
"PrintButtonText": "Drucken",
"ExportPdfButtonText": "PDF exportieren"
},
"BootstrapBlazor.Components.MultiSelect": {
"PlaceHolder": "Klicken, um auszuwählen ...",
@@ -138,7 +140,8 @@
"ReverseSelectText": "Umkehren",
"ClearText": "Leeren",
"MinErrorMessage": "Wählen Sie wenigstens {0} Elemente",
"MaxErrorMessage": "Es können maximal {0} Elemente selektiert werden"
"MaxErrorMessage": "Es können maximal {0} Elemente selektiert werden",
"NoSearchDataText": "Kein Ergebnis"
},
"BootstrapBlazor.Components.Pagination": {
"GotoNavigatorLabelText": "Zu"
@@ -151,11 +154,16 @@
"BootstrapBlazor.Components.PrintButton": {
"Text": "Drucken"
},
"BootstrapBlazor.Components.Repeater": {
"EmptyText": "Keine Daten"
},
"BootstrapBlazor.Components.Search": {
"SearchButtonText": "Suchen"
"SearchButtonText": "Suchen",
"NoDataTip": "Keine Einträge gefunden"
},
"BootstrapBlazor.Components.Select": {
"PlaceHolder": "Zum Auswählen klicken ..."
"PlaceHolder": "Zum Auswählen klicken ...",
"NoSearchDataText": "Kein Ergebnis"
},
"BootstrapBlazor.Components.SelectTree": {
"PlaceHolder": "Zum Auswählen klicken ..."
@@ -179,7 +187,17 @@
"CloseCurrentTabText": "Abbrechen",
"CloseOtherTabsText": "Andere schließen",
"CloseAllTabsText": "Alle schließen",
"NotFoundTabText": "Nicht gefunden"
"NotFoundTabText": "Nicht gefunden",
"RefreshToolbarTooltipText": "Aktualisieren",
"FullscreenToolbarTooltipText": "Vollbild",
"PrevTabNavLinkTooltipText": "Vorheriger Tab",
"NextTabNavLinkTooltipText": "Nächster Tab",
"CloseTabNavLinkTooltipText": "Schließen",
"ContextRefresh": "Aktualisieren",
"ContextClose": "Schließen",
"ContextCloseOther": "Andere Tabs schließen",
"ContextCloseAll": "Alle Tabs schließen",
"ContextFullScreen": "Vollbild"
},
"BootstrapBlazor.Components.Table": {
"AddButtonText": "Hinzufügen",
@@ -201,11 +219,13 @@
"SearchButtonText": "Suchen",
"ResetSearchButtonText": "Zurücksetzen",
"AdvanceButtonText": "Erweiterte Suche",
"AdvancedSortModalTitle": "Sortieren",
"AdvancedSortButtonText": "Erweitertes Sortieren",
"CheckboxDisplayText": "Alle",
"EditModalTitle": "Bearbeiten",
"AddModalTitle": "Neu",
"LineNoText": "Zeilen",
"ColumnButtonTemplateHeaderText": "",
"ColumnButtonTemplateHeaderText": "Aktionen",
"SearchTooltip": "<div class='search-input-tooltip'>Bitte eingeben ...</br><kbd>Enter</kbd> Suche <kbd>ESC</kbd> Leeren</div>",
"SearchModalTitle": "Suche",
"AddButtonToastTitle": "Daten hinzufügen",
@@ -236,17 +256,27 @@
"ExportCsvDropdownItemText": "MS-Csv",
"ExportExcelDropdownItemText": "MS-Excel",
"ExportPdfDropdownItemText": "Pdf",
"PageInfoText": "{0} - {1} Total {2}",
"PageItemsText": "{0}/page"
"PageInfoText": "{0} - {1} Insgesamt {2}",
"PageItemsText": "{0}/Seite",
"CopyColumnTooltipText": "Ganze Spalte in die Zwischenablage kopieren",
"CopyColumnCopiedTooltipText": "Kopiert!",
"ColumnWidthTooltipPrefix": "Breite: ",
"ColumnToolboxTitle": "Werkzeuge",
"AlignLeftText": "Links",
"AlignLeftTooltipText": "Klicken, um den Text in dieser Spalte links auszurichten",
"AlignCenterText": "Zentriert",
"AlignCenterTooltipText": "Klicken, um den Text in dieser Spalte zentriert auszurichten",
"AlignRightText": "Rechts",
"AlignRightTooltipText": "Klicken, um den Text in dieser Spalte rechts auszurichten"
},
"BootstrapBlazor.Components.EditDialog": {
"CloseButtonText": "Schließen",
"SaveButtonText": "Speichern"
},
"BootstrapBlazor.Components.TableFilter": {
"BootstrapBlazor.Components.TableColumnFilter": {
"Title": "Filter",
"ClearButtonText": "Leeren",
"FilterButtonText": "Übernehmen",
"FilterButtonText": "Filtern",
"BoolFilter.AllText": "Alle",
"BoolFilter.TrueText": "Wahr",
"BoolFilter.FalseText": "Unwahr",
@@ -258,7 +288,10 @@
"NotEqual": "Ungleich",
"Contains": "Beinhaltet",
"NotContains": "Beinhaltet nicht",
"EnumFilter.AllText": "Alle"
"EnumFilter.AllText": "Alle",
"NotSupportedMessage": "Nicht unterstützter Filtertyp. Bitte passen Sie den Filter mit FilterTemplate an",
"MultiFilterSearchPlaceHolderText": "Bitte eingeben ...",
"MultiFilterSelectAllText": "Alle auswählen"
},
"BootstrapBlazor.Components.FilterLogicItem": {
"And": "Und",
@@ -284,7 +317,9 @@
},
"BootstrapBlazor.Components.Transfer": {
"LeftPanelText": "Alle",
"RightPanelText": "Markierte"
"RightPanelText": "Markierte",
"MinErrorMessage": "Bitte wählen Sie mindestens {0} Elemente aus",
"MaxErrorMessage": "Es können bis zu {0} Elemente ausgewählt werden"
},
"BootstrapBlazor.Components.TransferPanel": {
"SearchPlaceHolderString": "Bitte eingeben ...",
@@ -293,18 +328,24 @@
"BootstrapBlazor.Components.Tree": {
"NotSetOnTreeExpandErrorMessage": "OnExpandNodeAsync-Parameter nicht gesetzt"
},
"BootstrapBlazor.Components.TreeView": {
"NotSetOnTreeExpandErrorMessage": "OnExpandNodeAsync-Parameter nicht gesetzt",
"ToolbarEditTitle": "Knoten bearbeiten",
"ToolbarEditLabelText": "Umbenennen"
},
"BootstrapBlazor.Components.UploadBase": {
"DeleteButtonText": "Löschen",
"BrowserButtonText": "Browser",
"FileExtensions": "Datei muss folgende Endung haben: {0}",
"FileSizeValidation": "Dateigrößer muss kleiner sein als {0}"
"FileSizeValidation": "Dateigröße muss kleiner sein als {0}",
"DropUploadText": "Dateien hierher ziehen oder <em>klicken, um hochzuladen</em>"
},
"BootstrapBlazor.Components.Handwritten": {
"SaveButtonText": "Speichern",
"ClearButtonText": "Leeren"
},
"BootstrapBlazor.Components.SignaturePad": {
"SignAboveLabel": "In das Feld eintragen",
"SignAboveLabel": "Im Feld unterschreiben",
"ClearBtnTitle": "Löschen",
"SignatureAlertText": "Bitte geben Sie zuerst eine Unterschrift an",
"ChangeColorBtnTitle": "Farbe ändern",
@@ -316,7 +357,7 @@
"SaveSVGBtnTitle": "SVG"
},
"BootstrapBlazor.Components.NullableBoolItemsAttribute": {
"NullValueDisplayText": "Bitte wählen",
"NullValueDisplayText": "Bitte auswählen ...",
"TrueValueDisplayText": "Wahr",
"FalseValueDisplayText": "Falsch"
},
@@ -330,5 +371,38 @@
"ButtonText": "Kopieren",
"DialogHeaderText": "Ausgewähltes Symbol",
"CopiedTooltipText": "Kopieren erfolgreich"
},
"BootstrapBlazor.Components.Splitting": {
"Text": "Laden ..."
},
"BootstrapBlazor.Components.QueryBuilder": {
"And": "und",
"Or": "oder",
"GreaterThanOrEqual": "Größer oder gleich",
"LessThanOrEqual": "Kleiner oder gleich",
"GreaterThan": "Größer",
"LessThan": "Kleiner",
"Equal": "Gleich",
"NotEqual": "Ungleich",
"Contains": "Beinhaltet",
"NotContains": "Beinhaltet nicht",
"GroupText": "Gruppe",
"ItemText": "Element"
},
"BootstrapBlazor.Components.TableAdvancedSortDialog": {
"AscText": "Aufsteigend",
"DescText": "Absteigend"
},
"BootstrapBlazor.Components.ClockPicker": {
"AMText": "Vormittag",
"PMText": "Nachmittag"
},
"BootstrapBlazor.Components.ThemeProvider": {
"AutoModeText": "Auto",
"DarkModeText": "Dunkel",
"LightModeText": "Hell"
},
"BootstrapBlazor.Components.ValidateBase": {
"DefaultRequiredErrorMessage": "{0} ist erforderlich."
}
}

349
localization/ru-RU.json Normal file
View File

@@ -0,0 +1,349 @@
{
"BootstrapBlazor.Components.AutoComplete": {
"NoDataTip": "Нет данных",
"PlaceHolder": "Пожалуйста, введите"
},
"BootstrapBlazor.Components.BootstrapInputNumber": {
"ParsingErrorMessage": "Поле {0} должно быть числом."
},
"BootstrapBlazor.Components.Calendar": {
"Months": "Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь",
"NextMonth": "След месяц",
"NextWeek": "След неделя",
"NextYear": "След год",
"PreviousMonth": "Пред месяц",
"PreviousWeek": "Пред. неделя",
"PreviousYear": "Пред. год",
"Title": "{0} {1}",
"Today": "Сегодня",
"WeekLists": "Вс,Пн,Вт,Ср,Чт,Пт,Сб",
"WeekNumberText": "{0} недель",
"WeekText": "Неделя"
},
"BootstrapBlazor.Components.Captcha": {
"BarText": "Проведите пальцем вправо, чтобы решить головоломку",
"FailedText": "Не удалось загрузиться",
"HeaderText": "CAPTCHA",
"LoadText": "Загрузка..."
},
"BootstrapBlazor.Components.Cascader": {
"PlaceHolder": "Выбрать..."
},
"BootstrapBlazor.Components.Console": {
"AutoScrollText": "Автопрокрутка",
"ClearButtonText": "Очистить",
"HeaderText": "Мониторинг",
"LightTitle": "Индикатор"
},
"BootstrapBlazor.Components.DateTimePicker": {
"AiraNextMonthLabel": "След. месяц",
"AiraNextYearLabel": "След. год",
"AiraPrevMonthLabel": "Пред. месяц",
"AiraPrevYearLabel": "Пред. год",
"CancelButtonText": "Отмена",
"ClearButtonText": "Очистить",
"ConfirmButtonText": "ОК",
"DateFormat": "M-d-yyyy",
"DatePlaceHolder": "Выберите дату",
"DatePlaceHolderText": "Выбрать...",
"DateTimeFormat": "yyyy-MM-dd HH\\:mm\\:ss",
"DateTimePlaceHolderText": "Выбрать...",
"GenericTypeErroMessage": "Компонент DateTimePicker поддерживает только DateTime или Nullable\u003CDateTime\u003E",
"MonthLists": "Январь, Февраль, Март, Апрель, Май, Июнь, Июль, Август, Сентябрь, Октябрь, Ноябрь, Декабрь",
"Months": "Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь",
"MonthText": "{0}",
"NowButtonText": "Сейчас",
"TimeFormat": "hh\\:mm\\:ss",
"TimePlaceHolder": "Выберите время",
"Today": "Сегодня",
"Week": "Прошл неделя",
"WeekLists": "Вс,Пн,Вт,Ср,Чт,Пт,Сб",
"YearPeriodText": "{0} г - {1} г",
"YearText": "{0}",
"Yesterday": "Вчера"
},
"BootstrapBlazor.Components.DateTimeRange": {
"ClearButtonText": "Очистить",
"ConfirmButtonText": "ОК",
"DateFormat": "M/d/yyyy",
"EndPlaceHolderText": "Дата окончания",
"Last30Days": "Последние 30 дней",
"Last7Days": "Последние 7 дней",
"LastMonth": "Прошлый месяц",
"SeparateText": "Кому",
"StartPlaceHolderText": "Дата начала",
"ThisMonth": "В этом месяце",
"TodayButtonText": "Сегодня"
},
"BootstrapBlazor.Components.DropdownList": {
"PlaceHolder": "Выбрать..."
},
"BootstrapBlazor.Components.EditDialog": {
"CloseButtonText": "Закрыть",
"SaveButtonText": "Сохранить"
},
"BootstrapBlazor.Components.Editor": {
"PlaceHolder": "Нажмите, чтобы редактировать"
},
"BootstrapBlazor.Components.EditorForm": {
"ModelInvalidOperationExceptionMessage": "ValidateForm MODEL не соответствует {0} MODEL",
"PlaceHolderText": "Пожалуйста, введите..."
},
"BootstrapBlazor.Components.Empty": {
"Text": "Нет данных"
},
"BootstrapBlazor.Components.EqualToValidator": {
"ErrorMessage": "Пожалуйста, введите значение еще раз"
},
"BootstrapBlazor.Components.ErrorLogger": {
"ToastTitle": "Ошибка приложения"
},
"BootstrapBlazor.Components.FilterLogicItem": {
"And": "И",
"Or": "Или"
},
"BootstrapBlazor.Components.GoTop": {
"TooltipText": "Наверх"
},
"BootstrapBlazor.Components.Handwritten": {
"ClearButtonText": "Очистить",
"SaveButtonText": "Сохранить"
},
"BootstrapBlazor.Components.IconDialog": {
"ButtonText": "Копировать",
"CopiedTooltipText": "Скопированы",
"DialogHeaderText": "Выбранный значок",
"LabelFullText": "Html",
"LabelText": "Значок"
},
"BootstrapBlazor.Components.InsertRowMode": {
"First": "Первый",
"Last": "Последний"
},
"BootstrapBlazor.Components.Layout": {
"TooltipText": "Нажмите, чтобы развернуть/свернуть боковую панель"
},
"BootstrapBlazor.Components.Logout": {
"PrefixDisplayNameText": "Добро пожаловать",
"PrefixUserNameText": "Учетная запись:"
},
"BootstrapBlazor.Components.LogoutLink": {
"Text": "Выход"
},
"BootstrapBlazor.Components.Menu": {
"InvalidOperationExceptionMessage": "Компонент бокового меню не может быть использован независимо. Пожалуйста, используйте компонент Menu, чтобы установить IsVertical = true"
},
"BootstrapBlazor.Components.ModalDialog": {
"CloseButtonText": "Закрыть",
"PrintButtonText": "Печать",
"SaveButtonText": "Сохранить"
},
"BootstrapBlazor.Components.MultiSelect": {
"ClearText": "Очистить",
"MaxErrorMessage": "Можно выбрать не более {0} элементов",
"MinErrorMessage": "Выберите не менее {0} элементов",
"PlaceHolder": "Выберите элементы...",
"ReverseSelectText": "Инвертировать",
"SelectAllText": "Все"
},
"BootstrapBlazor.Components.NullableBoolItemsAttribute": {
"FalseValueDisplayText": "Ложный",
"NullValueDisplayText": "Выбрать...",
"TrueValueDisplayText": "Истинный"
},
"BootstrapBlazor.Components.Pagination": {
"GotoNavigatorLabelText": "Перейти к"
},
"BootstrapBlazor.Components.PopConfirmButton": {
"CloseButtonText": "Отмена",
"ConfirmButtonText": "ОК",
"Content": "Вы уверены, что хотите выполнить эту операцию?"
},
"BootstrapBlazor.Components.PrintButton": {
"Text": "Печатать"
},
"BootstrapBlazor.Components.QueryBuilder": {
"And": "и",
"Contains": "Содержит",
"Equal": "Равен",
"GreaterThan": "Больше, чем",
"GreaterThanOrEqual": "БольшеЧемИлиРавно",
"GroupText": "Группа",
"ItemText": "Пункт",
"LessThan": "МеньшеЧем",
"LessThanOrEqual": "МеньшеЧемИлиРавно",
"NotContains": "Не содержит",
"NotEqual": "Не равное",
"Or": "или"
},
"BootstrapBlazor.Components.Repeater": {
"EmptyText": "Нет данных"
},
"BootstrapBlazor.Components.ResultDialogOption": {
"ButtonCloseText": "Закрыть",
"ButtonNoText": "Нет",
"ButtonYesText": "Да"
},
"BootstrapBlazor.Components.Search": {
"SearchButtonText": "Поиск"
},
"BootstrapBlazor.Components.SearchDialog": {
"QueryButtonText": "Запрос",
"ResetButtonText": "Сброс"
},
"BootstrapBlazor.Components.Select": {
"NoSearchDataText": "Нет результата",
"PlaceHolder": "Выбрать..."
},
"BootstrapBlazor.Components.SelectTree": {
"PlaceHolder": "Выбрать..."
},
"BootstrapBlazor.Components.SignaturePad": {
"ChangeColorBtnTitle": "Изменить цвет",
"ClearBtnTitle": "Очистить",
"CloseBtnTitle": "Закрыть",
"SaveBase64BtnTitle": "ОК",
"SaveJPGBtnTitle": "JPG",
"SavePNGBtnTitle": "PNG",
"SaveSVGBtnTitle": "SVG",
"SignAboveLabel": "Подпись",
"SignatureAlertText": "Пожалуйста, сначала поставьте подпись",
"UndoBtnTitle": "Отменить"
},
"BootstrapBlazor.Components.Splitting": {
"Text": "Загрузка..."
},
"BootstrapBlazor.Components.StringLengthValidator": {
"ErrorMessage": "Введите значение, меньшее или равное {{0}}"
},
"BootstrapBlazor.Components.SweetAlert": {
"CancelButtonText": "Отмена",
"CloseButtonText": "Закрыть",
"ConfirmButtonText": "Подтвердить"
},
"BootstrapBlazor.Components.Switch": {
"OffInnerText": "ОТКЛ",
"OnInnerText": "ВКЛ"
},
"BootstrapBlazor.Components.SwitchButton": {
"OffText": "ОТКЛ",
"OnText": "ВКЛ"
},
"BootstrapBlazor.Components.Tab": {
"CloseAllTabsText": "Закрыть все",
"CloseCurrentTabText": "Закрывать",
"CloseOtherTabsText": "Закрыть Другие",
"NotFoundTabText": "Не найдено"
},
"BootstrapBlazor.Components.Table": {
"AddButtonText": "Добавить",
"AddButtonToastContent": "Новый метод данных не предусмотрен, и данные не могут быть созданы.",
"AddButtonToastTitle": "Добавить данные",
"AddModalTitle": "Новые функции",
"AdvanceButtonText": "Расширенный поиск",
"AdvancedSortButtonText": "Расширенная сортировка",
"AdvancedSortModalTitle": "Сортировать",
"CancelButtonText": "Отмена",
"CancelDeleteButtonText": "Отмена",
"CardViewButtonText": "Вид",
"CheckboxDisplayText": "Все",
"CloseButtonText": "Закрыть",
"ColumnButtonText": "Столбцы",
"ColumnButtonTitleText": "Показать/скрыть столбцы",
"ConfirmDeleteButtonText": "Удалить",
"ConfirmDeleteContentText": "Вы уверены, что хотите удалить все выбранные строки?",
"CopyColumnCopiedTooltipText": "Скопированы!",
"CopyColumnTooltipText": "Копирование данных столбцов целиком в буфер обмена",
"DataServiceInvalidOperationText": "Не удается указать значение для свойства \u0027DataService\u0027 при типе \u0027BootstrapBlazor.Components.Table\u00271[[{0}]]\u0027. Отсутствует зарегистрированная служба типа \u0027BootstrapBlazor.Components.IDataService\u00271[{0}]\u0027.",
"DeleteButtonText": "Удалить",
"DeleteButtonToastCanNotDeleteContent": "В выбранных данных есть неудаляемые данные, автоматическое закрытие через {0}",
"DeleteButtonToastContent": "Выберите данные для удаления. Они автоматически закроются через {0} секунд.",
"DeleteButtonToastResultContent": "Удалить данные {0}, автоматически закрыть через {1} секунд.",
"DeleteButtonToastTitle": "Удалить данные",
"EditButtonText": "Редактировать",
"EditButtonToastMoreSelectContent": "Для редактирования можно выбрать только один фрагмент данных.",
"EditButtonToastNoSaveMethodContent": "Метод сохранения данных не предусмотрен, данные нельзя редактировать.",
"EditButtonToastNotSelectContent": "Не удалось сохранить данные. Пожалуйста, выберите данные, которые вы хотите отредактировать",
"EditButtonToastReadonlyContent": "Выбранные данные не могут быть отредактированы",
"EditButtonToastTitle": "Добавить данные",
"EditModalTitle": "Редактировать",
"EmptyText": "Нет данных",
"ExportButtonText": "Экспорт",
"ExportCsvDropdownItemText": "MS-CSV",
"ExportExcelDropdownItemText": "MS-Excel",
"ExportPdfDropdownItemText": "PDF",
"ExportToastContent": "Экспорт данных {0}, автоматическое закрытие через {1} секунд.",
"ExportToastInProgressContent": "Выполняется экспорт данных. Подождите. Он автоматически закроется через {0} секунд.",
"ExportToastTitle": "Экспорт",
"FailText": "Операция не удалась",
"LineNoText": "Нет.",
"NotSetOnTreeExpandErrorMessage": "не задан параметр OnTreeExpand",
"PageInfoText": "{0} - {1} Всего {2} элемента(ов)",
"PageItemsText": "{0} элемент(ов)/страниц(а)",
"RefreshButtonText": "Обновить",
"ResetSearchButtonText": "Очистить",
"SaveButtonText": "Сохранить",
"SaveButtonToastContent": "Метод а сохранения данных не предусмотрен, данные не могут быть сохранены.",
"SaveButtonToastResultContent": "Сохранение данных {0}, автоматическое закрытие через {1}",
"SaveButtonToastTitle": "Сохранить данные",
"SearchButtonText": "Поиск",
"SearchModalTitle": "Поиск",
"SearchPlaceholderText": "Поиск",
"SearchTooltip": "Введите любую строку для глобального поиска",
"SortAscText": "По убыванию",
"SortDescText": "Снять",
"SuccessText": "Успешно",
"UnsetText": "По возрастанию",
"UpdateButtonText": "Обновить"
},
"BootstrapBlazor.Components.TableAdvancedSortDialog": {
"AscText": "Восходящий",
"DescText": "Нисходящий"
},
"BootstrapBlazor.Components.TableFilter": {
"BoolFilter.AllText": "Все",
"BoolFilter.FalseText": "Ложный",
"BoolFilter.TrueText": "Истинный",
"ClearButtonText": "Очистить",
"Contains": "Содержит",
"EnumFilter.AllText": "Все",
"Equal": "Равный",
"FilterButtonText": "Фильтр",
"GreaterThan": "Больше, чем",
"GreaterThanOrEqual": "БольшеЧемИлиРавно",
"LessThan": "МеньшеЧем",
"LessThanOrEqual": "МеньшеЧемИлиРавно",
"NotContains": "Не содержит",
"NotEqual": "Не равное",
"NotSupportedMessage": "Неподдерживаемый тип фильтра, пожалуйста, настройте фильтр с помощью FilterTemplate"
},
"BootstrapBlazor.Components.Timer": {
"CancelText": "Отмена",
"PauseText": "Пауза",
"ResumeText": "Продолжить",
"StarText": "Таймер"
},
"BootstrapBlazor.Components.Toggle": {
"OffText": "Свернуть",
"OnText": "Расширять"
},
"BootstrapBlazor.Components.Transfer": {
"LeftPanelText": "Все",
"MaxErrorMessage": "Можно выбрать до {0} элементов",
"MinErrorMessage": "Пожалуйста, выберите не менее {0} элементов",
"RightPanelText": "Выбранный"
},
"BootstrapBlazor.Components.TransferPanel": {
"SearchPlaceHolderString": "Пожалуйста, введите ...",
"Text": "Список"
},
"BootstrapBlazor.Components.Tree": {
"NotSetOnTreeExpandErrorMessage": "не задан параметр OnExpandNodeAsync"
},
"BootstrapBlazor.Components.UploadBase": {
"BrowserButtonText": "Проводник",
"DeleteButtonText": "Удалить",
"FileExtensions": "Файл должен иметь одно из следующих расширений: {0}",
"FileSizeValidation": "Размер файла не должен превышать {0}"
}
}

View File

@@ -1,3 +0,0 @@
@echo off
copy commit_msg_template.txt ../../.git/commit_msg_template1.txt /y

View File

@@ -1,3 +0,0 @@
#! /bin/bash
cp commit_msg_template.txt ../../.git/commit_msg_template1.txt

View File

@@ -0,0 +1,108 @@
-----BEGIN CERTIFICATE-----
MIIGdDCCBFygAwIBAgIQajxj43MW/K+15g02CQHxkTANBgkqhkiG9w0BAQwFADBL
MQswCQYDVQQGEwJBVDEQMA4GA1UEChMHWmVyb1NTTDEqMCgGA1UEAxMhWmVyb1NT
TCBSU0EgRG9tYWluIFNlY3VyZSBTaXRlIENBMB4XDTI0MDYyOTAwMDAwMFoXDTI0
MDkyNzIzNTk1OVowFjEUMBIGA1UEAxMLYmxhem9yLnpvbmUwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDn0mzWjpyxB23WziN6hdf2bc7LCKpta6PMu+fV
nEXPOL+tmEm4n3w6OyseE+9PwELftU6AYMjYCnjotieK/BRwY0yBUXew0zR8giEe
VV7H8d91qkMomtN3kYBlghWoN51HzXfSjOZT+pZXtE5Ku17qqzuOWdQaP1opWn3c
B9CVheagx/uHmRRudT5m7AuynHzPq68D1yLRGU8odLZCR8W0w9rqqttgb/y/HhJ/
zHdMkzccEHXR1Lw4rvlyvNX0MNUcB+lwsmSgOW9TsJltyM63TcSLpQWLkbkCnalp
cmbidAExkIgkysHQa0N4fiqTZRb6ji37AQl9VYOKI/G+MPDJAgMBAAGjggKHMIIC
gzAfBgNVHSMEGDAWgBTI2XhootkZaNU9ct5fCj7ctYaGpjAdBgNVHQ4EFgQUx61q
fxexO5QjJvIAF/tQxjPM+UYwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAw
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEkGA1UdIARCMEAwNAYLKwYB
BAGyMQECAk4wJTAjBggrBgEFBQcCARYXaHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMw
CAYGZ4EMAQIBMIGIBggrBgEFBQcBAQR8MHowSwYIKwYBBQUHMAKGP2h0dHA6Ly96
ZXJvc3NsLmNydC5zZWN0aWdvLmNvbS9aZXJvU1NMUlNBRG9tYWluU2VjdXJlU2l0
ZUNBLmNydDArBggrBgEFBQcwAYYfaHR0cDovL3plcm9zc2wub2NzcC5zZWN0aWdv
LmNvbTCCAQMGCisGAQQB1nkCBAIEgfQEgfEA7wB1AHb/iD8KtvuVUcJhzPWHujS0
pM27KdxoQgqf5mdMWjp0AAABkGOPNy8AAAQDAEYwRAIgV9z4fK9EaGQhp9YmMCAZ
MLPTMo1qRwVjMPuNoG0eddsCIA/AkbgumBTKxZ2xVPNRfhaKkzvVv6L+5iFYccbH
m5UAAHYAPxdLT9ciR1iUHWUchL4NEu2QN38fhWrrwb8ohez4ZG4AAAGQY483DgAA
BAMARzBFAiBhYBknOyUwex9GkG6p8bnaqiklDWs6/0CHAHzIjihtrwIhAO8KAhty
1BnKct4Z6F0UEIvq51PaVKxva+YSs/Vza1TAMCcGA1UdEQQgMB6CC2JsYXpvci56
b25lgg93d3cuYmxhem9yLnpvbmUwDQYJKoZIhvcNAQEMBQADggIBAApKqj0ngt4A
kQ9AdKs7z82q1Ys9OGyqC92NdoIc8URIwnZKYaVUoUvBkBr/yX4mX8HqfP6NxWzY
M/eihJ+qIa3Mx0zlo1tjn6fvTebTbes4aJmH80olcJaip9V7gnyQOxWIgQuL7Iy8
vjZqQtnZFUk5kZhqc669pX/Ir10IaL6EQjBkuxeBzWnqZXYYYuZHSmNn/bCdMA7m
Us4cPhsH2rGoy2eICeQn2W1jqqGEOh6fr0CNuKj9eDAExbGvbE/RPJ0EM7sEFsEb
o/Pxm2rGWE37wu89r2v7Tjq3SORE+QteUkYiLNMPZNL4kR9G+2kiskeaM8p47LzS
YAdd26EpOZxbj1GLou+FUOIwIsECrXbqN53Tnbs1Oy9whLibBykIXMafEGhP5pKB
yS/jgteumDxSgGV7dVmgqoxt7qAHMbs2Y1AD74dstYfD+paSkOTd4dXXCFiwF4Ko
EJEsk87ksR8pfLSLl+dW8VFkhL/r4ZFZD0A4Tdchs2m5MVPCtiehmeEqKnE1jRdS
8JxF+EUEA+AmRATwY97fxdEmIFIAgB882RqXotZKWRi98JyiTmetawv3KOzTxXu6
6PfWqAnPvuFkkc7Y+DXcTlHGoeJJLsM+h2sPmckET7SwS1s/M3+H+u6BvUSRbBGL
AxlHPrsDMmcgXRlHDvu1fbMdGU+3eUj4
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIG1TCCBL2gAwIBAgIQbFWr29AHksedBwzYEZ7WvzANBgkqhkiG9w0BAQwFADCB
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjAw
MTMwMDAwMDAwWhcNMzAwMTI5MjM1OTU5WjBLMQswCQYDVQQGEwJBVDEQMA4GA1UE
ChMHWmVyb1NTTDEqMCgGA1UEAxMhWmVyb1NTTCBSU0EgRG9tYWluIFNlY3VyZSBT
aXRlIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAhmlzfqO1Mdgj
4W3dpBPTVBX1AuvcAyG1fl0dUnw/MeueCWzRWTheZ35LVo91kLI3DDVaZKW+TBAs
JBjEbYmMwcWSTWYCg5334SF0+ctDAsFxsX+rTDh9kSrG/4mp6OShubLaEIUJiZo4
t873TuSd0Wj5DWt3DtpAG8T35l/v+xrN8ub8PSSoX5Vkgw+jWf4KQtNvUFLDq8mF
WhUnPL6jHAADXpvs4lTNYwOtx9yQtbpxwSt7QJY1+ICrmRJB6BuKRt/jfDJF9Jsc
RQVlHIxQdKAJl7oaVnXgDkqtk2qddd3kCDXd74gv813G91z7CjsGyJ93oJIlNS3U
gFbD6V54JMgZ3rSmotYbz98oZxX7MKbtCm1aJ/q+hTv2YK1yMxrnfcieKmOYBbFD
hnW5O6RMA703dBK92j6XRN2EttLkQuujZgy+jXRKtaWMIlkNkWJmOiHmErQngHvt
iNkIcjJumq1ddFX4iaTI40a6zgvIBtxFeDs2RfcaH73er7ctNUUqgQT5rFgJhMmF
x76rQgB5OZUkodb5k2ex7P+Gu4J86bS15094UuYcV09hVeknmTh5Ex9CBKipLS2W
2wKBakf+aVYnNCU6S0nASqt2xrZpGC1v7v6DhuepyyJtn3qSV2PoBiU5Sql+aARp
wUibQMGm44gjyNDqDlVp+ShLQlUH9x8CAwEAAaOCAXUwggFxMB8GA1UdIwQYMBaA
FFN5v1qqK0rPVIDh2JvAnfKyA2bLMB0GA1UdDgQWBBTI2XhootkZaNU9ct5fCj7c
tYaGpjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUE
FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwIgYDVR0gBBswGTANBgsrBgEEAbIxAQIC
TjAIBgZngQwBAgEwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2VydHJ1
c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYG
CCsGAQUFBwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3Qu
Y29tL1VTRVJUcnVzdFJTQUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRw
Oi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3DQEBDAUAA4ICAQAVDwoIzQDV
ercT0eYqZjBNJ8VNWwVFlQOtZERqn5iWnEVaLZZdzxlbvz2Fx0ExUNuUEgYkIVM4
YocKkCQ7hO5noicoq/DrEYH5IuNcuW1I8JJZ9DLuB1fYvIHlZ2JG46iNbVKA3ygA
Ez86RvDQlt2C494qqPVItRjrz9YlJEGT0DrttyApq0YLFDzf+Z1pkMhh7c+7fXeJ
qmIhfJpduKc8HEQkYQQShen426S3H0JrIAbKcBCiyYFuOhfyvuwVCFDfFvrjADjd
4jX1uQXd161IyFRbm89s2Oj5oU1wDYz5sx+hoCuh6lSs+/uPuWomIq3y1GDFNafW
+LsHBU16lQo5Q2yh25laQsKRgyPmMpHJ98edm6y2sHUabASmRHxvGiuwwE25aDU0
2SAeepyImJ2CzB80YG7WxlynHqNhpE7xfC7PzQlLgmfEHdU+tHFeQazRQnrFkW2W
kqRGIq7cKRnyypvjPMkjeiV9lRdAM9fSJvsB3svUuu1coIG1xxI1yegoGM4r5QP4
RGIVvYaiI76C0djoSbQ/dkIUUXQuB8AL5jyH34g3BZaaXyvpmnV4ilppMXVAnAYG
ON51WhJ6W0xNdNJwzYASZYH+tmCWI+N60Gv2NNMGHwMZ7e9bXgzUCZH5FaBFDGR5
S9VWqHB73Q+OyIVvIbKYcSc2w/aSuFKGSA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7
MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
VQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UE
AwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTE5MDMxMjAwMDAwMFoXDTI4
MTIzMTIzNTk1OVowgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5
MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBO
ZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0
aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sI
s9CsVw127c0n00ytUINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnG
vDoZtF+mvX2do2NCtnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQ
Ijy8/hPwhxR79uQfjtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfb
IWax1Jt4A8BQOujM8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0
tyA9yn8iNK5+O2hmAUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97E
xwzf4TKuzJM7UXiVZ4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNV
icQNwZNUMBkTrNN9N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5
D9kCnusSTJV882sFqV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJ
WBp/kjbmUZIO8yZ9HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ
5lhCLkMaTLTwJUdZ+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzG
KAgEJTm4Diup8kyXHAc/DVL17e8vgg8CAwEAAaOB8jCB7zAfBgNVHSMEGDAWgBSg
EQojPpbxB+zirynvgqV/0DCktDAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rID
ZsswDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAG
BgRVHSAAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29t
L0FBQUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDQGCCsGAQUFBwEBBCgwJjAkBggr
BgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBDAUA
A4IBAQAYh1HcdCE9nIrgJ7cz0C7M7PDmy14R3iJvm3WOnnL+5Nb+qh+cli3vA0p+
rvSNb3I8QzvAP+u431yqqcau8vzY7qN7Q/aGNnwU4M309z/+3ri0ivCRlv79Q2R+
/czSAaF9ffgZGclCKxO/WIu6pKJmBHaIkU4MiRTOok3JMrO66BQavHHxW/BBC5gA
CiIDEOUMsfnNkjcZ7Tvx5Dq2+UUTJnWvu6rvP3t3O9LEApE9GQDTF1w52z97GA1F
zZOFli9d31kWTz9RvdVFGD/tSo7oBmF0Ixa1DVBzJ0RHfxBdiSprhTEUxOipakyA
vGp4z7h/jnZymQyd/teRCBaho1+V
-----END CERTIFICATE-----

View File

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA59Js1o6csQdt1s4jeoXX9m3OywiqbWujzLvn1ZxFzzi/rZhJ
uJ98OjsrHhPvT8BC37VOgGDI2Ap46LYnivwUcGNMgVF3sNM0fIIhHlVex/HfdapD
KJrTd5GAZYIVqDedR8130ozmU/qWV7ROSrte6qs7jlnUGj9aKVp93AfQlYXmoMf7
h5kUbnU+ZuwLspx8z6uvA9ci0RlPKHS2QkfFtMPa6qrbYG/8vx4Sf8x3TJM3HBB1
0dS8OK75crzV9DDVHAfpcLJkoDlvU7CZbcjOt03Ei6UFi5G5Ap2paXJm4nQBMZCI
JMrB0GtDeH4qk2UW+o4t+wEJfVWDiiPxvjDwyQIDAQABAoIBADL7jx4cnQ890AU2
rozKlLVIbvst+7U2v/5NsO3EgYHSPC1kWYo14O85hgEGZ1IFuW9Tg2EuZ91DaFXd
gZLKX4BcBj5GeWk0+c0MHVZ7de3JHtjUyhJLAojAQhmQ40xsdrWM1XZDsH/1k0zU
hYdf777yS5XB4aioGB8SHK3gNho7vlIAJVqJGrfX6iVUvpWvQb+Y17P6i9JLAS0v
5JtgPRtw7OwdcAPWNS2vjFo/xobZQtyAbf6dPrJC6V+xsya1mpZFP14gizAAwlyb
OA3mINDWBdvr0QVRq0EDykuufF94B3o+5mSqR4IRJUddGg0gQXH/qK0nhTnweINH
wQu5hYUCgYEA+DUYtLpSGqNWo0mkicNXGFQW6eFeTqH9WLmKljbIJlVFDC7+nNPl
B49vcwkaFBLlgbtKniIwoIrkVVY9S9DMxrWLuvhU3sgb1oi/I5sv0FerH71nOhIe
JMmmmKr2vbgmp4XfiswTBfIEHj3L+iQUdrDRWmFl+F5RxudjbBUoc38CgYEA7xmi
iPze3qL8CrB0f+JqFKDn48JSwE+9mpoFZKLQRSGc47WAy/sbDvprZN8Ld3r5d62N
Oh7zG1mktV1vDzg/WvAbI0YMQdw8vpVPaHtCiNhCGKqd+cbhY8Gfh6+jW3nnNBT5
7P7nAzYm7jrZYcpo00J9LJuAs6IH1PAwQWS2H7cCgYAGW93hK3DVC+A5WLalbOK7
VdQsc8ClxRKnhkFdrdOc38xgDogpXmhctDkHunD3mLBWjYTQ3lFem5BT+1ygp53H
bXlB9gC+oGPOMDytXdlwvf49Vu3hF/u7t4rUGHUv0Rr0acKbXLUUDuo6GB00sF3x
2H/Uj/A717bCoMT0TOp3YwKBgH5IddYQaM4CG0iyBfX9abXXfmKHIhm8hBIBw1Nx
wrqglDKYjJwv1gzFKq+uNmo2o0gYe/z0l8YcRKgd3yiUtrGbG1o4BwVKAzNNvREb
+Po57j8E7kccSbLccxvBInCQJBMX+SC5SN4jXdB5eJLzywW5mk9TGljF/Yj0Cyie
vqplAoGBALA336UpR/wfLZWE1TPNF+l2QFh9j0A9Ubm2yabupZLqne8qFh6CvJZp
bxUgUQSswodCJRYTaJ8WMOrIuSijL9YPhN2xHDL29WZ2mcs7cDsmQ5iu87zAfO1e
aJGX4GhCWj1MiPfsVTiwYCOYlfUXfqbLF2KAHGVYocYsqv5ntuCl
-----END RSA PRIVATE KEY-----

View File

@@ -0,0 +1,108 @@
-----BEGIN CERTIFICATE-----
MIIGazCCBFOgAwIBAgIQFmSlOlWf3fG9FghtSJSnJjANBgkqhkiG9w0BAQwFADBL
MQswCQYDVQQGEwJBVDEQMA4GA1UEChMHWmVyb1NTTDEqMCgGA1UEAxMhWmVyb1NT
TCBSU0EgRG9tYWluIFNlY3VyZSBTaXRlIENBMB4XDTI0MTAyNjAwMDAwMFoXDTI1
MDEyNDIzNTk1OVowGjEYMBYGA1UEAxMPd3d3LmJsYXpvci56b25lMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtyQdfUAnUiYFo9wTjsoMNmSoEwNZP5md
VLRkhDXHYeFjilKR9WcmEHlDXEgqiEP67PZ2Ms9kz/LL263SMP9DsTWQBYF236OH
V4nlwLtRjaFSGNacGyJMLyBYvpOL7ttqc2UQ/5+No+dGvR58QXCsyJSMr6O0jfNa
SHmcXA0k7f9fOVs+Ddcq682wZTPzXUkShncl+MGftLZgDK33qZ0vVHWMGvwNQhbp
Nlb7l/B8mnijqjKuLxLhkJ4lx40WBRgBBt1Fw2AitIO7rCLcGVVRs+/W5yHG5X6F
hVcicg5cLJLPZcPupLO+1ZEW864PtqtJgpZ2JWi5muzaSTrXz+nkEwIDAQABo4IC
ejCCAnYwHwYDVR0jBBgwFoAUyNl4aKLZGWjVPXLeXwo+3LWGhqYwHQYDVR0OBBYE
FPu+f+4/Wjv7w11Y6hVyjjTPeTXkMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8E
AjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBJBgNVHSAEQjBAMDQG
CysGAQQBsjEBAgJOMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8vc2VjdGlnby5jb20v
Q1BTMAgGBmeBDAECATCBiAYIKwYBBQUHAQEEfDB6MEsGCCsGAQUFBzAChj9odHRw
Oi8vemVyb3NzbC5jcnQuc2VjdGlnby5jb20vWmVyb1NTTFJTQURvbWFpblNlY3Vy
ZVNpdGVDQS5jcnQwKwYIKwYBBQUHMAGGH2h0dHA6Ly96ZXJvc3NsLm9jc3Auc2Vj
dGlnby5jb20wggEDBgorBgEEAdZ5AgQCBIH0BIHxAO8AdgDPEVbu1S58r/OHW9lp
LpvpGnFnSrAX7KwB0lt3zsw7CAAAAZLJnagqAAAEAwBHMEUCIQCweWTrOJY8TvxK
wFCTBa4eygC2grsh7I2gE/lF2tLJPgIgXz7dLukJvu4YwC/zIceVLLnhMdK+5FTW
eviLet7v0HgAdQDM+w9qhXEJZf6Vm1PO6bJ8IumFXA2XjbapflTA/kwNsAAAAZLJ
nag3AAAEAwBGMEQCIHqqDv83MkvekKvB0sMOBSyiuekrpHexhNsWZVKPEUDAAiAS
925fqYsKwW7pYdztsOH160+xHUTTFqEG4IQJEognEzAaBgNVHREEEzARgg93d3cu
Ymxhem9yLnpvbmUwDQYJKoZIhvcNAQEMBQADggIBAATLXugGkQK3ir1UBRxk78vn
+EQt1VsNhYpzAALTz5Q5A54HbC5ifQTc3F6gaPcRMh5cAPTyc7YdMg6jPD9fereo
5zpqwmcBx28c6o8fwk9/pY8d2MJgFDW0xwPdF8dKUdUq+vZejPPXOQ6MfKZJzbW8
qXZe5dQ2I1eekqdjqAcoXU2MSEd7EWPTHV6Rkaf9MKgvxr5TMtaBZzIebHQt3u52
gGeUeKxrxMPRTzzPg+oQVvh9yEOmwvSnCsKvDUkRvwq+Y/shqaNMs7n3ZheNyeIx
IG2UPuDUKC1GwvNtplGT6fZZw/OvY8zNaVRZvZpzvjTgN9ik3tAGZqKNT4wjPls4
xRbESBJ9hyu+9hgzObQPAYWmp0X29Jb7fPrP8jjMupHho2G1d/2uvXSAhRsCPKtf
EoJY8eprQo8vElmDmvtlCMS4H/GXqP94WzVCr4gk5hLqe/K+Q41vZ2/N28eSA7FA
f71+sMJ0Ud/s7YbzrMFr+Wdt8IDMXhRBn0unYeUH9QZR3Y3Ki2rGQAmc0yz1bQ+m
bLgNa+0EyKQCMPiOE+JRK2Xd6cNwbc+UzPtZHPwS3KydbM5djP6gSche2oVLL9sO
xe+AccCqQ9OqfrNPOTFvnKczvrQS7GdT171I97WPgBeDlaqqTg4dXbGyYEn3GzKB
FQ6RugzngRfjcV1Kjwtp
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIG1TCCBL2gAwIBAgIQbFWr29AHksedBwzYEZ7WvzANBgkqhkiG9w0BAQwFADCB
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjAw
MTMwMDAwMDAwWhcNMzAwMTI5MjM1OTU5WjBLMQswCQYDVQQGEwJBVDEQMA4GA1UE
ChMHWmVyb1NTTDEqMCgGA1UEAxMhWmVyb1NTTCBSU0EgRG9tYWluIFNlY3VyZSBT
aXRlIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAhmlzfqO1Mdgj
4W3dpBPTVBX1AuvcAyG1fl0dUnw/MeueCWzRWTheZ35LVo91kLI3DDVaZKW+TBAs
JBjEbYmMwcWSTWYCg5334SF0+ctDAsFxsX+rTDh9kSrG/4mp6OShubLaEIUJiZo4
t873TuSd0Wj5DWt3DtpAG8T35l/v+xrN8ub8PSSoX5Vkgw+jWf4KQtNvUFLDq8mF
WhUnPL6jHAADXpvs4lTNYwOtx9yQtbpxwSt7QJY1+ICrmRJB6BuKRt/jfDJF9Jsc
RQVlHIxQdKAJl7oaVnXgDkqtk2qddd3kCDXd74gv813G91z7CjsGyJ93oJIlNS3U
gFbD6V54JMgZ3rSmotYbz98oZxX7MKbtCm1aJ/q+hTv2YK1yMxrnfcieKmOYBbFD
hnW5O6RMA703dBK92j6XRN2EttLkQuujZgy+jXRKtaWMIlkNkWJmOiHmErQngHvt
iNkIcjJumq1ddFX4iaTI40a6zgvIBtxFeDs2RfcaH73er7ctNUUqgQT5rFgJhMmF
x76rQgB5OZUkodb5k2ex7P+Gu4J86bS15094UuYcV09hVeknmTh5Ex9CBKipLS2W
2wKBakf+aVYnNCU6S0nASqt2xrZpGC1v7v6DhuepyyJtn3qSV2PoBiU5Sql+aARp
wUibQMGm44gjyNDqDlVp+ShLQlUH9x8CAwEAAaOCAXUwggFxMB8GA1UdIwQYMBaA
FFN5v1qqK0rPVIDh2JvAnfKyA2bLMB0GA1UdDgQWBBTI2XhootkZaNU9ct5fCj7c
tYaGpjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUE
FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwIgYDVR0gBBswGTANBgsrBgEEAbIxAQIC
TjAIBgZngQwBAgEwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2VydHJ1
c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYG
CCsGAQUFBwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3Qu
Y29tL1VTRVJUcnVzdFJTQUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRw
Oi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3DQEBDAUAA4ICAQAVDwoIzQDV
ercT0eYqZjBNJ8VNWwVFlQOtZERqn5iWnEVaLZZdzxlbvz2Fx0ExUNuUEgYkIVM4
YocKkCQ7hO5noicoq/DrEYH5IuNcuW1I8JJZ9DLuB1fYvIHlZ2JG46iNbVKA3ygA
Ez86RvDQlt2C494qqPVItRjrz9YlJEGT0DrttyApq0YLFDzf+Z1pkMhh7c+7fXeJ
qmIhfJpduKc8HEQkYQQShen426S3H0JrIAbKcBCiyYFuOhfyvuwVCFDfFvrjADjd
4jX1uQXd161IyFRbm89s2Oj5oU1wDYz5sx+hoCuh6lSs+/uPuWomIq3y1GDFNafW
+LsHBU16lQo5Q2yh25laQsKRgyPmMpHJ98edm6y2sHUabASmRHxvGiuwwE25aDU0
2SAeepyImJ2CzB80YG7WxlynHqNhpE7xfC7PzQlLgmfEHdU+tHFeQazRQnrFkW2W
kqRGIq7cKRnyypvjPMkjeiV9lRdAM9fSJvsB3svUuu1coIG1xxI1yegoGM4r5QP4
RGIVvYaiI76C0djoSbQ/dkIUUXQuB8AL5jyH34g3BZaaXyvpmnV4ilppMXVAnAYG
ON51WhJ6W0xNdNJwzYASZYH+tmCWI+N60Gv2NNMGHwMZ7e9bXgzUCZH5FaBFDGR5
S9VWqHB73Q+OyIVvIbKYcSc2w/aSuFKGSA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7
MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
VQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UE
AwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTE5MDMxMjAwMDAwMFoXDTI4
MTIzMTIzNTk1OVowgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5
MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBO
ZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0
aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sI
s9CsVw127c0n00ytUINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnG
vDoZtF+mvX2do2NCtnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQ
Ijy8/hPwhxR79uQfjtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfb
IWax1Jt4A8BQOujM8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0
tyA9yn8iNK5+O2hmAUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97E
xwzf4TKuzJM7UXiVZ4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNV
icQNwZNUMBkTrNN9N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5
D9kCnusSTJV882sFqV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJ
WBp/kjbmUZIO8yZ9HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ
5lhCLkMaTLTwJUdZ+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzG
KAgEJTm4Diup8kyXHAc/DVL17e8vgg8CAwEAAaOB8jCB7zAfBgNVHSMEGDAWgBSg
EQojPpbxB+zirynvgqV/0DCktDAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rID
ZsswDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAG
BgRVHSAAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29t
L0FBQUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDQGCCsGAQUFBwEBBCgwJjAkBggr
BgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBDAUA
A4IBAQAYh1HcdCE9nIrgJ7cz0C7M7PDmy14R3iJvm3WOnnL+5Nb+qh+cli3vA0p+
rvSNb3I8QzvAP+u431yqqcau8vzY7qN7Q/aGNnwU4M309z/+3ri0ivCRlv79Q2R+
/czSAaF9ffgZGclCKxO/WIu6pKJmBHaIkU4MiRTOok3JMrO66BQavHHxW/BBC5gA
CiIDEOUMsfnNkjcZ7Tvx5Dq2+UUTJnWvu6rvP3t3O9LEApE9GQDTF1w52z97GA1F
zZOFli9d31kWTz9RvdVFGD/tSo7oBmF0Ixa1DVBzJ0RHfxBdiSprhTEUxOipakyA
vGp4z7h/jnZymQyd/teRCBaho1+V
-----END CERTIFICATE-----

View File

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAtyQdfUAnUiYFo9wTjsoMNmSoEwNZP5mdVLRkhDXHYeFjilKR
9WcmEHlDXEgqiEP67PZ2Ms9kz/LL263SMP9DsTWQBYF236OHV4nlwLtRjaFSGNac
GyJMLyBYvpOL7ttqc2UQ/5+No+dGvR58QXCsyJSMr6O0jfNaSHmcXA0k7f9fOVs+
Ddcq682wZTPzXUkShncl+MGftLZgDK33qZ0vVHWMGvwNQhbpNlb7l/B8mnijqjKu
LxLhkJ4lx40WBRgBBt1Fw2AitIO7rCLcGVVRs+/W5yHG5X6FhVcicg5cLJLPZcPu
pLO+1ZEW864PtqtJgpZ2JWi5muzaSTrXz+nkEwIDAQABAoIBAD4e+/m+RxgwWX1p
ayDmHBpfLju0yRMvshRHVEkcTNNAtpj2xReus1SnLVgiCntKQ9UZDKLTgmie/NM5
NLD2BSoY9w9HCOF3ALOKzOoBH/qgm85dDXqOubTKjg+m0LJmrscRoyByKINOMcp4
isFPzOwEp2v0ZYw43Yjz5zu6IaqwfzyZIKX2wTDCO6XzfJMDHWgHeSiqlq4SyKsh
38YmgJTN0JWf3OoGha6qHimPgZfjIZ8fviIRRQHJwBl73mZaGNuLdBlnjmm+1tnE
0UXDN+3bl9m3KfR4H+FzZ/HMSe59ue1nirNE2lxiwnT6j0alYQC2d9riBKcMerHD
MsOJxHECgYEA7cmDhyC1uMC6fDpmkr2TCJC8wDgr4xEHWIqk7h5DoVFUKlqb+7eN
+9GUTfZGh2FiofDjBIu6ESMTZqfGu+1cYPZm7J9NA6nNF3tlb/mvituxkAVPYgXz
vcWdeGcJIlJthPcNJXnVTsLkr1lM8MdhYvoKDe5x4CzpgIH91NeKHy0CgYEAxSsc
c1aIG+tUSY/OqULH4kM+VXGuLmjX4SNArAjNNnPpyi9KvBgMskesZZdfWBsovMNo
D+EIiRX3QFeU4XLpH1fJ459A40gxvX7YVa8P0b/bomtDyLiMUcLdpacygogtzsi0
tjPs88FbmVT+1zMKhUqfJgdEPfOta+bQ/FoAGD8CgYEAzGviJAgN0Z/2chfu2JYb
UlDDw+hGanXYP9kpQwBHmeaGGcc9s9+wM12QRpnDNl2VYqzpLZ5FvrfN1QHFiwfa
1AzgnOmyVsTiaR6PLP2VWSXXd33pKdb+HRZHcxv5MUV1m8qbxa0AoS5RVSHLUG/H
nERi4mksAtH5h525LwKBXp0CgYAKmVWvMZChh5YBWlSurqNWG21HZJQLdKFePenl
FZgKfFKuBrrKv7Q3BTlUQL3kW5lmBE8cw2kVDXQ8JjkfoXC8uZhlvxLa5O+fkykH
+iAsk1a4NXHwYVNRtdr6Y7GIaM+llQ552PK868EDzhjg8qJ3JdrGTY+ykN3atg63
8hKdOwKBgQDfAl00lAt6Wltr2K5EVWkXGLWwYTKb5ZsR7wTsWwW+ExhWGWSCpbPk
rnzVPcFQ56IcAii66g7m+0Yx2Z0QZH+OGWUAZlAG4rajU7dw/S5snpuGp0r7GFK6
JNYD0H2DKjGxVl8FaoquKXvuxJlnQZ009E29MoaxitkQxrnDeQ+bZw==
-----END RSA PRIVATE KEY-----

View File

@@ -1,14 +1,15 @@
#! /bin/bash
cd ~/BootstrapBlazor
curl https://www.blazor.zone/api/dispatch?token=BootstrapBlazor-Publish
git pull
curl https://www.blazor.zone/api/dispatch?token=BootstrapBlazor-Publish
dotnet build src/BootstrapBlazor.Server
dotnet publish src/BootstrapBlazor.Server -c Release
curl https://www.blazor.zone/api/dispatch?token=BootstrapBlazor-Reboot
dotnet publish src/BootstrapBlazor.Server -c Release
systemctl stop ba.blazor
\cp -fr ~/BootstrapBlazor/src/BootstrapBlazor.Server/bin/Release/net8.0/publish/* /usr/local/ba/blazor
\cp -fr ~/BootstrapBlazor/src/BootstrapBlazor.Server/bin/Release/net9.0/publish/* /usr/local/ba/blazor
systemctl start ba.blazor
systemctl status ba.blazor -l --no-pager

View File

@@ -1,6 +0,0 @@
#! /bin/bash
cd ~/BootstrapBlazor
git pull
dotnet publish ~/BootstrapBlazor/src/Wasm/BootstrapBlazor.WebAssembly.ClientHost -c Release -o /usr/local/ba/wasm/

51
scripts/linux/deploy.sh Normal file
View File

@@ -0,0 +1,51 @@
#! /bin/bash
# wget https://raw.githubusercontent.com/dotnetcore/BootstrapBlazor/refs/heads/main/scripts/linux/deploy.sh
echo "*********************** clean env ***********************"
sudo rm -fr BootstrapBlazor
sudo rm -fr /usr/local/ba/blazor
echo "*********************** apt update ***********************"
sudo apt update
echo "*********************** install git ***********************"
yes|sudo apt install git
echo "*********************** install BootstrapBlazor ***********************"
sudo git clone https://gitee.com/LongbowEnterprise/BootstrapBlazor.git
echo "*********************** make directory BA/Blazor ***********************"
sudo mkdir /usr/local/ba
sudo mkdir /usr/local/ba/blazor
echo "*********************** copy scripts ***********************"
sudo cp BootstrapBlazor/scripts/linux/deploy-blazor.sh deploy-blazor.sh
sudo cp BootstrapBlazor/scripts/linux/ba.blazor.service /usr/lib/systemd/system/ba.blazor.service
echo "*********************** install ba.blazor.service ***********************"
sudo systemctl enable ba.blazor
echo "*********************** install nginx ***********************"
yes|sudo apt install nginx
echo "*********************** copy nginx config ***********************"
sudo cp BootstrapBlazor/scripts/linux/nginx.conf /etc/nginx/
echo "*********************** copy cert ***********************"
sudo mkdir /etc/nginx/cert
sudo cp BootstrapBlazor/scripts/linux/cert/* /etc/nginx/cert/
echo "*********************** install chrome ***********************"
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
yes|sudo apt install ./google-chrome-stable_current_amd64.deb
echo "*********************** install support font ***********************"
sudo apt install fonts-wqy-microhei
echo "*********************** install DOTNET ***********************"
wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-9.0

View File

@@ -1,11 +1,7 @@
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
error_log logs/error.log;
events {
worker_connections 1024;
@@ -19,38 +15,21 @@ http {
server {
listen 80;
server_name www.blazor.zone;
client_max_body_size 20m;
rewrite ^(.*)$ https://$host$1 redirect;
error_page 404 500 /50x.html;
server_name blazor.zone;
client_max_body_size 20m;
rewrite ^(.*)$ https://www.blazor.zone$1 redirect;
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;
server_name blazor.zone;
rewrite ^(.*)$ https://www.blazor.zone$1 redirect;
ssl_certificate cert/blazor.zone.cer;
ssl_certificate_key cert/blazor.zone.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
@@ -60,6 +39,35 @@ http {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header X-Frame-Options SAMEORIGIN;
}
server {
listen 80;
server_name www.blazor.zone;
client_max_body_size 20m;
rewrite ^(.*)$ https://$host$1 redirect;
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;
}
server {
listen 443 ssl;
server_name www.blazor.zone;
ssl_certificate cert/www.blazor.zone.cer;
ssl_certificate_key cert/www.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;
proxy_intercept_errors on;
error_page 404 500 502 /502.html;
location / {
proxy_connect_timeout 1;
@@ -72,5 +80,10 @@ http {
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:50853/_blazor;
}
location = /502.html {
root html;
internal;
}
}
}

5
scripts/linux/remove.sh Normal file
View File

@@ -0,0 +1,5 @@
#! /bin/bash
sudo rm -fr BootstrapBlazor
sudo rm -fr /usr/local/ba

View File

@@ -1,5 +1,5 @@
[Unit]
Description=Bootstrap Admin Blazor Application
Description=BootstrapBlazor Offical Web Application
[Service]
Type=simple

View File

@@ -1,22 +0,0 @@
@echo off
if "%1" == "" (
echo Please provider SolutionDir like: "$(MSBuildThisFileDirectory)"
exit /B
)
if "%2" == "" (
echo Please provider TargetDir like: "$(TargetDir)publish"
exit /B
)
set sourceDir=%2\wwwroot
set targetDir=%1..\..\dist
echo "Ready to copy files to dist
echo xcopy %sourceDir%\*.* %targetDir% /y
xcopy %sourceDir%\*.* %targetDir% /E /R /Y
xcopy %targetDir%\404.html %targetDir%\index.html /R /Y
echo Sync success!

View File

@@ -1,24 +0,0 @@
#!/bin/sh
if [ $1 = "" ]; then
echo Please provider SolutionDir like: "$(MSBuildThisFileDirectory)"
exit 1
fi
if [ $2 = "" ]; then
echo Please provider TargetDir like: "$(TargetDir)publish"
exit 1
fi
sourceDir=$2/wwwroot/
targetDir=$1../../dist/
echo "Ready to copy files to dist"
echo copy $sourceDir $targetDir
\cp -rf $sourceDir $targetDir
\cp -f $targetDir/404.html $targetDir/index.html
echo Sync success!

View File

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

View File

@@ -1,27 +0,0 @@
@echo off
if "%1" == "" (
echo Please provider ProjectName like: "BootstrapBlazor Debug|Release"
exit /B
)
set config=%2
if "%ProjectFolder%" == "" (
set "ProjectFolder=%BB%"
)
if "%ProjectFolder%" == "" (
echo Please set ProjectFolder evniroment Variables
exit /B
)
if "%config%" == "" (
set "config=Debug"
)
cd %ProjectFolder%\%1
dotnet pack -c %config% %ProjectFolder%\%1\
copy %ProjectFolder%\%1\bin\%config%\%1*.nupkg %NugetLib% /y
del %ProjectFolder%\%1\bin\%config%\%1*.nupkg
cd %NugetLib%
set config=
echo Ready to DELETE %USERPROFILE%\.nuget\packages\%1 /S /F /Q
pause
del %USERPROFILE%\.nuget\packages\%1 /S /F /Q
dir %NugetLib%\%1*.nupkg

View File

@@ -1,4 +0,0 @@
@echo off
call pack %1 Release
dotnet nuget push -k %NugetKey% -s https://api.nuget.org/v3/index.json %NugetLib%\%1.*.nupkg --skip-duplicate --no-symbols %NugetLib%\%1.*.snupkg
del %NugetLib%\%1*.nupkg /F /Q

View File

@@ -1,49 +0,0 @@
# 判断是否设置 NugetKey
if ($env:NugetKey -eq $null)
{
echo "请设置环境变量 NugetKey 上传秘钥"
exit
}
# 判断是否设置 NugetSource
if ($env:NugetSource -eq $null)
{
echo "请设置环境变量 NugetSource 上传 Nuget 地址"
exit
}
# 获取当前 PM 中选中的项目
$currentProj = Get-Project
# 获取当前项目所在文件夹
$projectFolder = Split-Path -parent $currentProj.FullName
# 获取当前项目打包文件输出目录
$outFolder = -Join($projectFolder, "\bin\Release\")
# 删除 nupkg 文件防止有老文件干扰
Remove-Item $outFolder*.nupkg -recurse
# 获取打包文件不包含版本号的文件名
$pkgName = -Join($outFolder, $currentProj.Name)
# 带版本号的文件名
$pkgFileName = -Join($pkgName, "*.nupkg")
$spkgFileName = -Join($pkgName, "*.snupkg")
# 开始打包
dotnet pack -c Release $currentProj.FullName
# 判断是否打包成功
$done = Test-Path $pkgFileName
if ($done)
{
# 开始上传
dotnet nuget push -k $env:NugetKey -s $env:NugetSource $pkgFileName --skip-duplicate --no-symbols $spkgFileName
}
else
{
Write-Host "打包失败"
}

View File

@@ -1,18 +0,0 @@
{
"version": 1,
"isRoot": true,
"tools": {
"bundlerminifier.core.tool": {
"version": "6.1.0",
"commands": [
"bundle"
]
},
"jsversionmaker": {
"version": "1.1.3",
"commands": [
"jsver"
]
}
}
}

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<IsWebProject>true</IsWebProject>
@@ -10,7 +10,6 @@
<Content Remove="Locales\en-US.json" />
<Content Remove="Locales\zh-CN.json" />
<Content Remove="topology.json" />
<Content Remove="versionconfig.json" />
</ItemGroup>
<ItemGroup>
@@ -21,53 +20,66 @@
</ItemGroup>
<ItemGroup>
<None Include="versionconfig.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="BootstrapBlazor.AzureOpenAI" Version="8.0.1" />
<PackageReference Include="BootstrapBlazor.AzureTranslator" Version="8.0.0" />
<PackageReference Include="BootstrapBlazor.BaiduSpeech" Version="8.0.0" />
<PackageReference Include="BootstrapBlazor.BaiduOcr" Version="8.0.0" />
<PackageReference Include="BootstrapBlazor.BarCode" Version="8.0.1" />
<PackageReference Include="BootstrapBlazor.BarcodeGenerator" Version="0.1.1" />
<PackageReference Include="BootstrapBlazor.Bluetooth" Version="8.0.2" />
<PackageReference Include="BootstrapBlazor.BootstrapIcon" Version="8.0.2" />
<PackageReference Include="BootstrapBlazor.BootstrapIcon.Extensions" Version="8.0.6" />
<PackageReference Include="BootstrapBlazor.Chart" Version="8.1.6" />
<PackageReference Include="BootstrapBlazor.CherryMarkdown" Version="8.0.0" />
<PackageReference Include="BootstrapBlazor.CodeEditor" Version="8.0.2" />
<PackageReference Include="BootstrapBlazor.Dock" Version="8.1.7" />
<PackageReference Include="BootstrapBlazor.DockView" Version="8.0.9" />
<PackageReference Include="BootstrapBlazor.DriverJs" Version="8.0.0-beta01" />
<PackageReference Include="BootstrapBlazor.FileViewer" Version="8.0.3" />
<PackageReference Include="BootstrapBlazor.FontAwesome" Version="8.0.5" />
<PackageReference Include="BootstrapBlazor.Gantt" Version="8.0.1" />
<PackageReference Include="BootstrapBlazor.Holiday" Version="8.0.1" />
<PackageReference Include="BootstrapBlazor.Html2Pdf" Version="8.1.1" />
<PackageReference Include="BootstrapBlazor.IconPark" Version="8.0.1" />
<PackageReference Include="BootstrapBlazor.ImageCropper" Version="0.0.4" />
<PackageReference Include="BootstrapBlazor.Live2DDisplay" Version="8.0.0" />
<PackageReference Include="BootstrapBlazor.Markdown" Version="8.0.0" />
<PackageReference Include="BootstrapBlazor.MaterialDesign" Version="8.0.3" />
<PackageReference Include="BootstrapBlazor.MaterialDesign.Extensions" Version="8.0.9" />
<PackageReference Include="BootstrapBlazor.MeiliSearch" Version="8.0.0" />
<PackageReference Include="BootstrapBlazor.Middleware" Version="8.0.0" />
<PackageReference Include="BootstrapBlazor.MindMap" Version="8.0.7" />
<PackageReference Include="BootstrapBlazor.MouseFollower" Version="8.0.0" />
<PackageReference Include="BootstrapBlazor.OnScreenKeyboard" Version="8.0.3" />
<PackageReference Include="BootstrapBlazor.PdfReader" Version="8.0.4" />
<PackageReference Include="BootstrapBlazor.SignaturePad" Version="8.0.2" />
<PackageReference Include="BootstrapBlazor.Splitting" Version="8.0.0" />
<PackageReference Include="BootstrapBlazor.SvgEditor" Version="8.1.0" />
<PackageReference Include="BootstrapBlazor.SummerNote" Version="8.0.3" />
<PackageReference Include="BootstrapBlazor.TableExport" Version="8.1.0" />
<PackageReference Include="BootstrapBlazor.TagHelper" Version="8.0.1" />
<PackageReference Include="BootstrapBlazor.Topology" Version="8.0.9" />
<PackageReference Include="BootstrapBlazor.VideoPlayer" Version="8.0.7-beta1" />
<PackageReference Include="BootstrapBlazor.WebAPI" Version="8.0.5" />
<PackageReference Include="Longbow.Logging" Version="8.0.0" />
<PackageReference Include="Longbow.Tasks" Version="8.0.3" />
<PackageReference Include="BootstrapBlazor.AntDesignIcon" Version="9.0.3" />
<PackageReference Include="BootstrapBlazor.Authenticator" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.AzureOpenAI" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.AzureTranslator" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.BaiduSpeech" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.BaiduOcr" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.BarCode" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.BarcodeGenerator" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.BootstrapIcon" Version="9.0.2" />
<PackageReference Include="BootstrapBlazor.Chart" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.ChatBot" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.CherryMarkdown" Version="9.0.3" />
<PackageReference Include="BootstrapBlazor.CodeEditor" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.Dock" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.DockView" Version="9.1.18" />
<PackageReference Include="BootstrapBlazor.DriverJs" Version="9.0.3" />
<PackageReference Include="BootstrapBlazor.ElementIcon" Version="9.0.3" />
<PackageReference Include="BootstrapBlazor.FileViewer" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.FluentSystemIcon" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.FontAwesome" Version="9.1.0" />
<PackageReference Include="BootstrapBlazor.Gantt" Version="9.0.2" />
<PackageReference Include="BootstrapBlazor.Holiday" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.Html2Image" Version="9.0.2" />
<PackageReference Include="BootstrapBlazor.Html2Pdf" Version="9.0.3" />
<PackageReference Include="BootstrapBlazor.IconPark" Version="9.0.3" />
<PackageReference Include="BootstrapBlazor.ImageCropper" Version="9.0.3" />
<PackageReference Include="BootstrapBlazor.IP2Region" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.JitsiMeet" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.JuHeIpLocatorProvider" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.Live2DDisplay" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.Markdown" Version="9.0.2" />
<PackageReference Include="BootstrapBlazor.MaterialDesign" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.MeiliSearch" Version="9.1.9" />
<PackageReference Include="BootstrapBlazor.Mermaid" Version="9.0.4" />
<PackageReference Include="BootstrapBlazor.Middleware" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.MindMap" Version="9.1.6" />
<PackageReference Include="BootstrapBlazor.MouseFollower" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.OctIcon" Version="9.0.4" />
<PackageReference Include="BootstrapBlazor.OfficeViewer" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.OnScreenKeyboard" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.PdfReader" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.PdfViewer" Version="9.0.6" />
<PackageReference Include="BootstrapBlazor.Player" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.RDKit" Version="9.0.2" />
<PackageReference Include="BootstrapBlazor.SignaturePad" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.SmilesDrawer" Version="9.0.2" />
<PackageReference Include="BootstrapBlazor.Sortable" Version="9.0.2" />
<PackageReference Include="BootstrapBlazor.Splitting" Version="9.0.3" />
<PackageReference Include="BootstrapBlazor.SvgEditor" Version="9.0.3" />
<PackageReference Include="BootstrapBlazor.SummerNote" Version="9.0.4" />
<PackageReference Include="BootstrapBlazor.TableExport" Version="9.2.6" />
<PackageReference Include="BootstrapBlazor.TcpSocket" Version="9.0.0-beta01" />
<PackageReference Include="BootstrapBlazor.Topology" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.UniverIcon" Version="9.0.1" />
<PackageReference Include="BootstrapBlazor.UniverSheet" Version="9.0.5" />
<PackageReference Include="BootstrapBlazor.Vditor" Version="9.0.0" />
<PackageReference Include="BootstrapBlazor.VideoPlayer" Version="9.0.3" />
<PackageReference Include="BootstrapBlazor.WinBox" Version="9.0.7" />
<PackageReference Include="Longbow.Logging" Version="9.0.1" />
<PackageReference Include="Longbow.Tasks" Version="9.0.0" />
</ItemGroup>
<ItemGroup>
@@ -76,15 +88,22 @@
<ItemGroup>
<Using Include="BootstrapBlazor.Components" />
<Using Include="BootstrapBlazor.DataAdapters" />
<Using Include="BootstrapBlazor.DataHandlers" />
<Using Include="BootstrapBlazor.DataConverters" />
<Using Include="BootstrapBlazor.TcpSocket" />
<Using Include="BootstrapBlazor.Server.Components.Components" />
<Using Include="BootstrapBlazor.Server.Components.Layout" />
<Using Include="BootstrapBlazor.Server.Data" />
<Using Include="BootstrapBlazor.Server.Extensions" />
<Using Include="BootstrapBlazor.Server.Services" />
<Using Include="Microsoft.AspNetCore.Components" />
<Using Include="Microsoft.Extensions.Configuration" />
<Using Include="Microsoft.Extensions.DependencyInjection" />
<Using Include="Microsoft.Extensions.Localization" />
<Using Include="Microsoft.Extensions.Logging" />
<Using Include="System.ComponentModel.DataAnnotations" />
<Using Include="System.Net.Http.Json" />
</ItemGroup>
</Project>

View File

@@ -1,5 +1,6 @@
@inject IWebHostEnvironment Env
@inject IStringLocalizer<App> Localizer
@inject IStringLocalizer<BaseLayout> Localizer
@inject IOptions<WebsiteOptions> WebsiteOption
<!DOCTYPE html>
<html lang="en" data-bs-theme='light'>
@@ -9,23 +10,27 @@
<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="keywords" content="bootstrapblazor,blazorbootstrap,bootstrap blazor,blazor bootstrap,bootstrap,blazor,wasm,webassembly,UI,netcore,web,assembly">
<meta name="description" content="基于 Bootstrap 风格的 Blazor UI 组件库,用于研发企业级中后台产品。">
<meta name="author" content="argo (argo@live.ca)">
<meta name="theme-color" content="#712cf9">
<title>@Localizer["SiteTitle"]</title>
<base href="/" />
<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">
<Link Href="_content/BootstrapBlazor.FontAwesome/css/font-awesome.min.css" />
<Link Href="_content/BootstrapBlazor.MaterialDesign/css/md.min.css" />
<Link Href="_content/BootstrapBlazor.BootstrapIcon/css/bootstrap.min.css" />
<Link Href="_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css" />
<Link Href="_content/BootstrapBlazor/css/motronic.min.css" />
<Link Href="BootstrapBlazor.Server.styles.css" />
<Link Href="css/site.css" />
<ThemeLoader></ThemeLoader>
<link rel="stylesheet" href="@Assets["_content/BootstrapBlazor.FontAwesome/css/font-awesome.min.css"]" />
<link rel="stylesheet" href="@Assets["_content/BootstrapBlazor.MaterialDesign/css/md.min.css"]" />
<link rel="stylesheet" href="@Assets["_content/BootstrapBlazor.BootstrapIcon/css/bootstrap.min.css"]" />
<link rel="stylesheet" href="@Assets["_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css"]" />
<link rel="stylesheet" href="@Assets["_content/BootstrapBlazor/css/motronic.min.css"]" />
<link rel="stylesheet" href="@Assets["BootstrapBlazor.Server.styles.css"]" />
<link rel="stylesheet" href="@Assets["css/site.css"]" />
<ImportMap></ImportMap>
<HeadOutlet @rendermode="new InteractiveServerRenderMode(false)" />
<title>@Localizer["Title"]</title>
</head>
<body>
@@ -37,13 +42,13 @@
<BlazorReconnector @rendermode="new InteractiveServerRenderMode(false)" />
<script src="_content/BootstrapBlazor.SummerNote/js/jquery-3.5.1.min.js"></script>
<Script Src="_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js"></Script>
<script src="_content/BootstrapBlazor.SummerNote/js/jquery-3.6.0.min.js"></script>
<script src="_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js"></script>
<script src="_framework/blazor.web.js"></script>
@if (Env.IsProduction())
{
<script type="text/javascript" src="https://cdn.wwads.cn/js/makemoney.js"></script>
<script type="text/javascript" src="lib/wwads/wwads.js"></script>
<script type="text/javascript" src="@WebsiteOption.Value.GetAssetUrl("lib/wwads/wwads.js")"></script>
<script>
var _hmt = _hmt || [];
(function () {

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;

View File

@@ -1 +1,3 @@
<img alt="logo" class="bb-icon" src="./images/logo.png" />
@inject IOptions<WebsiteOptions> WebsiteOption
<img alt="logo" class="bb-icon" src="@WebsiteOption.Value.GetAssetUrl("images/logo.png")" />

View File

@@ -4,5 +4,5 @@
border-radius: var(--bs-border-radius);
background-color: var(--bb-primary-color);
border: solid 1px #fff;
margin-right: 1rem;
margin-inline-end: 1rem;
}

View File

@@ -0,0 +1,66 @@
@inject IStringLocalizer<BarcodeGenerateSettings> Localizer
<GroupBox Title="@Localizer["BarcodeGeneratorGroupBoxText"]">
<div class="row form-inline g-3">
<div class="col-12 col-sm-6">
<BootstrapInput Value="Value" ShowLabel="true" UseInputEvent="true" OnValueChanged="OnValueChanged" />
</div>
<div class="col-12 col-sm-6">
<Select @bind-Value="Format" OnValueChanged="OnFormatChanged" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Slider @bind-Value="Width" Min="1" Max="6" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Slider @bind-Value="Height" Min="10" Max="300" Step="5" ShowLabel="true" />
</div>
<div class="col-12">
<Slider @bind-Value="Margin" Min="-30" Max="100" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Slider @bind-Value="MarginLeft" Min="-30" Max="100" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Slider @bind-Value="MarginTop" Min="-30" Max="100" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Slider @bind-Value="MarginRight" Min="-30" Max="100" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Slider @bind-Value="MarginBottom" Min="-30" Max="100" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<ColorPicker @bind-Value="Background" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<ColorPicker @bind-Value="LineColor" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Switch @bind-Value="DisplayValue" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<BootstrapInput @bind-Value="Text" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Select @bind-Value="TextAlign" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Select @bind-Value="TextPosition" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Select @bind-Value="Font" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Select @bind-Value="FontOptions" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Slider @bind-Value="FontSize" Min="8" Max="52" ShowLabel="true" />
</div>
<div class="col-12 col-sm-6">
<Slider @bind-Value="TextMargin" Min="-30" Max="100" ShowLabel="true" />
</div>
<div class="col-12">
<Textarea Value="@SvgString" DisplayText="Svg" ShowLabel="true" readonly />
</div>
</div>
</GroupBox>

View File

@@ -0,0 +1,339 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>
/// BarcodeGenerateSettings 组件
/// </summary>
public partial class BarcodeGenerateSettings
{
/// <summary>
///
/// </summary>
[Parameter]
public BarcodeGeneratorOption Options { get; set; } = new();
/// <summary>
///
/// </summary>
[Parameter]
public EventCallback<BarcodeGeneratorOption> OptionsChanged { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public string Value { get; set; } = "12345";
/// <summary>
///
/// </summary>
[Parameter]
public EventCallback<string> ValueChanged { get; set; }
/// <summary>
///
/// </summary>
[Parameter]
public string SvgString { get; set; } = "";
private async Task OnValueChanged(string v)
{
Value = v;
if (ValueChanged.HasDelegate)
{
await ValueChanged.InvokeAsync(Value);
}
}
private async Task OnFormatChanged(EnumBarcodeFormat format)
{
Value = DefaultValues[format.ToString()];
if (ValueChanged.HasDelegate)
{
await ValueChanged.InvokeAsync(Value);
}
Options.Format = format;
await TriggerOptionsChanged();
}
private async Task TriggerOptionsChanged()
{
if (OptionsChanged.HasDelegate)
{
await OptionsChanged.InvokeAsync(Options);
}
}
private readonly Dictionary<string, string> DefaultValues = new()
{
{ "CODE128", "Example 1234"},
{ "CODE128A", "EXAMPLE"},
{ "CODE128B", "Example text"},
{ "CODE128C", "12345678"},
{ "EAN13", "1234567890128"},
{ "EAN8", "12345670"},
{ "EAN5", "12340"},
{ "EAN2", "10"},
{ "UPC", "123456789999"},
{ "CODE39", "EXAMPLE TEXT"},
{ "ITF14", "10012345000017"},
{ "ITF", "123456"},
{ "MSI", "123456"},
{ "MSI10", "123456"},
{ "MSI11", "123456"},
{ "MSI1010", "123456"},
{ "MSI1110", "123456"},
{ "Pharmacode", "1234"}
};
private bool Flat
{
get
{
return Options.Flat ?? false;
}
set
{
Options.Flat = value;
_ = TriggerOptionsChanged();
}
}
private bool DisplayValue
{
get
{
return Options.DisplayValue ?? true;
}
set
{
Options.DisplayValue = value;
_ = TriggerOptionsChanged();
}
}
private string? Text
{
get
{
return Options.Text ?? "";
}
set
{
Options.Text = value;
_ = TriggerOptionsChanged();
}
}
private EnumBarcodeFormat Format
{
get
{
return Options.Format ?? EnumBarcodeFormat.CODE128;
}
set
{
Options.Format = value;
_ = TriggerOptionsChanged();
}
}
private EnumBarcodeTextAlign TextAlign
{
get
{
return Options.TextAlign ?? EnumBarcodeTextAlign.Center;
}
set
{
Options.TextAlign = value;
_ = TriggerOptionsChanged();
}
}
private EnumBarcodeTextFont Font
{
get
{
return Options.Font ?? EnumBarcodeTextFont.Monospace;
}
set
{
Options.Font = value;
_ = TriggerOptionsChanged();
}
}
private EnumBarcodeTextFontOption FontOptions
{
get
{
return Options.FontOptions ?? EnumBarcodeTextFontOption.Normal;
}
set
{
Options.FontOptions = value;
_ = TriggerOptionsChanged();
}
}
private int FontSize
{
get
{
return Options.FontSize ?? 20;
}
set
{
Options.FontSize = value;
_ = TriggerOptionsChanged();
}
}
private int TextMargin
{
get
{
return Options.TextMargin ?? 2;
}
set
{
Options.TextMargin = value;
_ = TriggerOptionsChanged();
}
}
private EnumBarcodeTextPosition TextPosition
{
get
{
return Options.TextPosition ?? EnumBarcodeTextPosition.Bottom;
}
set
{
Options.TextPosition = value;
_ = TriggerOptionsChanged();
}
}
private string Background
{
get
{
return Options.Background ?? "#FFFFFF";
}
set
{
Options.Background = value;
_ = TriggerOptionsChanged();
}
}
private string LineColor
{
get
{
return Options.LineColor ?? "#000000";
}
set
{
Options.LineColor = value;
_ = TriggerOptionsChanged();
}
}
private int Width
{
get
{
return Options.Width ?? 2;
}
set
{
Options.Width = value;
_ = TriggerOptionsChanged();
}
}
private int Height
{
get
{
return Options.Height ?? 100;
}
set
{
Options.Height = value;
_ = TriggerOptionsChanged();
}
}
private int Margin
{
get
{
return Options.Margin ?? 10;
}
set
{
Options.Margin = value;
_ = TriggerOptionsChanged();
}
}
private int MarginLeft
{
get
{
return Options.MarginLeft ?? 10;
}
set
{
Options.MarginLeft = value;
_ = TriggerOptionsChanged();
}
}
private int MarginTop
{
get
{
return Options.MarginTop ?? 10;
}
set
{
Options.MarginTop = value;
_ = TriggerOptionsChanged();
}
}
private int MarginRight
{
get
{
return Options.MarginRight ?? 10;
}
set
{
Options.MarginRight = value;
_ = TriggerOptionsChanged();
}
}
private int MarginBottom
{
get
{
return Options.MarginBottom ?? 10;
}
set
{
Options.MarginBottom = value;
_ = TriggerOptionsChanged();
}
}
}

View File

@@ -1,4 +1,4 @@
@inject IOptionsMonitor<WebsiteOptions> WebsiteOption
@inject IOptions<WebsiteOptions> WebsiteOption
<Reconnector>
<ReconnectingTemplate>
@@ -59,7 +59,7 @@
</Reconnector>
@code {
private string TemplateUrl => $"{WebsiteOption.CurrentValue.GiteeRepositoryUrl}/wikis/%E9%A1%B9%E7%9B%AE%E6%A8%A1%E6%9D%BF%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B";
private string TemplateUrl => $"{WebsiteOption.Value.GiteeRepositoryUrl}/wikis/%E9%A1%B9%E7%9B%AE%E6%A8%A1%E6%9D%BF%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B";
RenderFragment RenderBootstrapBlazor =>
@<div class="col-12 col-sm-5">
@@ -67,11 +67,11 @@
<div class="d-flex">
<div class="flex-fill">
<p> <b>Bootstrap</b> <b>Blazor UI</b> Server WebAssembly</p>
<p> <b>ABP</b> <b>NET6/NET7/NET8</b></p>
<p> <b>ABP</b> <b>NET6/NET7/NET8/NET9</b></p>
<p></p>
<div>便 <a class="connection-link" href="@TemplateUrl" target="_blank"></a></div>
</div>
<img altt="QQ" src="./images/QQGroup@2x.png" alt="QQGroup" />
<img altt="QQ" src="@WebsiteOption.Value.GetAssetUrl("images/QQGroup@2x.png")" alt="QQGroup" />
<div class="connection-body-tail d-none d-sm-block"></div>
</div>
</div>;

View File

@@ -0,0 +1,4 @@
<div class="footer-cache ms-2">
<i class="fa-solid fa-microchip text-success"></i>
<a href="./cache-list" target="_blank" style="color: #ddd;">@CacheManager.Keys.Count()</a>
</div>

View File

@@ -0,0 +1,44 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>
/// 缓存数量组件
/// </summary>
public partial class CacheCounter : IDisposable
{
[Inject, NotNull]
private ICacheManager? CacheManager { get; set; }
private readonly CancellationTokenSource _cancellationTokenSource = new();
/// <summary>
/// <inheritdoc/>
/// </summary>
/// <param name="firstRender"></param>
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await base.OnAfterRenderAsync(firstRender);
try
{
await Task.Delay(5000, _cancellationTokenSource.Token);
StateHasChanged();
}
catch { }
}
/// <summary>
/// <inheritdoc/>
/// </summary>
/// <exception cref="NotImplementedException"></exception>
public void Dispose()
{
_cancellationTokenSource.Cancel();
_cancellationTokenSource.Dispose();
GC.SuppressFinalize(this);
}
}

View File

@@ -0,0 +1 @@
@ExpirationTime

View File

@@ -0,0 +1,41 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
using Microsoft.Extensions.Caching.Memory;
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>
/// CacheExpiration 组件
/// </summary>
public partial class CacheExpiration
{
/// <summary>
/// 获得/设置 <see cref="ICacheEntry"/> 实例
/// </summary>
[Parameter, NotNull]
public object? Context { get; set; }
private string? ExpirationTime { get; set; }
/// <summary>
/// <inheritdoc/>
/// </summary>
/// <returns></returns>
protected override async Task OnParametersSetAsync()
{
await base.OnParametersSetAsync();
await GetCacheEntryExpiration();
}
private async Task GetCacheEntryExpiration()
{
ExpirationTime = "loading ...";
await Task.Yield();
ExpirationTime = Context is ICacheEntry entry ? entry.GetExpiration() : "-";
}
}

View File

@@ -0,0 +1,18 @@
<td>
<div class="calendar-day text-center">
</div>
</td>
@foreach (var value in Context.Values)
{
<td class="@value.DefaultCss">
<div class="calendar-day">
<span>@value.CellValue.Day</span>
</div>
</td>
}
<td>
<div class="calendar-day text-center">
</div>
</td>

View File

@@ -0,0 +1,20 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>
/// 日历 BodyTemplate 组件
/// </summary>
public partial class CalendarBodyTemplate
{
/// <summary>
/// 获得/设置 月视图 BodyTempalte 上下文
/// </summary>
[Parameter]
[EditorRequired]
[NotNull]
public BodyTemplateContext? Context { get; set; }
}

View File

@@ -0,0 +1,48 @@
<tr>
<td>09:00</td>
@for (var index = 0; index < 7; index++)
{
<td></td>
}
</tr>
<tr>
<td>10:00</td>
@for (var index = 0; index < 7; index++)
{
<td></td>
}
</tr>
<tr>
<td>11:00</td>
@for (var index = 0; index < 7; index++)
{
<td></td>
}
</tr>
<tr>
<td colspan="8" class="bg-success"></td>
</tr>
<tr>
<td>14:00</td>
@for (var index = 0; index < 7; index++)
{
<td></td>
}
</tr>
<tr>
<td>15:00</td>
@for (var index = 0; index < 7; index++)
{
<td></td>
}
</tr>
<tr>
<td>16:00</td>
@for (var index = 0; index < 7; index++)
{
<td></td>
}
</tr>
<tr>
<td colspan="8" style="background-color: #f8f9fa;"></td>
</tr>

View File

@@ -0,0 +1,14 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>
/// 日历 ChildContent 组件
/// </summary>
public partial class CalendarChildContent
{
}

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;

View File

@@ -21,7 +21,7 @@
}
.actions > span:not(:last-child) {
margin-right: .5rem;
margin-inline-end: .5rem;
}
.crew:not(:last-child) {
@@ -30,6 +30,6 @@
.crew > input {
max-width: 2rem;
margin-right: 1rem;
margin-inline-end: 1rem;
border: none;
}

View File

@@ -0,0 +1,27 @@
@if (ViewMode == CalendarViewMode.Month)
{
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
}
else
{
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
}

View File

@@ -0,0 +1,18 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>
/// 日历 HeaderTemplate 组件
/// </summary>
public partial class CalendarHeaderTemplate
{
/// <summary>
/// 获得/设置 是否显示周视图 默认为 CalendarVieModel.Month 月视图
/// </summary>
[Parameter]
public CalendarViewMode ViewMode { get; set; }
}

View File

@@ -1,6 +1,8 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>

View File

@@ -1,6 +1,9 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
using Microsoft.Extensions.Options;
namespace BootstrapBlazor.Server.Components.Components;
@@ -9,7 +12,10 @@ namespace BootstrapBlazor.Server.Components.Components;
/// </summary>
public sealed partial class ComponentCard
{
private string ImageUrl => $"./images/{Image}";
[Inject, NotNull]
private IOptions<WebsiteOptions>? WebsiteOption { get; set; }
private string ImageUrl => $"{WebsiteOption.Value.AssetRootPath}images/{Image}";
private string? ClassString => CssBuilder.Default("col-12 col-sm-6 col-md-4 col-lg-3")
.AddClass("d-none", IsHide)

View File

@@ -0,0 +1,3 @@
.card:hover {
box-shadow: var(--bs-box-shadow);
}

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;

View File

@@ -9,7 +9,7 @@
.coms-cate ::deep .badge {
position: absolute;
top: 0;
margin-left: 1rem;
margin-inline-start: 1rem;
font-size: .65rem;
}

View File

@@ -4,7 +4,7 @@
<span>@Label</span>
<Select Value="@SelectedCulture" OnSelectedItemChanged="@SetCulture">
<Options>
@foreach (var kv in BootstrapOptions.CurrentValue.GetSupportedCultures())
@foreach (var kv in BootstrapOptions.Value.GetSupportedCultures())
{
<SelectOption Text="@GetDisplayName(kv)" Value="@kv.Name" />
}

View File

@@ -1,8 +1,10 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
using Microsoft.Extensions.Options;
using Microsoft.JSInterop;
using System.Globalization;
namespace BootstrapBlazor.Server.Components.Components;
@@ -14,11 +16,7 @@ public partial class CultureChooser
{
[Inject]
[NotNull]
private IOptionsMonitor<BootstrapBlazorOptions>? BootstrapOptions { get; set; }
[Inject]
[NotNull]
private IOptionsMonitor<WebsiteOptions>? WebsiteOption { get; set; }
private IOptions<BootstrapBlazorOptions>? BootstrapOptions { get; set; }
[Inject]
[NotNull]
@@ -32,7 +30,7 @@ public partial class CultureChooser
.AddClassFromAttributes(AdditionalAttributes)
.Build();
private string SelectedCulture { get; set; } = CultureInfo.CurrentUICulture.Name;
private string SelectedCulture { get; set; } = CultureInfo.CurrentCulture.Name;
[NotNull]
private string? Label { get; set; }
@@ -49,38 +47,43 @@ public partial class CultureChooser
private async Task SetCulture(SelectedItem item)
{
if (OperatingSystem.IsBrowser())
{
var cultureName = item.Value;
if (cultureName != CultureInfo.CurrentCulture.Name)
{
await JSRuntime.SetCulture(cultureName);
var culture = new CultureInfo(cultureName);
CultureInfo.CurrentCulture = culture;
CultureInfo.CurrentUICulture = culture;
NavigationManager.NavigateTo(NavigationManager.Uri, forceLoad: true);
}
}
else
if (RendererInfo.Name == "Server")
{
// 使用 api 方式 适用于 Server-Side 模式
if (SelectedCulture != item.Value)
{
var culture = item.Value;
var uri = new Uri(NavigationManager.Uri).GetComponents(UriComponents.PathAndQuery, UriFormat.Unescaped);
var uri = new Uri(NavigationManager.Uri).GetComponents(UriComponents.PathAndQuery, UriFormat.SafeUnescaped);
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);
try
{
// use a path that matches your culture redirect controller from the previous steps
NavigationManager.NavigateTo("/Culture/SetCulture" + query, forceLoad: true);
}
catch { }
}
else
{
if (SelectedCulture != item.Value)
{
var culture = item.Value;
await JSRuntime.InvokeVoidAsync("bbCulture.set", culture);
NavigationManager.NavigateTo(NavigationManager.Uri, forceLoad: true);
}
}
}
}
private static string GetDisplayName(CultureInfo culture)
private string GetDisplayName(CultureInfo culture)
{
string? ret;
if (OperatingSystem.IsBrowser())
if (RendererInfo.Name == "Server")
{
ret = culture.NativeName;
}
else
{
ret = culture.Name switch
{
@@ -89,10 +92,6 @@ public partial class CultureChooser
_ => ""
};
}
else
{
ret = culture.NativeName;
}
return ret;
}
}

View File

@@ -14,7 +14,7 @@
}
.culture-selector ::deep .select {
width: 210px;
width: var(--bb-header-select-width);
}
::deep .form-control {

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;

View File

@@ -0,0 +1,19 @@
@inject IOptions<WebsiteOptions> WebsiteOption
<div class="bb-winbox-body">
<h3>Custom WinBox Content Create @DateTime.Now</h3>
</div>
<div class="bb-winbox-footer">
@if (Option is not { Modal: true })
{
<Button Text="Stack" OnClickWithoutRender="StackWinBox"></Button>
<Button Text="Minimize" OnClickWithoutRender="MinWinBox"></Button>
<Button Text="Maximize" OnClickWithoutRender="MaxWinBox"></Button>
<Button Text="Restore" OnClickWithoutRender="RestoreWinBox" class="me-2"></Button>
}
<Button Text="SetTitle" OnClickWithoutRender="SetTitleWinBox"></Button>
<Button Text="SetIcon" OnClickWithoutRender="SetIconWinBox" class="me-2"></Button>
<WinBoxCloseButton />
</div>

View File

@@ -0,0 +1,65 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>
/// CustomWinBoxContent 组件
/// </summary>
public partial class CustomWinBoxContent
{
[Inject, NotNull]
private WinBoxService? WinBoxService { get; set; }
/// <summary>
/// WinBoxOption 实例
/// </summary>
[Parameter, NotNull]
public WinBoxOption? Option { get; set; }
private Task StackWinBox() => WinBoxService.Stack();
private async Task MinWinBox()
{
if (Option != null)
{
await WinBoxService.Minimize(Option);
}
}
private async Task MaxWinBox()
{
if (Option != null)
{
await WinBoxService.Maximize(Option);
}
}
private async Task RestoreWinBox()
{
if (Option != null)
{
await WinBoxService.Restore(Option);
}
}
private async Task SetIconWinBox()
{
if (Option != null)
{
Option.Icon = $"{WebsiteOption.Value.AssetRootPath}images/Argo-C.png";
await WinBoxService.SetIcon(Option);
}
}
private async Task SetTitleWinBox()
{
if (Option != null)
{
Option.Title = $"{DateTime.Now}";
await WinBoxService.SetTitle(Option);
}
}
}

View File

@@ -1,50 +1,10 @@
@inherits FilterBase
<Select Items="@Items" @bind-Value="@Value" OnSelectedItemChanged="_ => OnFilterValueChanged()"></Select>
@if (IsHeaderRow)
{
@code {
private int Value = 10;
/// <summary>
/// OnInitialized 方法
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
if (TableFilter != null) TableFilter.ShowMoreButton = false;
Items = new SelectedItem[]
{
new SelectedItem { Value = "10", Text = "大于 10" },
new SelectedItem { Value = "50", Text = "大于 50" },
new SelectedItem { Value = "100", Text = "大于 100" }
};
}
/// <summary>
/// 重置过滤条件方法
/// </summary>
public override void Reset()
{
Value = 10;
StateHasChanged();
}
/// <summary>
/// 生成过滤条件方法
/// </summary>
/// <returns></returns>
public override FilterKeyValueAction GetFilterConditions()
{
var filter = new FilterKeyValueAction() { Filters = new() };
filter.Filters.Add(new FilterKeyValueAction()
{
FieldKey = FieldKey,
FieldValue = Value,
FilterAction = FilterAction.GreaterThan
});
return filter;
}
}
else
{
<Select Items="@_items" @bind-Value="@Value"></Select>
}

View File

@@ -0,0 +1,50 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>
///
/// </summary>
public partial class CustomerFilter
{
private int? Value;
private readonly IEnumerable<SelectedItem> _items = new SelectedItem[]
{
new() { Value = "", Text = "请选择 ..." },
new() { Value = "10", Text = "大于 10" },
new() { Value = "50", Text = "大于 50" },
new() { Value = "80", Text = "大于 80" }
};
/// <summary>
/// 重置过滤条件方法
/// </summary>
public override void Reset()
{
Value = null;
StateHasChanged();
}
/// <summary>
/// 生成过滤条件方法
/// </summary>
/// <returns></returns>
public override FilterKeyValueAction GetFilterConditions()
{
var filter = new FilterKeyValueAction();
if (Value != null)
{
filter.Filters.Add(new FilterKeyValueAction()
{
FieldKey = FieldKey,
FieldValue = Value.Value,
FilterAction = FilterAction.GreaterThan
});
}
return filter;
}
}

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
@@ -12,9 +13,9 @@ public partial class CustomerSelectDialog
private IEnumerable<SelectedItem>? Items2;
private readonly IEnumerable<SelectedItem> Items3 = new SelectedItem[]
{
new SelectedItem ("", "请选择 ..."),
new SelectedItem ("Beijing", "北京"),
new SelectedItem ("Shanghai", "上海")
new("", "请选择 ..."),
new("Beijing", "北京"),
new("Shanghai", "上海")
};
/// <summary>
@@ -29,21 +30,21 @@ public partial class CustomerSelectDialog
{
Items2 = new SelectedItem[]
{
new SelectedItem("1","朝阳区"),
new SelectedItem("2","海淀区"),
new("1","朝阳区"),
new("2","海淀区"),
};
}
else if (item.Value == "Shanghai")
{
Items2 = new SelectedItem[]
{
new SelectedItem("1","静安区"),
new SelectedItem("2","黄浦区"),
new("1","静安区"),
new("2","黄浦区"),
};
}
else
{
Items2 = Enumerable.Empty<SelectedItem>();
Items2 = [];
}
StateHasChanged();
}

View File

@@ -6,7 +6,7 @@
<p>@(new MarkupString(Introduction))</p>
<div class="card">
<div class="card-body">
<div class="card-body" style="@BodyStyleString">
@ChildContent
</div>
@if (ShowCode)

View File

@@ -1,11 +1,12 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>
///
/// DemoBlock 组件
/// </summary>
public sealed partial class DemoBlock
{
@@ -46,6 +47,12 @@ public sealed partial class DemoBlock
[Parameter]
public string? Name { get; set; }
/// <summary>
/// 获得/设置 CardBody 高度 默认 null
/// </summary>
[Parameter]
public string? Height { get; set; }
[CascadingParameter(Name = "RazorFileName")]
private string? CodeFile { get; set; }
@@ -53,6 +60,10 @@ public sealed partial class DemoBlock
[NotNull]
private IStringLocalizer<DemoBlock>? Localizer { get; set; }
private string? BodyStyleString => CssBuilder.Default()
.AddClass($"height: {Height};", !string.IsNullOrEmpty(Height))
.Build();
/// <summary>
/// <inheritdoc/>
/// </summary>

View File

@@ -7,12 +7,11 @@
}
.card:hover .card-footer-control i {
margin-left: -1.5rem;
margin-left: -72px;
margin-inline-start: -72px;
}
.card:hover .card-footer-control .card-text {
margin-left: 1rem;
margin-inline-start: 1rem;
}
.card:hover .card-footer-control .card-text:before {
@@ -46,6 +45,7 @@
.card-footer-code ::deep .pre-code {
margin: .5rem;
width: calc(100% - 1rem);
}
.card-footer-control {
@@ -67,7 +67,7 @@
}
.card-footer-control .card-text {
margin-left: 1.5rem;
margin-inline-start: 1.5rem;
position: absolute;
transition: all .3s linear;
}
@@ -86,8 +86,8 @@
font-weight: var(--bb-font-weight);
color: var(--bs-body-color);
font-size: var(--bb-sub-font-size);
margin-top: 1rem;
margin-bottom: .5rem;
margin-top: var(--bb-demo-block-margin-top);
margin-bottom: var(--bb-demo-block-margin-bottom);
}
::deep .table-cell .progress {

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;

View File

@@ -4,36 +4,18 @@
<div class="row form-inline g-3">
<div class="col-12 col-sm-6">
<BootstrapInput @bind-Value="Model.Name" />
<BootstrapInput @bind-Value="Model.Name"></BootstrapInput>
</div>
<div class="col-12 col-sm-6">
<MultiSelect @bind-Value="@Model.Hobby" Items="Hobbies" />
<MultiSelect @bind-Value="@Model.Hobby" Items="Hobbies"></MultiSelect>
</div>
<div class="col-12">
<Textarea @bind-Value="Model.Address" rows="3"/>
<Textarea @bind-Value="Model.Address" rows="3"></Textarea>
</div>
<div class="col-12 col-sm-6">
<Select @bind-Value="Model.Education" />
<Select @bind-Value="Model.Education"></Select>
</div>
<div class="col-12 col-sm-6">
<Display Value="@EducationDesc" ShowLabel="true" DisplayText="@Localizer["TablesEditTemplateDisplayLabel"]" />
<Display Value="@EducationDesc" ShowLabel="true" DisplayText="@Localizer["TablesEditTemplateDisplayLabel"]"></Display>
</div>
</div>
@code {
[Parameter]
[NotNull]
public Foo? Model { get; set; }
private IEnumerable<SelectedItem>? Hobbies { get; set; }
private string? EducationDesc => Model.Education == EnumEducation.Primary ? Localizer["TablesEditTemplateDisplayDetail1"] : Localizer["TablesEditTemplateDisplayDetail2"];
/// <summary>
/// <inheritdoc/>
/// </summary>
protected override void OnInitialized()
{
Hobbies = Foo.GenerateHobbies(LocalizerFoo);
}
}

View File

@@ -0,0 +1,36 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>
/// DemoTableEditTemplate component
/// </summary>
public partial class DemoTableEditTemplate
{
/// <summary>
/// Gets or sets the Foo instance.
/// </summary>
[Parameter]
[NotNull]
public Foo? Model { get; set; }
private IEnumerable<SelectedItem>? Hobbies { get; set; }
private string? EducationDesc => Model.Education switch
{
EnumEducation.Primary => Localizer["TablesEditTemplateDisplayDetail1"],
EnumEducation.Middle => Localizer["TablesEditTemplateDisplayDetail2"],
_ => ""
};
/// <summary>
/// <inheritdoc/>
/// </summary>
protected override void OnInitialized()
{
Hobbies = Foo.GenerateHobbies(LocalizerFoo);
}
}

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;

View File

@@ -1,6 +1,7 @@
// 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/
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;

View File

@@ -0,0 +1,3 @@
<div @key="@Value" class="col-12">
<div class="sl-item">@Value.Name</div>
</div>

View File

@@ -0,0 +1,18 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>
/// FooSortableListItem 组件
/// </summary>
public partial class FooSortableListItem
{
/// <summary>
/// 获得/设置 Foo 实例
/// </summary>
[Parameter, NotNull]
public Foo? Value { get; set; }
}

View File

@@ -0,0 +1,30 @@
.sl-item {
border: var(--bs-border-width) solid var(--bs-border-color);
border-radius: var(--bs-border-radius);
padding: 1rem;
}
.sl-item:not(:last-child) {
margin-bottom: 0.5rem;
user-select: none;
}
.col-12.sortable-chosen .sl-item {
background-color: var(--bs-primary);
color: var(--bs-body-bg);
}
.col-12.sortable-ghost .sl-item {
background-color: var(--bs-info);
color: var(--bs-body-bg);
}
.col-12.sortable-selected .sl-item {
background-color: #44a0ff;
color: #fff;
}
.col-12.sortable-swap-highlight .sl-item {
background-color: var(--bs-success);
color: var(--bs-body-bg);
}

View File

@@ -0,0 +1,6 @@
<div @key="@Value" class="col-12">
<div class="sl-item">
<div>@Value.Name</div>
<div>@Value.Address</div>
</div>
</div>

View File

@@ -0,0 +1,18 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the Apache 2.0 License
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
namespace BootstrapBlazor.Server.Components.Components;
/// <summary>
/// FooSortableListRightItem 组件
/// </summary>
public partial class FooSortableListRightItem
{
/// <summary>
/// 获得/设置 Foo 实例
/// </summary>
[Parameter, NotNull]
public Foo? Value { get; set; }
}

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