@lovrabet/rabetbase-cli 2.0.2-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +45 -0
- package/README.md +605 -0
- package/lib/ai-setup/config.js +1 -0
- package/lib/api/api-doc-ui.js +1 -0
- package/lib/api/api-doc.js +1 -0
- package/lib/api/api-pull-ui.js +1 -0
- package/lib/api/fetch-model-list.js +1 -0
- package/lib/api/generate-api-file.js +1 -0
- package/lib/api/main.js +1 -0
- package/lib/api/pull-silent.js +1 -0
- package/lib/app-menu/app-menu-sync-ui.js +1 -0
- package/lib/app-menu/create-menu.js +1 -0
- package/lib/app-menu/get-local-pages.js +1 -0
- package/lib/app-menu/get-online-menu-list.js +1 -0
- package/lib/app-menu/types.js +1 -0
- package/lib/app-menu/use-get-online-menu-list.js +1 -0
- package/lib/app-menu/utils.js +1 -0
- package/lib/app-menu/valid-url.js +1 -0
- package/lib/app-menu-update-cdn/current-content.js +1 -0
- package/lib/app-menu-update-cdn/input-cdn-asset.js +1 -0
- package/lib/app-menu-update-cdn/main.js +1 -0
- package/lib/app-menu-update-cdn/types.js +1 -0
- package/lib/app-menu-update-cdn/update-menu-cdn-url.js +1 -0
- package/lib/auth/auth-server-ui.js +1 -0
- package/lib/auth/auth-server.js +1 -0
- package/lib/auth/constant.js +1 -0
- package/lib/auth/get-cookie.js +1 -0
- package/lib/auth/is-session-valid.js +1 -0
- package/lib/auth/logout.js +1 -0
- package/lib/cli-flags.js +1 -0
- package/lib/cli.js +2 -0
- package/lib/commands/api.js +1 -0
- package/lib/commands/app.js +1 -0
- package/lib/commands/auth.js +1 -0
- package/lib/commands/bff/delete.js +1 -0
- package/lib/commands/bff/detail.js +1 -0
- package/lib/commands/bff/index.js +1 -0
- package/lib/commands/bff/list.js +1 -0
- package/lib/commands/bff/new.js +1 -0
- package/lib/commands/bff/pull.js +1 -0
- package/lib/commands/bff/push.js +1 -0
- package/lib/commands/bff/status.js +1 -0
- package/lib/commands/build.js +1 -0
- package/lib/commands/codegen/index.js +1 -0
- package/lib/commands/codegen/sdk.js +1 -0
- package/lib/commands/codegen/sql.js +1 -0
- package/lib/commands/config.js +1 -0
- package/lib/commands/create.js +1 -0
- package/lib/commands/dataset/detail.js +1 -0
- package/lib/commands/dataset/index.js +1 -0
- package/lib/commands/dataset/links.js +1 -0
- package/lib/commands/dataset/list.js +1 -0
- package/lib/commands/dataset/operations.js +1 -0
- package/lib/commands/init.js +1 -0
- package/lib/commands/logout.js +1 -0
- package/lib/commands/logs.js +1 -0
- package/lib/commands/mcp.js +1 -0
- package/lib/commands/menu.js +1 -0
- package/lib/commands/preview.js +1 -0
- package/lib/commands/registry.js +1 -0
- package/lib/commands/run.js +1 -0
- package/lib/commands/skill.js +1 -0
- package/lib/commands/sql/detail.js +1 -0
- package/lib/commands/sql/exec.js +1 -0
- package/lib/commands/sql/index.js +1 -0
- package/lib/commands/sql/list.js +1 -0
- package/lib/commands/sql/save.js +1 -0
- package/lib/commands/sql/validate.js +1 -0
- package/lib/commands/start.js +1 -0
- package/lib/config/config-help.js +1 -0
- package/lib/config/main.js +1 -0
- package/lib/constant/cli.js +1 -0
- package/lib/constant/domain.js +1 -0
- package/lib/constant/env.js +1 -0
- package/lib/context.js +1 -0
- package/lib/core/alias-resolver.js +1 -0
- package/lib/core/api-client.js +1 -0
- package/lib/core/bff/config.js +1 -0
- package/lib/core/bff/file-system.js +1 -0
- package/lib/core/bff/hash.js +1 -0
- package/lib/core/bff/lock.js +1 -0
- package/lib/core/bff/types.js +1 -0
- package/lib/core/bff/utils.js +1 -0
- package/lib/core/db-resolver.js +1 -0
- package/lib/core/sql-validator.js +1 -0
- package/lib/create-app/enhanced-guided-create.js +1 -0
- package/lib/create-app/format-elapsed.js +1 -0
- package/lib/create-app/main.js +1 -0
- package/lib/create-app/non-interactive.js +1 -0
- package/lib/create-app/task-finished.js +1 -0
- package/lib/create-app/task-loading.js +1 -0
- package/lib/create-app/task-running.js +1 -0
- package/lib/create-app/task-time.js +1 -0
- package/lib/create-app/use-copy-project-template.js +1 -0
- package/lib/create-app/use-format-code.js +1 -0
- package/lib/create-app/use-install-dependencies.js +1 -0
- package/lib/errors.js +1 -0
- package/lib/framework/flags.js +1 -0
- package/lib/framework/help.js +1 -0
- package/lib/framework/index.js +1 -0
- package/lib/framework/output.js +1 -0
- package/lib/framework/response.js +1 -0
- package/lib/framework/runner.js +1 -0
- package/lib/framework/types.js +1 -0
- package/lib/generated/build-info.js +1 -0
- package/lib/help.js +1 -0
- package/lib/init/main.js +1 -0
- package/lib/mcp/McpInstallUI.js +1 -0
- package/lib/mcp/claude.js +1 -0
- package/lib/mcp/cursor.js +1 -0
- package/lib/mcp/main.js +1 -0
- package/lib/mcp/mcp-install-non-interactive.js +1 -0
- package/lib/mcp/mcp-installer.js +1 -0
- package/lib/skills/main.js +1 -0
- package/lib/skills/npx-skills-add.js +1 -0
- package/lib/types/index.js +1 -0
- package/lib/ui/IDESelector.js +1 -0
- package/lib/ui/useIDESelection.js +1 -0
- package/lib/utils/ai_config.js +1 -0
- package/lib/utils/cdn-config.js +1 -0
- package/lib/utils/check-sdk-version.js +1 -0
- package/lib/utils/cli-version-check.js +1 -0
- package/lib/utils/config.js +1 -0
- package/lib/utils/copy-directory.js +1 -0
- package/lib/utils/file-utils.js +1 -0
- package/lib/utils/guides-cdn.js +1 -0
- package/lib/utils/http-client.js +1 -0
- package/lib/utils/logger.js +1 -0
- package/lib/utils/rules-cdn.js +1 -0
- package/lib/utils/sleep.js +1 -0
- package/lib/utils/template-replacer.js +1 -0
- package/package.json +77 -0
- package/sidecar/flags.json +10 -0
- package/templates/README.md +97 -0
- package/templates/generate-api/api.ts.tpl +47 -0
- package/templates/generate-api/client.ts.tpl +64 -0
- package/templates/projects/sub-app-react-demo/.prettierrc +1 -0
- package/templates/projects/sub-app-react-demo/CHANGELOG.md +53 -0
- package/templates/projects/sub-app-react-demo/README.md +318 -0
- package/templates/projects/sub-app-react-demo/docs/API_RULE_CHANGE.md +212 -0
- package/templates/projects/sub-app-react-demo/docs/quick-start.md +526 -0
- package/templates/projects/sub-app-react-demo/index.html +27 -0
- package/templates/projects/sub-app-react-demo/package.json +34 -0
- package/templates/projects/sub-app-react-demo/public/logo.svg +1 -0
- package/templates/projects/sub-app-react-demo/public/vite.svg +1 -0
- package/templates/projects/sub-app-react-demo/src/api/api.ts +83 -0
- package/templates/projects/sub-app-react-demo/src/api/client.ts +64 -0
- package/templates/projects/sub-app-react-demo/src/layouts/MainLayout.tsx +311 -0
- package/templates/projects/sub-app-react-demo/src/main.tsx +48 -0
- package/templates/projects/sub-app-react-demo/src/pages/dashboard/index.tsx +572 -0
- package/templates/projects/sub-app-react-demo/src/pages/data-screen/index.tsx +526 -0
- package/templates/projects/sub-app-react-demo/src/pages/index.tsx +467 -0
- package/templates/projects/sub-app-react-demo/src/pages/sdk-demo/index.tsx +453 -0
- package/templates/projects/sub-app-react-demo/src/pages/workbench/index.module.css +293 -0
- package/templates/projects/sub-app-react-demo/src/pages/workbench/index.tsx +155 -0
- package/templates/projects/sub-app-react-demo/src/router/index.tsx +30 -0
- package/templates/projects/sub-app-react-demo/src/style.css +92 -0
- package/templates/projects/sub-app-react-demo/src/utils/api.ts +12 -0
- package/templates/projects/sub-app-react-demo/src/vite-env.d.ts +2 -0
- package/templates/projects/sub-app-react-demo/tsconfig.json +26 -0
- package/templates/projects/sub-app-react-demo/vite.config.ts +111 -0
- package/templates/rules/lovrabet_rules.mdc.tpl +891 -0
- package/templates/skill/SKILL.md.tpl +120 -0
|
@@ -0,0 +1,526 @@
|
|
|
1
|
+
# Lovrabet子应用接入指南 - React 18 + Vite 实操版
|
|
2
|
+
|
|
3
|
+
> 🎯 **目标**:通过实际操作完成React项目接入Lovrabet平台
|
|
4
|
+
> 📦 **官方代码**:https://github.com/lovrabet-ai/sub-app-react-demo
|
|
5
|
+
> ⏱️ **预计时间**:20min可以走通从本地开发到线上部署的完成流程,看到自定义页面在平台中的渲染效果
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🚀 场景一:Hello World 实操(10min)
|
|
10
|
+
|
|
11
|
+
**目标**:下载官方代码,本地运行验证,构建部署,集成到主应用
|
|
12
|
+
|
|
13
|
+
### Step 1: 下载GitHub仓库
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# 推荐使用SSH(需要配置GitHub SSH密钥)
|
|
17
|
+
git clone git@github.com:lovrabet-ai/sub-app-react-demo.git
|
|
18
|
+
|
|
19
|
+
# 或使用HTTPS(适合快速体验)
|
|
20
|
+
# git clone https://github.com/lovrabet-ai/sub-app-react-demo.git
|
|
21
|
+
|
|
22
|
+
cd sub-app-react-demo
|
|
23
|
+
git checkout main
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Step 2: 本地安装和运行
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# 安装依赖
|
|
30
|
+
npm i
|
|
31
|
+
|
|
32
|
+
# 本地运行查看效果
|
|
33
|
+
npm start
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**本地验证**:
|
|
37
|
+
|
|
38
|
+
- 浏览器打开 https://dev.lovrabet.com:5173/hello-world
|
|
39
|
+
- 确认Hello World页面正常显示
|
|
40
|
+
- 检查控制台无报错信息
|
|
41
|
+
|
|
42
|
+

|
|
43
|
+
|
|
44
|
+
### Step 3: 构建产物
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# 构建微前端产物
|
|
48
|
+
npm run build
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**构建验证**:
|
|
52
|
+
|
|
53
|
+
- 检查 `dist/` 目录生成
|
|
54
|
+
- 确认存在 `dist/assets/main.js` 文件(ES modules格式)
|
|
55
|
+
- 确认存在 `dist/assets/main.css` 样式文件
|
|
56
|
+
|
|
57
|
+
本地构建成功
|
|
58
|
+

|
|
59
|
+
|
|
60
|
+
本地构建后生成的产物
|
|
61
|
+

|
|
62
|
+
|
|
63
|
+
### Step 4: 上传构建产物到CDN
|
|
64
|
+
|
|
65
|
+
#### 选项A:使用业务方已有CDN
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# 将 dist/ 目录内容上传到您的CDN
|
|
69
|
+
# 例如:https://your-cdn.com/sub-app-react-demo/
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### 选项B:使用Lovrabet临时CDN服务
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# 联系Lovrabet的技术支持 @风月 获取临时CDN上传地址,仅用于功能体验,3天后CDN链接会失效
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**CDN验证**:
|
|
79
|
+
|
|
80
|
+
- 确认JS文件可访问:
|
|
81
|
+
- 🔧 **您的CDN格式**:`https://your-cdn.com/sub-app-react-demo/dist/assets/main.js`
|
|
82
|
+
- 📌 **演示环境示例**:`https://g.yuntooai.com/dist/sub-app-react-demo/202508271755/main.js`
|
|
83
|
+
- 确认CSS文件可访问:
|
|
84
|
+
- 🔧 **您的CDN格式**:`https://your-cdn.com/sub-app-react-demo/dist/assets/main.css`
|
|
85
|
+
- 📌 **演示环境示例**:`https://g.yuntooai.com/dist/sub-app-react-demo/202508271755/main.css`
|
|
86
|
+
|
|
87
|
+
> 💡 **说明**:`your-cdn.com` 需替换为您实际的CDN域名
|
|
88
|
+
|
|
89
|
+
### Step 5: 到Lovrabet主应用中集成Hello World页面
|
|
90
|
+
|
|
91
|
+
在Lovrabet平台配置页面:
|
|
92
|
+
|
|
93
|
+
```text
|
|
94
|
+
页面配置:
|
|
95
|
+
├── 页面名称: Hello World Demo # 🔧 可自定义:菜单中显示的名称
|
|
96
|
+
├── 路由路径: /hello-world # ⚠️ 必须与 src/router/index.tsx 中的 path 保持一致
|
|
97
|
+
├── 微应用唯一标识: react-hello-world # 🔧 可自定义:用于区分不同微应用
|
|
98
|
+
├── 资源加载方式: import # ⚡ 固定值:Vite项目必须选择import
|
|
99
|
+
└── 资源加载列表: # 🔧 替换为您的CDN地址
|
|
100
|
+
├── https://your-cdn.com/sub-app-react-demo/dist/assets/main.js
|
|
101
|
+
└── https://your-cdn.com/sub-app-react-demo/dist/assets/main.css
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
> ⚠️ **重要提示**:路由路径必须与代码中定义的路径完全对应,否则页面无法正确加载
|
|
105
|
+
|
|
106
|
+
**集成验证**:
|
|
107
|
+
|
|
108
|
+
- 主应用菜单出现"Hello World Demo"
|
|
109
|
+
- 点击菜单能正常显示页面
|
|
110
|
+
- 页面功能与本地运行效果一致
|
|
111
|
+
|
|
112
|
+
#### 5.1 新增页面
|
|
113
|
+
|
|
114
|
+
访问菜单配置链接:https://app.lovrabet.com/app/app-f4c03acb/pages/
|
|
115
|
+

|
|
116
|
+
|
|
117
|
+
#### 5.2 配置路由
|
|
118
|
+
|
|
119
|
+

|
|
120
|
+
|
|
121
|
+
### step 6:验证页面运行效果
|
|
122
|
+
|
|
123
|
+
**✅ 场景一完成标志**:主应用中能正常访问Hello World页面
|
|
124
|
+
|
|
125
|
+
https://app-f4c03acb.app.lovrabet.com/hello-world
|
|
126
|
+
helloworld运行时页面: https://app-f4c03acb.app.lovrabet.com/hello-world
|
|
127
|
+

|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 📊 场景二:真实API数据请求与图表展示(10min)
|
|
132
|
+
|
|
133
|
+
**目标**:体验调用真实业务接口、处理跨域请求、展示动态图表的完整功能
|
|
134
|
+
|
|
135
|
+
### Step 1: 更新图表页面代码
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# 项目已包含 ChartFetch.tsx 页面
|
|
139
|
+
# 使用真实 API:https://runtime.lovrabet.com/dbapi/runtime/yuntoo/app-f4c03acb/6c6c94a6ef064fe898cfa895fe5a38f5/getList
|
|
140
|
+
|
|
141
|
+
cat src/pages/ChartFetch.tsx
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
[https://github.com/lovrabet-ai/sub-app-react-demo/blob/26f5dd3981ed5ad955dc3949501e308678438fb7/src/pages/ChartFetch.tsx#L33](https://github.com/lovrabet-ai/sub-app-react-demo/blob/26f5dd3981ed5ad955dc3949501e308678438fb7/src/pages/ChartFetch.tsx#L33)
|
|
145
|
+
|
|
146
|
+
注意:
|
|
147
|
+
|
|
148
|
+
- API地址的结构说明:https://runtime.lovrabet.com/${type}/runtime/${tenentCode}/${appCode}/${datasetCode}/getList
|
|
149
|
+
- 请将接口地址换成业务有权限的接口地址,就能运行看到自己负责业务的接口数据了,有权限的api地址请查看 https://app.lovrabet.com/app/${appCode}/admin/dataset,直接复制接口链接就能通过浏览器console控制验证接口请求的调用是否成功;
|
|
150
|
+
|
|
151
|
+
### Step 2: 本地运行验证
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
# 项目已安装echarts依赖
|
|
155
|
+
npm start
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**本地验证**:
|
|
159
|
+
|
|
160
|
+
- 浏览器访问 https://dev.lovrabet.com:5173/chart-fetch
|
|
161
|
+
- 确认饼图显示客户状态分布(活跃、正常、流失)
|
|
162
|
+
|
|
163
|
+
### Step 3: 构建更新的产物
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# 重新构建包含图表功能的版本
|
|
167
|
+
npm run build
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**构建验证**:
|
|
171
|
+
|
|
172
|
+
- `dist/assets/main.js` 包含echarts
|
|
173
|
+
- `dist/assets/main.css` 样式文件更新
|
|
174
|
+
- 注意:React、Ant Design已外部化,体积较小
|
|
175
|
+
|
|
176
|
+
### Step 4: 重新上传到CDN
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
# 将更新后的 dist/ 内容重新上传
|
|
180
|
+
# 覆盖之前的文件或使用新的路径
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Step 5: 到Lovrabet主应用中集成ChartFetch页面
|
|
184
|
+
|
|
185
|
+
**页面2:数据图表入口**
|
|
186
|
+
|
|
187
|
+
```text
|
|
188
|
+
页面配置:
|
|
189
|
+
├── 页面名称: 数据图表 # 🔧 可自定义:菜单中显示的名称
|
|
190
|
+
├── 路由路径: /chart-fetch # ⚠️ 必须与 src/router/index.tsx 中的 path 保持一致
|
|
191
|
+
├── 资源加载方式: import # ⚡ 固定值:Vite项目必须选择import
|
|
192
|
+
└── 资源加载列表: # 🔧 替换为您的CDN地址(与Hello World共享同一构建产物)
|
|
193
|
+
├── https://your-cdn.com/sub-app-react-demo/dist/assets/main.js
|
|
194
|
+
└── https://your-cdn.com/sub-app-react-demo/dist/assets/main.css
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
#### 5.1 配置
|
|
198
|
+
|
|
199
|
+
访问链接:https://app.lovrabet.com/app/app-f4c03acb/preview
|
|
200
|
+

|
|
201
|
+
|
|
202
|
+
**集成验证**:
|
|
203
|
+
|
|
204
|
+
- 主应用此时又多了一个菜单项,总计出现了2个菜单
|
|
205
|
+
- "Hello World"菜单 → 显示Hello World页面
|
|
206
|
+
- "数据图表"菜单 → 显示图表页面,数据正常加载
|
|
207
|
+
|
|
208
|
+
**✅ 场景二完成标志**:两个菜单都能正常工作,图表数据正常显示
|
|
209
|
+
|
|
210
|
+

|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## 🔧 场景三:改造已有项目(20min)
|
|
215
|
+
|
|
216
|
+
**目标**:将您现有的React项目改造为微前端,直接请求真实的业务接口,实现无缝集成到Lovrabet平台
|
|
217
|
+
|
|
218
|
+
### 改造已有项目流程
|
|
219
|
+
|
|
220
|
+
1. **分析现有项目** → 确定改造范围和接口依赖
|
|
221
|
+
2. **修改入口文件** → 添加微前端生命周期函数
|
|
222
|
+
3. **配置构建工具** → 修改vite.config.js支持ES modules
|
|
223
|
+
4. **封装API调用** → 统一请求方式,直接调用真实接口
|
|
224
|
+
5. **本地开发测试** → 验证功能完整性
|
|
225
|
+
6. **构建部署** → 生成ES modules格式产物
|
|
226
|
+
7. **平台配置** → 配置多个页面入口
|
|
227
|
+
8. **生产验证** → 确保集成效果符合预期
|
|
228
|
+
|
|
229
|
+
### 官方配置参数详解
|
|
230
|
+
|
|
231
|
+
根据Lovrabet官方文档,配置页面时需要理解以下关键参数:
|
|
232
|
+
|
|
233
|
+
#### 1. 路由路径 (path)
|
|
234
|
+
|
|
235
|
+
```text
|
|
236
|
+
说明:应用实际访问时链接URL中的path部分
|
|
237
|
+
格式:https://${appcode}.app.lovrabet.com/${pagePath}
|
|
238
|
+
|
|
239
|
+
⚠️ 重要:路由路径必须与 src/router/index.tsx 中定义的路径完全一致
|
|
240
|
+
|
|
241
|
+
示例对应关系:
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
```typescript
|
|
245
|
+
// src/router/index.tsx 中的配置
|
|
246
|
+
{
|
|
247
|
+
path: "hello-world", // <- 这里定义的路径
|
|
248
|
+
element: <HelloWorld />,
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// 平台配置中的路由路径
|
|
252
|
+
路由路径: /hello-world // <- 必须保持一致(加上/前缀)
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
```text
|
|
256
|
+
实际访问链接示例:
|
|
257
|
+
- 配置"/hello-world" → https://app-f4c03acb.app.lovrabet.com/hello-world
|
|
258
|
+
- 配置"/chart-fetch" → https://app-f4c03acb.app.lovrabet.com/chart-fetch
|
|
259
|
+
|
|
260
|
+
其中:
|
|
261
|
+
- 🔧 appcode: 您的应用编码(创建应用时生成,如:app-f4c03acb)
|
|
262
|
+
- ⚠️ pagePath: 必须与代码中的路由配置一致
|
|
263
|
+
|
|
264
|
+
要求:路径需要在整个应用中唯一
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
#### 2. 微应用唯一标识
|
|
268
|
+
|
|
269
|
+
```text
|
|
270
|
+
说明:标记页面所属的源码微应用,多个页面可能属于同一个源码微应用
|
|
271
|
+
默认:如不填写,则实际运行时会将"路由路径(path)"作为应用标识
|
|
272
|
+
|
|
273
|
+
🔧 建议:使用有意义的名称,如:react-hello-world、customer-management 等
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
#### 3. Basename
|
|
277
|
+
|
|
278
|
+
```text
|
|
279
|
+
说明:指定微应用接收的basename,微应用包含前端路由的场景下需要使用
|
|
280
|
+
默认:如不填写,则默认"路由路径(path)"即作为basename
|
|
281
|
+
|
|
282
|
+
💡 提示:本示例项目已自动处理 basename,通常无需手动配置
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
#### 4. 资源加载方式
|
|
286
|
+
|
|
287
|
+
```text
|
|
288
|
+
可选值:
|
|
289
|
+
- script(默认):通过HTML <script /> 标签加载,适用于Angular CLI和Vue CLI
|
|
290
|
+
- fetch:通过window.fetch 加载并缓存脚本资源,沙箱模式下使用
|
|
291
|
+
- import:加载ES modules类型微应用
|
|
292
|
+
|
|
293
|
+
⚡ 重要:Vite构建的项目必须选择 import
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### Step 1: 改造现有项目结构
|
|
297
|
+
|
|
298
|
+
#### 1.1 修改入口文件
|
|
299
|
+
|
|
300
|
+
```jsx
|
|
301
|
+
// src/main.jsx - 改造为微前端入口
|
|
302
|
+
import React from "react";
|
|
303
|
+
import { createRoot } from "react-dom/client";
|
|
304
|
+
import { isInIcestark } from "@ice/stark-app";
|
|
305
|
+
import { ConfigProvider } from "antd";
|
|
306
|
+
import zhCN from "antd/locale/zh_CN";
|
|
307
|
+
import App from "./router"; // 注意:App实际上是路由组件
|
|
308
|
+
import "./style.css";
|
|
309
|
+
|
|
310
|
+
// 判断是否在微前端环境中运行
|
|
311
|
+
if (!isInIcestark()) {
|
|
312
|
+
// 获取 index.html 中定义的根容器元素(id="root")
|
|
313
|
+
const container = document.getElementById("root");
|
|
314
|
+
if (container) {
|
|
315
|
+
const root = createRoot(container);
|
|
316
|
+
root.render(
|
|
317
|
+
<ConfigProvider locale={zhCN}>
|
|
318
|
+
<App />
|
|
319
|
+
</ConfigProvider>,
|
|
320
|
+
);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// 关键:暴露 mount 供主应用加载时调用
|
|
325
|
+
export function mount({ container, customProps }) {
|
|
326
|
+
const root = createRoot(container);
|
|
327
|
+
root.render(
|
|
328
|
+
<React.StrictMode>
|
|
329
|
+
<ConfigProvider locale={zhCN}>
|
|
330
|
+
<App {...customProps} />
|
|
331
|
+
</ConfigProvider>
|
|
332
|
+
</React.StrictMode>,
|
|
333
|
+
);
|
|
334
|
+
return root;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
// 关键:暴露 unmount 供主应用卸载时调用
|
|
338
|
+
export function unmount({ container }) {
|
|
339
|
+
// React 18 中不再需要手动卸载,但为了兼容性保留
|
|
340
|
+
const root = container._reactRoot;
|
|
341
|
+
if (root) {
|
|
342
|
+
root.unmount();
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
#### 1.2 配置Vite构建
|
|
348
|
+
|
|
349
|
+
```javascript
|
|
350
|
+
// vite.config.ts - 微前端构建配置
|
|
351
|
+
import { defineConfig, loadEnv } from "vite";
|
|
352
|
+
import react from "@vitejs/plugin-react";
|
|
353
|
+
import htmlPlugin from "vite-plugin-index-html";
|
|
354
|
+
import pluginExternal from "vite-plugin-external";
|
|
355
|
+
|
|
356
|
+
export default defineConfig(async ({ mode }) => {
|
|
357
|
+
const env = loadEnv(mode, process.cwd());
|
|
358
|
+
const PORT = Number(env.VITE_APP_PORT) || 5173;
|
|
359
|
+
|
|
360
|
+
return {
|
|
361
|
+
plugins: [
|
|
362
|
+
react(),
|
|
363
|
+
// 关键配置:提供 vite lib 打包 + html plugin 能力
|
|
364
|
+
htmlPlugin({
|
|
365
|
+
input: "src/main.tsx",
|
|
366
|
+
preserveEntrySignatures: "exports-only",
|
|
367
|
+
}),
|
|
368
|
+
// 外部化依赖,减小打包体积
|
|
369
|
+
pluginExternal({
|
|
370
|
+
externals: {
|
|
371
|
+
react: "React",
|
|
372
|
+
"react-dom": "ReactDOM",
|
|
373
|
+
antd: "antd",
|
|
374
|
+
dayjs: "dayjs",
|
|
375
|
+
},
|
|
376
|
+
}),
|
|
377
|
+
],
|
|
378
|
+
|
|
379
|
+
// 开发服务器配置
|
|
380
|
+
server: {
|
|
381
|
+
port: PORT,
|
|
382
|
+
host: "dev.lovrabet.com",
|
|
383
|
+
headers: {
|
|
384
|
+
"Access-Control-Allow-Origin": "*",
|
|
385
|
+
},
|
|
386
|
+
},
|
|
387
|
+
|
|
388
|
+
// 生产构建配置 - ES modules格式
|
|
389
|
+
build: {
|
|
390
|
+
outDir: "dist",
|
|
391
|
+
target: "esnext",
|
|
392
|
+
rollupOptions: {
|
|
393
|
+
output: {
|
|
394
|
+
format: "es",
|
|
395
|
+
entryFileNames: "assets/[name].js",
|
|
396
|
+
assetFileNames: "assets/[name].css",
|
|
397
|
+
},
|
|
398
|
+
},
|
|
399
|
+
},
|
|
400
|
+
};
|
|
401
|
+
});
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
### Step 2: API请求封装(核心配置)
|
|
405
|
+
|
|
406
|
+
**🔑 关键点:直接请求真实接口的跨域问题必须配置 `credentials: 'include'` 来携带Cookie**
|
|
407
|
+
|
|
408
|
+
```javascript
|
|
409
|
+
// 简单封装 apiRequest - 这是最简单有效的实现
|
|
410
|
+
const apiRequest = async (path, options = {}) => {
|
|
411
|
+
const response = await fetch(`https://runtime.lovrabet.com${path}`, {
|
|
412
|
+
credentials: "include", // 关键配置:跨域请求携带Cookie
|
|
413
|
+
headers: {
|
|
414
|
+
"Content-Type": "application/json",
|
|
415
|
+
...options.headers,
|
|
416
|
+
},
|
|
417
|
+
...options,
|
|
418
|
+
});
|
|
419
|
+
return response.json();
|
|
420
|
+
};
|
|
421
|
+
|
|
422
|
+
// 使用示例
|
|
423
|
+
const fetchUserData = async () => {
|
|
424
|
+
try {
|
|
425
|
+
const data = await apiRequest(
|
|
426
|
+
"/dbapi/runtime/yuntoo/app-f4c03acb/6c6c94a6ef064fe898cfa895fe5a38f5/getList",
|
|
427
|
+
{
|
|
428
|
+
method: "POST",
|
|
429
|
+
body: JSON.stringify({ pageSize: 10, currentPage: 1 }),
|
|
430
|
+
},
|
|
431
|
+
);
|
|
432
|
+
|
|
433
|
+
if (data.success) {
|
|
434
|
+
console.log("数据获取成功:", data.data);
|
|
435
|
+
}
|
|
436
|
+
} catch (error) {
|
|
437
|
+
console.error("请求失败:", error);
|
|
438
|
+
}
|
|
439
|
+
};
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### Step 3: 路由配置
|
|
443
|
+
|
|
444
|
+
```jsx
|
|
445
|
+
// src/router/index.jsx - 路由配置文件
|
|
446
|
+
import React from "react";
|
|
447
|
+
import { createBrowserRouter, RouterProvider } from "react-router";
|
|
448
|
+
import { getBasename } from "@ice/stark-app";
|
|
449
|
+
import MainLayout from "../layouts/MainLayout";
|
|
450
|
+
import HelloWorld from "../pages/HelloWorld";
|
|
451
|
+
import ChartFetch from "../pages/ChartFetch";
|
|
452
|
+
|
|
453
|
+
const router = createBrowserRouter(
|
|
454
|
+
[
|
|
455
|
+
{
|
|
456
|
+
path: "/",
|
|
457
|
+
element: <MainLayout />,
|
|
458
|
+
children: [
|
|
459
|
+
{
|
|
460
|
+
index: true,
|
|
461
|
+
element: <HelloWorld />,
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
path: "hello-world",
|
|
465
|
+
element: <HelloWorld />,
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
path: "chart-fetch",
|
|
469
|
+
element: <ChartFetch />,
|
|
470
|
+
},
|
|
471
|
+
],
|
|
472
|
+
},
|
|
473
|
+
],
|
|
474
|
+
{
|
|
475
|
+
// 可选:通过getBasename()获取到微应用运行时的basename并传入
|
|
476
|
+
basename: getBasename() || "/",
|
|
477
|
+
},
|
|
478
|
+
);
|
|
479
|
+
|
|
480
|
+
console.log("MicroAppRouter:", {
|
|
481
|
+
routes: router.routes,
|
|
482
|
+
basename: router.basename,
|
|
483
|
+
});
|
|
484
|
+
|
|
485
|
+
const AppRouter: React.FC = () => {
|
|
486
|
+
return <RouterProvider router={router} />;
|
|
487
|
+
};
|
|
488
|
+
|
|
489
|
+
export default AppRouter;
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
### Step 4: 本地开发、测试、集成到主应用
|
|
493
|
+
|
|
494
|
+
同场景一和场景二的操作
|
|
495
|
+
|
|
496
|
+
## 🛠️ 常见问题和解决方案
|
|
497
|
+
|
|
498
|
+
### 改造相关问题
|
|
499
|
+
|
|
500
|
+
**问题1:现有项目路由冲突**
|
|
501
|
+
**解决**:
|
|
502
|
+
|
|
503
|
+
- 使用正确的basename,确保在主应用中也是唯一的
|
|
504
|
+
- 检查路由配置与平台配置的路径匹配
|
|
505
|
+
- 使用相对路径而非绝对路径
|
|
506
|
+
|
|
507
|
+
**问题2:接口请求失败**
|
|
508
|
+
**解决**:
|
|
509
|
+
|
|
510
|
+
- 检查API地址配置是否正确
|
|
511
|
+
- 验证接口的CORS配置
|
|
512
|
+
|
|
513
|
+
### 构建部署问题
|
|
514
|
+
|
|
515
|
+
**问题4:构建后资源加载失败**
|
|
516
|
+
**解决**:
|
|
517
|
+
|
|
518
|
+
- 确保选择import加载方式
|
|
519
|
+
- 检查CDN地址是否正确
|
|
520
|
+
- 验证资源文件是否完整上传
|
|
521
|
+
|
|
522
|
+
**问题5:我的业务工程能不能独立运行,仅调用Lovrabet的api接口**
|
|
523
|
+
**解决**:
|
|
524
|
+
|
|
525
|
+
- step1:子应用不挂载到主应用,也是支持独立运行的;
|
|
526
|
+
- step2:联系Lovrabet技术 @fengyue 独立配置业务自有域名来解决cors跨域;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
+
<title>Lovrabet扩展开发应用</title>
|
|
9
|
+
<!-- React 18 CDN -->
|
|
10
|
+
<script crossorigin src="https://g.alicdn.com/code/lib/react/18.3.1/umd/react.production.min.js"></script>
|
|
11
|
+
<script crossorigin src="https://g.alicdn.com/code/lib/react-dom/18.3.1/umd/react-dom.production.min.js"></script>
|
|
12
|
+
<!-- React Router CDN -->
|
|
13
|
+
<!-- <script
|
|
14
|
+
crossorigin
|
|
15
|
+
src="https://g.alicdn.com/code/lib/react-router/6.30.1/react-router.production.min.js"
|
|
16
|
+
></script> -->
|
|
17
|
+
<!-- Ant Design CDN -->
|
|
18
|
+
<script crossorigin src="https://g.alicdn.com/code/lib/dayjs/1.11.13/dayjs.min.js"></script>
|
|
19
|
+
<script crossorigin src="https://g.alicdn.com/code/lib/antd/5.26.5/antd.min.js"></script>
|
|
20
|
+
<link rel="stylesheet" href="https://g.alicdn.com/code/lib/antd/5.26.5/reset.min.css" />
|
|
21
|
+
</head>
|
|
22
|
+
|
|
23
|
+
<body>
|
|
24
|
+
<div id="root"></div>
|
|
25
|
+
</body>
|
|
26
|
+
|
|
27
|
+
</html>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sub-app-react-demo",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"start": "vite",
|
|
8
|
+
"build": "vite build",
|
|
9
|
+
"preview": "vite preview"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@ant-design/icons": "^6.0.0",
|
|
13
|
+
"@ice/stark-app": "^1.5.0",
|
|
14
|
+
"@lovrabet/sdk": "latest",
|
|
15
|
+
"antd": "^5.26.7",
|
|
16
|
+
"echarts": "^5.6.0",
|
|
17
|
+
"echarts-for-react": "^3.0.2",
|
|
18
|
+
"prettier": "latest",
|
|
19
|
+
"react": "^18.3.1",
|
|
20
|
+
"react-dom": "^18.3.1",
|
|
21
|
+
"react-router-dom": "^6.30.1"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/react": "^18.3.23",
|
|
25
|
+
"@types/react-dom": "^18.3.7",
|
|
26
|
+
"@vitejs/plugin-react": "^4.7.0",
|
|
27
|
+
"rollup-plugin-visualizer": "^6.0.3",
|
|
28
|
+
"typescript": "~5.8.3",
|
|
29
|
+
"vite": "^7.0.6",
|
|
30
|
+
"vite-plugin-external": "^6.2.2",
|
|
31
|
+
"vite-plugin-index-html": "^2.0.2",
|
|
32
|
+
"vite-plugin-pages": "^0.33.1"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="70" height="70" viewBox="0 0 70 70"><g><g><rect x="0" y="0" width="70" height="70" rx="12" fill="#FFFFFF" fill-opacity="1"/></g><g><g><path d="M7,26.333216076660158L7,46.010616076660156Q7.000263623,46.25591607666016,7.0126644,46.500916076660154Q7.0250652,46.74591607666016,7.0495733,46.990016076660154Q7.0740814,47.23411607666016,7.110638,47.47671607666015Q7.147194,47.71941607666015,7.195711,47.95991607666016Q7.244228,48.20051607666016,7.304589,48.438416076660154Q7.364949,48.67631607666016,7.437008,48.911016076660154Q7.509067,49.14571607666016,7.592652,49.376616076660156Q7.676236,49.607516076660154,7.771144,49.83411607666016Q7.866052,50.06071607666016,7.972056,50.282416076660155Q8.07806,50.504116076660154,8.1949,50.720316076660154Q8.31175,50.93661607666016,8.43915,51.146916076660155Q8.566559999999999,51.35721607666016,8.70421,51.561116076660156Q8.84187,51.76501607666015,8.98945,51.962016076660156Q9.13703,52.158916076660155,9.29418,52.348516076660154Q9.451319999999999,52.538016076660156,9.61766,52.719716076660156Q9.78399,52.901416076660155,9.959109999999999,53.07471607666016Q10.13424,53.24811607666015,10.317730000000001,53.41281607666016Q10.50122,53.57741607666016,10.69263,53.73301607666016Q10.88405,53.88851607666015,11.082930000000001,54.034516076660154Q11.28181,54.18061607666016,11.487680000000001,54.31681607666015Q11.69355,54.453016076660155,11.90591,54.579116076660156Q12.118269999999999,54.705116076660154,12.33661,54.820716076660155Q12.55495,54.93621607666016,12.778749999999999,55.04111607666016Q13.00254,55.14591607666016,13.231259999999999,55.23971607666016Q13.45997,55.33351607666015,13.69305,55.41611607666016Q13.92613,55.49871607666016,14.16301,55.56991607666016Q14.399899999999999,55.64101607666016,14.64002,55.700616076660154Q14.88014,55.76021607666016,15.12292,55.80801607666016Q15.3657,55.855816076660155,15.61056,55.891816076660156Q15.85541,55.92781607666016,16.10175,55.95181607666016Q16.34809,55.97581607666016,16.59532,55.987916076660156Q16.84256,55.999916076660156,17.0901,55.999916076660156L7,55.999916076660156L7,56.000116076660156L63,56.000116076660156L63,55.999916076660156L52.9099,55.999916076660156Q53.157,55.999916076660156,53.4037,55.987916076660156Q53.6505,55.975916076660155,53.8963,55.95201607666016Q54.1422,55.92811607666015,54.3866,55.892216076660155Q54.631,55.85641607666015,54.8733,55.80881607666016Q55.1156,55.76111607666016,55.3553,55.70181607666016Q55.595,55.642416076660155,55.8314,55.571616076660156Q56.0679,55.500716076660154,56.3006,55.41841607666016Q56.5333,55.336116076660154,56.7616,55.242616076660155Q56.9899,55.14921607666015,57.2134,55.044816076660155Q57.4368,54.94031607666015,57.6549,54.825216076660155Q57.8729,54.71011607666016,58.085,54.58451607666016Q58.297,54.45891607666016,58.5027,54.32321607666016Q58.7083,54.18751607666016,58.907,54.042016076660154Q59.1056,53.896516076660156,59.2969,53.741516076660155Q59.4881,53.58651607666015,59.6715,53.422416076660156Q59.8549,53.25831607666016,60.0299,53.08561607666016Q60.205,52.91281607666016,60.3713,52.73181607666016Q60.5376,52.55071607666016,60.6948,52.361816076660155Q60.8519,52.17291607666016,60.9996,51.97661607666016Q61.1472,51.78031607666016,61.285,51.577116076660154Q61.4228,51.37391607666016,61.5504,51.16421607666015Q61.678,50.954516076660155,61.795,50.73891607666015Q61.9121,50.52331607666016,62.0184,50.302316076660155Q62.1247,50.08131607666016,62.2199,49.855416076660156Q62.3152,49.62951607666016,62.3992,49.39921607666015Q62.4831,49.16891607666015,62.5556,48.93491607666016Q62.6282,48.70081607666015,62.689,48.463516076660156Q62.7499,48.22621607666016,62.799,47.98631607666016Q62.848,47.74631607666016,62.8852,47.50431607666015Q62.9224,47.26221607666016,62.9475,47.01861607666016Q62.9727,46.775116076660154,62.9858,46.53061607666016Q62.9989,46.28611607666016,62.9999,46.041216076660156L62.9999,26.333416076660157L62.9999,26.333216076660158Q62.9999,26.005916076660156,62.9837,25.679016076660155Q62.9675,25.352116076660156,62.9351,25.02631607666016Q62.9028,24.700616076660154,62.8543,24.376816076660155Q62.8058,24.053116076660157,62.7414,23.73201607666016Q62.677,23.411016076660154,62.5967,23.09351607666016Q62.5165,22.776006076660156,62.4206,22.46278607666016Q62.3247,22.149566076660157,62.2135,21.841386076660157Q62.1022,21.533206076660157,61.9758,21.23080607666016Q61.8494,20.928406076660156,61.7082,20.632516076660156Q61.567,20.336626076660156,61.4114,20.047956076660157Q61.2557,19.759296076660156,61.0859,19.478546076660155Q60.9161,19.197796076660154,60.7326,18.925646076660158Q60.5491,18.653496076660154,60.3524,18.390596076660156Q60.1556,18.127686076660154,59.9461,17.87467607666016Q59.7366,17.621656076660155,59.5148,17.379126076660157Q59.293,17.136606076660158,59.0595,16.905156076660155Q58.826,16.673716076660156,58.5813,16.453896076660158Q58.3365,16.234086076660155,58.0812,16.026446076660157Q57.826,15.818796076660156,57.5607,15.623816076660155Q57.2954,15.428836076660156,57.0208,15.246986076660157Q56.7462,15.065146076660156,56.4629,14.896866076660157Q56.1796,14.728596076660157,55.8884,14.574296076660156Q55.5971,14.420006076660156,55.2986,14.280056076660156Q55,14.140116076660156,54.6949,14.014856076660156Q54.3898,13.889597076660156,54.0788,13.779328076660157Q53.7678,13.669059076660156,53.4518,13.574045076660155Q53.1358,13.479030076660155,52.8154,13.399499076660156Q52.495,13.319968076660157,52.1711,13.256112076660155Q51.8472,13.192256076660156,51.5205,13.144229076660157Q51.1938,13.096202176660157,50.8651,13.064119676660157Q50.5365,13.032037276660157,50.2066,13.015976676660156Q49.8767,12.999916076660156,49.5465,12.999916076660156Q49.2162,12.999916076660156,48.8863,13.015976676660156Q48.5565,13.032037276660157,48.2278,13.064119676660157Q47.8991,13.096202176660157,47.5724,13.144229076660157Q47.2457,13.192256076660156,46.9218,13.256112076660155Q46.5979,13.319968076660157,46.2775,13.399499076660156Q45.9572,13.479030076660155,45.6411,13.574045076660155Q45.3251,13.669059076660156,45.0141,13.779328076660157Q44.7032,13.889597076660156,44.3981,14.014856076660156Q44.0929,14.140116076660156,43.7944,14.280056076660156Q43.4958,14.420006076660156,43.2046,14.574296076660156Q42.9133,14.728596076660157,42.63,14.896866076660157Q42.3467,15.065146076660156,42.0721,15.246986076660157Q41.7975,15.428836076660156,41.5323,15.623816076660155Q41.267,15.818796076660156,41.0117,16.026446076660157Q40.7564,16.234086076660155,40.5117,16.453896076660158Q40.267,16.673716076660156,40.0334,16.905156076660155Q39.7999,17.136606076660158,39.5781,17.379126076660157Q39.3563,17.621656076660155,39.1468,17.87467607666016Q38.9373,18.127686076660154,38.7406,18.390596076660156Q38.543800000000005,18.653496076660154,38.360299999999995,18.925646076660158Q38.1768,19.197796076660154,38.0071,19.478546076660155Q37.8373,19.759296076660156,37.6816,20.047956076660157Q37.5259,20.336626076660156,37.384699999999995,20.632516076660156Q37.2435,20.928406076660156,37.1171,21.23080607666016Q36.990700000000004,21.533206076660157,36.879400000000004,21.841386076660157Q36.7682,22.149566076660157,36.6723,22.46278607666016Q36.5764,22.776006076660156,36.4962,23.09351607666016Q36.416,23.411016076660154,36.3515,23.73201607666016Q36.287099999999995,24.053116076660157,36.238600000000005,24.376816076660155Q36.190200000000004,24.700616076660154,36.1578,25.02631607666016Q36.1254,25.352116076660156,36.1092,25.679016076660155Q36.093,26.005916076660156,36.093,26.333216076660158L36.093,26.333416076660157L33.9069,26.333416076660157L33.9069,26.333216076660158Q33.9069,26.005916076660156,33.890699999999995,25.679016076660155Q33.8745,25.352116076660156,33.8421,25.02631607666016Q33.809799999999996,24.700616076660154,33.7613,24.376816076660155Q33.7128,24.053116076660157,33.648399999999995,23.73201607666016Q33.584,23.411016076660154,33.503699999999995,23.09351607666016Q33.423500000000004,22.776006076660156,33.327600000000004,22.46278607666016Q33.231700000000004,22.149566076660157,33.1205,21.841386076660157Q33.0092,21.533206076660157,32.8828,21.23080607666016Q32.7564,20.928406076660156,32.6152,20.632516076660156Q32.474000000000004,20.336626076660156,32.3183,20.047956076660157Q32.1627,19.759296076660156,31.9929,19.478546076660155Q31.8231,19.197796076660154,31.6396,18.925646076660158Q31.4561,18.653496076660154,31.2594,18.390596076660156Q31.0626,18.127686076660154,30.8531,17.87467607666016Q30.6436,17.621656076660155,30.4218,17.379126076660157Q30.2,17.136606076660158,29.9665,16.905156076660155Q29.7329,16.673716076660156,29.4882,16.453896076660158Q29.2435,16.234086076660155,28.9882,16.026446076660157Q28.7329,15.818796076660156,28.4677,15.623816076660155Q28.2024,15.428836076660156,27.9278,15.246986076660157Q27.6532,15.065146076660156,27.3699,14.896866076660157Q27.0866,14.728596076660157,26.7954,14.574296076660156Q26.5041,14.420006076660156,26.2055,14.280056076660156Q25.907,14.140116076660156,25.6019,14.014856076660156Q25.2967,13.889597076660156,24.9858,13.779328076660157Q24.6748,13.669059076660156,24.3588,13.574045076660155Q24.0427,13.479030076660155,23.7224,13.399499076660156Q23.402,13.319968076660157,23.0781,13.256112076660155Q22.7542,13.192256076660156,22.427500000000002,13.144229076660157Q22.1008,13.096202176660157,21.772100000000002,13.064119676660157Q21.4434,13.032037276660157,21.113599999999998,13.015976676660156Q20.7837,12.999916076660156,20.4535,12.999916076660156Q20.1232,12.999916076660156,19.793300000000002,13.015976676660156Q19.4635,13.032037276660157,19.1348,13.064119676660157Q18.8061,13.096202176660157,18.4794,13.144229076660157Q18.1527,13.192256076660156,17.8288,13.256112076660155Q17.5049,13.319968076660157,17.1845,13.399499076660156Q16.86416,13.479030076660155,16.54812,13.574045076660155Q16.23208,13.669059076660156,15.92112,13.779328076660157Q15.61016,13.889597076660156,15.30504,14.014856076660156Q14.99992,14.140116076660156,14.701360000000001,14.280056076660156Q14.402809999999999,14.420006076660156,14.11154,14.574296076660156Q13.82027,14.728596076660157,13.536999999999999,14.896866076660157Q13.253720000000001,15.065146076660156,12.97912,15.246986076660157Q12.704509999999999,15.428836076660156,12.43924,15.623816076660155Q12.17397,15.818796076660156,11.918669999999999,16.026446076660157Q11.66338,16.234086076660155,11.418669999999999,16.453896076660158Q11.173960000000001,16.673716076660156,10.94043,16.905156076660155Q10.70689,17.136606076660158,10.4851,17.379126076660157Q10.26331,17.621656076660155,10.05379,17.87467607666016Q9.84428,18.127686076660154,9.64754,18.390596076660156Q9.450800000000001,18.653496076660154,9.26732,18.925646076660158Q9.083829999999999,19.197796076660154,8.91404,19.478546076660155Q8.744250000000001,19.759296076660156,8.58857,20.047956076660157Q8.43288,20.336626076660156,8.29168,20.632516076660156Q8.15047,20.928406076660156,8.02408,21.23080607666016Q7.897697,21.533206076660157,7.786434,21.841386076660157Q7.675172,22.149566076660157,7.579301,22.46278607666016Q7.483431,22.776006076660156,7.403183,23.09351607666016Q7.322936,23.411016076660154,7.258504,23.73201607666016Q7.194073,24.053116076660157,7.145613,24.376816076660155Q7.0971536,24.700616076660154,7.0647821,25.02631607666016Q7.0324105,25.352116076660156,7.0162053,25.679016076660155Q7,26.005916076660156,7,26.333216076660158ZM13.72673,46.023416076660155L13.72673,26.333416076660157L13.72681,26.333416076660157L13.72681,26.333116076660154Q13.72681,26.169416076660156,13.73491,26.006016076660156Q13.74301,25.842516076660154,13.7592,25.679616076660157Q13.77538,25.516816076660156,13.799610000000001,25.354916076660157Q13.82384,25.193016076660157,13.85606,25.03251607666016Q13.88827,24.872016076660156,13.9284,24.713216076660157Q13.96852,24.554416076660157,14.01646,24.397816076660156Q14.06439,24.24121607666016,14.12002,24.087116076660156Q14.175650000000001,23.933016076660156,14.23885,23.781816076660157Q14.30204,23.630616076660154,14.37264,23.482716076660154Q14.443249999999999,23.334816076660154,14.521090000000001,23.190416076660156Q14.59893,23.046116076660155,14.68383,22.905736076660155Q14.76872,22.765356076660154,14.86046,22.629286076660158Q14.952210000000001,22.493206076660158,15.05058,22.361756076660157Q15.14894,22.230306076660156,15.2537,22.103796076660156Q15.35846,21.977286076660157,15.46936,21.856026076660157Q15.58025,21.734766076660158,15.69702,21.619046076660155Q15.81378,21.503316076660155,15.93614,21.393416076660156Q16.05849,21.283506076660156,16.18614,21.179686076660154Q16.313789999999997,21.075856076660155,16.44643,20.978366076660155Q16.57906,20.880876076660158,16.71636,20.789956076660157Q16.85367,20.699036076660157,16.9953,20.614896076660155Q17.1369,20.530756076660158,17.282600000000002,20.453616076660158Q17.4282,20.376466076660158,17.5775,20.306486076660157Q17.7268,20.236516076660156,17.8793,20.173886076660157Q18.0319,20.111256076660155,18.1874,20.056126076660156Q18.3428,20.000996076660158,18.5009,19.953486076660155Q18.6589,19.905976076660156,18.8191,19.866216076660155Q18.979300000000002,19.826446076660154,19.141199999999998,19.794516076660155Q19.3032,19.762586076660156,19.4665,19.738576076660156Q19.6299,19.714566076660155,19.7942,19.69852607666016Q19.9585,19.682476076660155,20.1235,19.674446076660157Q20.2884,19.666416076660155,20.4535,19.666416076660155Q20.6187,19.666416076660155,20.7836,19.674446076660157Q20.9485,19.682476076660155,21.1129,19.69852607666016Q21.2772,19.714566076660155,21.4405,19.738576076660156Q21.6039,19.762586076660156,21.765900000000002,19.794516076660155Q21.927799999999998,19.826446076660154,22.088,19.866216076660155Q22.2482,19.905976076660156,22.4062,19.953486076660155Q22.5642,20.000996076660158,22.7197,20.056126076660156Q22.8752,20.111256076660155,23.0277,20.173886076660157Q23.1803,20.236516076660156,23.3296,20.306486076660157Q23.4789,20.376466076660158,23.6245,20.453616076660158Q23.7701,20.530756076660158,23.9118,20.614896076660155Q24.0534,20.699036076660157,24.1907,20.789956076660157Q24.328,20.880876076660158,24.4606,20.978366076660155Q24.5933,21.075856076660155,24.7209,21.179686076660154Q24.8486,21.283506076660156,24.9709,21.393416076660156Q25.0933,21.503316076660155,25.21,21.619046076660155Q25.3268,21.734766076660158,25.4377,21.856026076660157Q25.5486,21.977286076660157,25.6534,22.103796076660156Q25.7581,22.230306076660156,25.8565,22.361756076660157Q25.9549,22.493206076660158,26.0466,22.629286076660158Q26.1383,22.765356076660154,26.2232,22.905736076660155Q26.3081,23.046116076660155,26.386,23.190416076660156Q26.4638,23.334816076660154,26.5344,23.482716076660154Q26.605,23.630616076660154,26.6682,23.781816076660157Q26.7314,23.933016076660156,26.787,24.087116076660156Q26.8427,24.24121607666016,26.8906,24.397816076660156Q26.9385,24.554416076660157,26.9787,24.713216076660157Q27.0188,24.872016076660156,27.051,25.03251607666016Q27.0832,25.193016076660157,27.1074,25.354916076660157Q27.1317,25.516816076660156,27.1479,25.679616076660157Q27.1641,25.842516076660154,27.1722,26.006016076660156Q27.1803,26.169416076660156,27.1803,26.333116076660154L27.1803,26.333416076660157L27.1802,26.333416076660157L27.1802,33.000116076660156L42.8198,33.000116076660156L42.8198,26.333416076660157L42.8198,26.333116076660154Q42.8198,26.169416076660156,42.8279,26.006016076660156Q42.836,25.842516076660154,42.8522,25.679616076660157Q42.8684,25.516816076660156,42.8926,25.354916076660157Q42.9169,25.193016076660157,42.9491,25.03251607666016Q42.9813,24.872016076660156,43.0214,24.713216076660157Q43.0615,24.554416076660157,43.1095,24.397816076660156Q43.1574,24.24121607666016,43.213,24.087116076660156Q43.2687,23.933016076660156,43.3319,23.781816076660157Q43.3951,23.630616076660154,43.4657,23.482716076660154Q43.5363,23.334816076660154,43.6141,23.190416076660156Q43.692,23.046116076660155,43.7768,22.905736076660155Q43.8617,22.765356076660154,43.9535,22.629286076660158Q44.0452,22.493206076660158,44.1436,22.361756076660157Q44.242,22.230306076660156,44.3467,22.103796076660156Q44.4515,21.977286076660157,44.5624,21.856026076660157Q44.6733,21.734766076660158,44.79,21.619046076660155Q44.9068,21.503316076660155,45.0292,21.393416076660156Q45.1515,21.283506076660156,45.2792,21.179686076660154Q45.4068,21.075856076660155,45.5394,20.978366076660155Q45.6721,20.880876076660158,45.8094,20.789956076660157Q45.9467,20.699036076660157,46.0883,20.614896076660155Q46.23,20.530756076660158,46.3756,20.453616076660158Q46.5212,20.376466076660158,46.6705,20.306486076660157Q46.8198,20.236516076660156,46.9723,20.173886076660157Q47.1249,20.111256076660155,47.2804,20.056126076660156Q47.4359,20.000996076660158,47.5939,19.953486076660155Q47.7519,19.905976076660156,47.9121,19.866216076660155Q48.0723,19.826446076660154,48.2342,19.794516076660155Q48.3962,19.762586076660156,48.5595,19.738576076660156Q48.7229,19.714566076660155,48.8872,19.69852607666016Q49.0516,19.682476076660155,49.2165,19.674446076660157Q49.3814,19.666416076660155,49.5466,19.666416076660155Q49.7117,19.666416076660155,49.8766,19.674446076660157Q50.0415,19.682476076660155,50.2059,19.69852607666016Q50.3702,19.714566076660155,50.5336,19.738576076660156Q50.6969,19.762586076660156,50.8589,19.794516076660155Q51.0208,19.826446076660154,51.181,19.866216076660155Q51.3412,19.905976076660156,51.4992,19.953486076660155Q51.6572,20.000996076660158,51.8127,20.056126076660156Q51.9682,20.111256076660155,52.1208,20.173886076660157Q52.2733,20.236516076660156,52.4226,20.306486076660157Q52.5719,20.376466076660158,52.7175,20.453616076660158Q52.8631,20.530756076660158,53.0048,20.614896076660155Q53.1464,20.699036076660157,53.2837,20.789956076660157Q53.421,20.880876076660158,53.5537,20.978366076660155Q53.6863,21.075856076660155,53.8139,21.179686076660154Q53.9416,21.283506076660156,54.0639,21.393416076660156Q54.1863,21.503316076660155,54.3031,21.619046076660155Q54.4198,21.734766076660158,54.5307,21.856026076660157Q54.6416,21.977286076660157,54.7464,22.103796076660156Q54.8511,22.230306076660156,54.9495,22.361756076660157Q55.0479,22.493206076660158,55.1396,22.629286076660158Q55.2314,22.765356076660154,55.3163,22.905736076660155Q55.4011,23.046116076660155,55.479,23.190416076660156Q55.5568,23.334816076660154,55.6274,23.482716076660154Q55.698,23.630616076660154,55.7612,23.781816076660157Q55.8244,23.933016076660156,55.8801,24.087116076660156Q55.9357,24.24121607666016,55.9836,24.397816076660156Q56.0316,24.554416076660157,56.0717,24.713216076660157Q56.1118,24.872016076660156,56.144,25.03251607666016Q56.1762,25.193016076660157,56.2005,25.354916076660157Q56.2247,25.516816076660156,56.2409,25.679616076660157Q56.2571,25.842516076660154,56.2652,26.006016076660156Q56.2733,26.169416076660156,56.2733,26.333116076660154L56.2733,26.333416076660157L56.2732,26.333416076660157L56.2732,46.03291607666016Q56.2716,46.19561607666016,56.2539,46.35741607666016Q56.2363,46.519116076660154,56.2029,46.67851607666016Q56.1695,46.837816076660154,56.1205,46.99311607666016Q56.0716,47.148416076660155,56.0077,47.29831607666016Q55.9437,47.448116076660156,55.8653,47.59111607666016Q55.7869,47.73411607666016,55.6949,47.86881607666015Q55.6028,48.00361607666016,55.4979,48.12881607666016Q55.3931,48.25401607666016,55.2764,48.368416076660154Q55.1597,48.48291607666015,55.0324,48.58561607666016Q54.905,48.68831607666016,54.7681,48.77821607666016Q54.6313,48.86811607666016,54.4863,48.94431607666016Q54.3412,49.020616076660154,54.1894,49.082516076660156Q54.0375,49.14441607666016,53.8803,49.19131607666016Q53.7231,49.238316076660155,53.5621,49.269816076660156Q53.401,49.30141607666015,53.2376,49.31721607666016Q53.0742,49.333116076660154,52.91,49.333116076660154L52.9099,49.333116076660154L52.9099,49.33321607666016L56.2732,49.33321607666016L56.2732,49.33341607666016L13.72673,49.33341607666016L13.72672,49.33321607666016L17.0901,49.33321607666016L17.0901,49.333116076660154L17.09,49.333116076660154Q16.92552,49.333116076660154,16.76182,49.31721607666016Q16.59812,49.30131607666016,16.43677,49.26961607666016Q16.27542,49.237916076660156,16.11795,49.190816076660155Q15.96049,49.143716076660155,15.80842,49.081616076660154Q15.65634,49.01951607666015,15.51111,48.94301607666016Q15.36587,48.86641607666016,15.22887,48.776216076660155Q15.09186,48.68601607666016,14.96439,48.58301607666016Q14.83692,48.480016076660156,14.7202,48.36511607666016Q14.603480000000001,48.25021607666016,14.498619999999999,48.12461607666015Q14.39377,47.999016076660155,14.30178,47.86391607666015Q14.20979,47.72881607666016,14.13155,47.58541607666016Q14.05331,47.44201607666016,13.989550000000001,47.29171607666016Q13.925799999999999,47.14141607666016,13.87715,46.985716076660154Q13.82849,46.83001607666016,13.7954,46.67031607666016Q13.76231,46.510616076660156,13.7451,46.348516076660154Q13.72789,46.18641607666016,13.72673,46.023416076660155ZM30.3754,39.33321607666016L30.3754,42.66671607666015Q30.3754,42.83051607666016,30.3592,42.99351607666016Q30.343,43.15641607666016,30.3108,43.31701607666015Q30.2785,43.477616076660155,30.2306,43.634316076660156Q30.1826,43.791016076660156,30.1194,43.942316076660155Q30.0562,44.093616076660155,29.9783,44.23801607666016Q29.9004,44.38251607666015,29.8086,44.51861607666015Q29.7168,44.654816076660154,29.612,44.78141607666016Q29.5071,44.90801607666016,29.3903,45.02371607666016Q29.2735,45.13951607666016,29.1457,45.243416076660154Q29.018,45.34731607666016,28.8806,45.43831607666016Q28.7432,45.52931607666016,28.5975,45.60651607666016Q28.4518,45.683716076660154,28.2991,45.74631607666016Q28.1465,45.80901607666016,27.9884,45.85651607666016Q27.8303,45.90411607666016,27.6682,45.93601607666016Q27.5061,45.968016076660156,27.3417,45.984016076660154Q27.1773,46.000116076660156,27.012,46.000116076660156Q26.8468,46.000116076660156,26.6824,45.984016076660154Q26.5179,45.968016076660156,26.3559,45.93601607666016Q26.1938,45.90411607666016,26.0357,45.85651607666016Q25.8776,45.80901607666016,25.7249,45.74631607666016Q25.5723,45.683716076660154,25.4266,45.60651607666016Q25.2808,45.52931607666016,25.1435,45.43831607666016Q25.0061,45.34731607666016,24.8783,45.243416076660154Q24.7506,45.13951607666016,24.6338,45.02371607666016Q24.517,44.90801607666016,24.4121,44.78141607666016Q24.3073,44.654816076660154,24.2155,44.51861607666015Q24.1237,44.38251607666015,24.0458,44.238116076660155Q23.9679,44.093616076660155,23.9047,43.942316076660155Q23.8415,43.79111607666016,23.7935,43.634316076660156Q23.7455,43.477616076660155,23.7133,43.31701607666015Q23.6811,43.15641607666016,23.6649,42.99351607666016Q23.6487,42.83051607666016,23.6487,42.66671607666015L23.6487,39.33321607666016Q23.6487,39.16951607666016,23.6649,39.006516076660155Q23.6811,38.84351607666015,23.7133,38.682916076660156Q23.7455,38.52231607666016,23.7935,38.36561607666016Q23.8415,38.20891607666016,23.9047,38.05761607666015Q23.9679,37.90631607666016,24.0458,37.76191607666016Q24.1237,37.61751607666015,24.2155,37.48131607666016Q24.3073,37.34521607666016,24.4121,37.218616076660155Q24.517,37.09201607666016,24.6338,36.97621607666015Q24.7506,36.86041607666016,24.8783,36.756516076660155Q25.0061,36.65261607666015,25.1435,36.56171607666016Q25.2808,36.47071607666015,25.4266,36.393516076660156Q25.5723,36.31631607666016,25.7249,36.25361607666015Q25.8776,36.191016076660155,26.0357,36.14341607666016Q26.1938,36.09591607666016,26.3559,36.063916076660156Q26.5179,36.032016076660156,26.6824,36.01601607666016Q26.8468,35.999916076660156,27.012,35.999916076660156Q27.1773,35.999916076660156,27.3417,36.01601607666016Q27.5061,36.032016076660156,27.6682,36.063916076660156Q27.8303,36.09591607666016,27.9884,36.14341607666016Q28.1465,36.191016076660155,28.2991,36.25361607666015Q28.4518,36.31631607666016,28.5975,36.393516076660156Q28.7432,36.47071607666015,28.8806,36.56171607666016Q29.018,36.65261607666015,29.1457,36.756516076660155Q29.2735,36.86041607666016,29.3903,36.97621607666015Q29.5071,37.09201607666016,29.612,37.218616076660155Q29.7168,37.34521607666016,29.8086,37.48131607666016Q29.9004,37.61751607666015,29.9783,37.76191607666016Q30.0562,37.90631607666016,30.1194,38.05761607666015Q30.1826,38.20891607666016,30.2306,38.36561607666016Q30.2785,38.52231607666016,30.3108,38.682916076660156Q30.343,38.84351607666015,30.3592,39.006516076660155Q30.3754,39.16951607666016,30.3754,39.33321607666016ZM46.3515,39.33321607666016L46.3515,42.66671607666015Q46.3515,42.83051607666016,46.3353,42.99351607666016Q46.3191,43.15641607666016,46.2869,43.31701607666015Q46.2546,43.477616076660155,46.2067,43.634316076660156Q46.1587,43.791016076660156,46.0955,43.942316076660155Q46.0322,44.093616076660155,45.9543,44.23801607666016Q45.8764,44.38251607666015,45.7846,44.51861607666015Q45.6929,44.654816076660154,45.588,44.78141607666016Q45.4832,44.90801607666016,45.3664,45.02371607666016Q45.2495,45.13951607666016,45.1218,45.243416076660154Q44.9941,45.34731607666016,44.8567,45.43831607666016Q44.7193,45.52931607666016,44.5736,45.60651607666016Q44.4279,45.683716076660154,44.2752,45.74631607666016Q44.1226,45.80901607666016,43.9645,45.85651607666016Q43.8063,45.90411607666016,43.6443,45.93601607666016Q43.4822,45.968016076660156,43.3178,45.984016076660154Q43.1534,46.000116076660156,42.9881,46.000116076660156Q42.8229,46.000116076660156,42.6585,45.984016076660154Q42.494,45.968016076660156,42.332,45.93601607666016Q42.1699,45.90411607666016,42.0118,45.85651607666016Q41.8537,45.80901607666016,41.701,45.74631607666016Q41.5484,45.683716076660154,41.4026,45.60651607666016Q41.2569,45.52931607666016,41.1195,45.43831607666016Q40.9821,45.34731607666016,40.8544,45.243416076660154Q40.7267,45.13951607666016,40.6099,45.02371607666016Q40.493,44.90801607666016,40.3882,44.78141607666016Q40.2834,44.654816076660154,40.1916,44.51861607666015Q40.0998,44.38251607666015,40.0219,44.238116076660155Q39.944,44.093616076660155,39.8808,43.942316076660155Q39.8175,43.79111607666016,39.7696,43.634316076660156Q39.7216,43.477616076660155,39.6894,43.31701607666015Q39.6571,43.15641607666016,39.641,42.99351607666016Q39.6248,42.83051607666016,39.6248,42.66671607666015L39.6248,39.33321607666016Q39.6248,39.16951607666016,39.641,39.006516076660155Q39.6571,38.84351607666015,39.6894,38.682916076660156Q39.7216,38.52231607666016,39.7696,38.36561607666016Q39.8175,38.20891607666016,39.8808,38.05761607666015Q39.944,37.90631607666016,40.0219,37.76191607666016Q40.0998,37.61751607666015,40.1916,37.48131607666016Q40.2834,37.34521607666016,40.3882,37.218616076660155Q40.493,37.09201607666016,40.6099,36.97621607666015Q40.7267,36.86041607666016,40.8544,36.756516076660155Q40.9821,36.65261607666015,41.1195,36.56171607666016Q41.2569,36.47071607666015,41.4026,36.393516076660156Q41.5484,36.31631607666016,41.701,36.25361607666015Q41.8537,36.191016076660155,42.0118,36.14341607666016Q42.1699,36.09591607666016,42.332,36.063916076660156Q42.494,36.032016076660156,42.6585,36.01601607666016Q42.8229,35.999916076660156,42.9881,35.999916076660156Q43.1534,35.999916076660156,43.3178,36.01601607666016Q43.4822,36.032016076660156,43.6443,36.063916076660156Q43.8063,36.09591607666016,43.9645,36.14341607666016Q44.1226,36.191016076660155,44.2752,36.25361607666015Q44.4279,36.31631607666016,44.5736,36.393516076660156Q44.7193,36.47071607666015,44.8567,36.56171607666016Q44.9941,36.65261607666015,45.1218,36.756516076660155Q45.2495,36.86041607666016,45.3664,36.97621607666015Q45.4832,37.09201607666016,45.588,37.218616076660155Q45.6929,37.34521607666016,45.7846,37.48131607666016Q45.8764,37.61751607666015,45.9543,37.76191607666016Q46.0322,37.90631607666016,46.0955,38.05761607666015Q46.1587,38.20891607666016,46.2067,38.36561607666016Q46.2546,38.52231607666016,46.2869,38.682916076660156Q46.3191,38.84351607666015,46.3353,39.006516076660155Q46.3515,39.16951607666016,46.3515,39.33321607666016Z" fill-rule="evenodd" fill="#000000" fill-opacity="1"/></g></g></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|