@finema/finework-layer 2.0.61 → 2.0.63
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/CHANGELOG.md +8 -0
- package/app/app.vue +1 -1
- package/app/assets/css/main.css +5 -0
- package/app/components/HelpHub/Action.vue +28 -0
- package/app/components/HelpHub/ManualForm.vue +224 -0
- package/app/components/HelpHub/ManualViewer.vue +464 -0
- package/app/components/HelpHub/index.vue +116 -0
- package/app/composables/useAuth.ts +50 -48
- package/app/composables/useCurrentModule.ts +9 -0
- package/app/constants/module-route.ts +48 -0
- package/app/loaders/manual/manual.ts +60 -0
- package/docs/help-hub.md +100 -0
- package/package.json +1 -1
- package/public/admin/asset.svg +15 -0
- package/public/admin/clock-in-admin-logo.svg +28 -0
- package/public/admin/clock-in-logo.svg +22 -0
- package/public/admin/contract.svg +36 -0
- package/public/admin/cost-sheet.svg +14 -0
- package/public/admin/document.svg +24 -0
- package/public/admin/efactoring.svg +18 -0
- package/public/admin/employee.svg +9 -0
- package/public/admin/evaluation.svg +24 -0
- package/public/admin/finesign.png +0 -0
- package/public/admin/guarantee.svg +20 -0
- package/public/admin/loan.svg +30 -0
- package/public/admin/newsletter.svg +18 -0
- package/public/admin/pmo-logo.svg +23 -0
- package/public/admin/pmo_delivery.svg +16 -0
- package/public/admin/pmo_presale_bidding.svg +25 -0
- package/public/admin/pmo_setup.svg +13 -0
- package/public/admin/pmo_warranty.svg +21 -0
- package/public/admin/presale_tool.svg +38 -0
- package/public/admin/purchase.svg +17 -0
- package/public/admin/quotation.svg +16 -0
- package/public/admin/recruit.svg +16 -0
- package/public/admin/report.svg +36 -0
- package/public/admin/request-admin.svg +39 -0
- package/public/admin/request.svg +37 -0
- package/public/admin/resource-allocation.svg +21 -0
- package/public/admin/resource.svg +15 -0
- package/public/admin/spider-web.png +0 -0
- package/public/admin/super-admin-logo.svg +17 -0
- package/public/admin/support.svg +14 -0
- package/public/admin/timesheet-admin-logo.svg +82 -0
- package/public/admin/timesheet-logo.svg +80 -0
- package/public/admin/todo.svg +16 -0
- package/public/admin/tor.svg +38 -0
- package/app/components/FeedbackTicket/index.vue +0 -27
|
@@ -116,63 +116,63 @@ export enum UserModule {
|
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
export const UserModuleLabel = {
|
|
119
|
+
[UserModule.ASSET]: 'Asset',
|
|
119
120
|
[UserModule.CHECKIN]: 'Clock-In',
|
|
120
|
-
[UserModule.TIMESHEET]: 'Timesheet',
|
|
121
|
-
[UserModule.TODO]: 'Todo',
|
|
122
|
-
[UserModule.PMO]: 'PMO',
|
|
123
|
-
[UserModule.REQUEST]: 'Request',
|
|
124
|
-
[UserModule.SETTING]: 'Setting',
|
|
125
|
-
[UserModule.QUOTATION]: 'Quotation',
|
|
126
|
-
[UserModule.COSTSHEET]: 'Cost Sheet',
|
|
127
|
-
[UserModule.NEWSLETTER]: 'Newsletter',
|
|
128
121
|
[UserModule.CONTRACT]: 'Contract',
|
|
129
|
-
[UserModule.
|
|
130
|
-
[UserModule.
|
|
131
|
-
[UserModule.ASSET]: 'Asset',
|
|
132
|
-
[UserModule.RECRUIT]: 'Recruit',
|
|
133
|
-
[UserModule.LG]: 'งบค้ำประกัน',
|
|
122
|
+
[UserModule.COSTSHEET]: 'Cost Sheet',
|
|
123
|
+
[UserModule.DOCUMENT]: 'Document',
|
|
134
124
|
[UserModule.EFACTORING]: 'E-Factoring',
|
|
135
|
-
[UserModule.
|
|
125
|
+
[UserModule.EMPLOYEE]: 'Employee',
|
|
126
|
+
[UserModule.EVALUATION]: 'Evaluation',
|
|
127
|
+
[UserModule.PMO_SETUP]: 'Lead in',
|
|
136
128
|
[UserModule.LOAN]: 'Loan',
|
|
137
|
-
[UserModule.
|
|
129
|
+
[UserModule.NEWSLETTER]: 'Newsletter',
|
|
130
|
+
[UserModule.PMO]: 'PMO',
|
|
131
|
+
[UserModule.PMO_PRESALE_BIDDING]: 'Presale & Bidding',
|
|
138
132
|
[UserModule.TOR]: 'Presales Tools',
|
|
133
|
+
[UserModule.PMO_DELIVERY]: 'Project Delivery',
|
|
134
|
+
[UserModule.PURCHASE]: 'Purchase',
|
|
135
|
+
[UserModule.QUOTATION]: 'Quotation',
|
|
136
|
+
[UserModule.RECRUIT]: 'Recruit',
|
|
137
|
+
[UserModule.REQUEST]: 'Request',
|
|
138
|
+
[UserModule.RESOURCE]: 'Resource',
|
|
139
|
+
[UserModule.RESOURCE_ALLOCATION]: 'Resource Allocation',
|
|
140
|
+
[UserModule.SETTING]: 'Setting',
|
|
139
141
|
[UserModule.SUPPORT]: 'Support',
|
|
140
|
-
[UserModule.
|
|
141
|
-
[UserModule.
|
|
142
|
-
[UserModule.PMO_DELIVERY]: 'Delivery',
|
|
142
|
+
[UserModule.TIMESHEET]: 'Timesheet',
|
|
143
|
+
[UserModule.TODO]: 'Todo',
|
|
143
144
|
[UserModule.PMO_WARRANTY]: 'Warranty',
|
|
144
|
-
[UserModule.
|
|
145
|
-
[UserModule.DOCUMENT]: 'Document',
|
|
145
|
+
[UserModule.LG]: 'งบค้ำประกัน',
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
export const UserModuleLogo = {
|
|
149
|
+
[UserModule.ASSET]: '/admin/asset.svg',
|
|
149
150
|
[UserModule.CHECKIN]: '/admin/clock-in-logo.svg',
|
|
150
|
-
[UserModule.TIMESHEET]: '/admin/timesheet-logo.svg',
|
|
151
|
-
[UserModule.TODO]: '/admin/todo.svg',
|
|
152
|
-
[UserModule.PMO]: '/admin/pmo-logo.svg',
|
|
153
|
-
[UserModule.REQUEST]: '/admin/request.svg',
|
|
154
|
-
[UserModule.SETTING]: '/admin/report.svg',
|
|
155
|
-
[UserModule.QUOTATION]: '/admin/quotation.svg',
|
|
156
|
-
[UserModule.COSTSHEET]: '/admin/cost-sheet.svg',
|
|
157
|
-
[UserModule.NEWSLETTER]: '/admin/newsletter.svg',
|
|
158
151
|
[UserModule.CONTRACT]: '/admin/contract.svg',
|
|
159
|
-
[UserModule.
|
|
160
|
-
[UserModule.
|
|
161
|
-
[UserModule.ASSET]: '/admin/asset.svg',
|
|
162
|
-
[UserModule.RECRUIT]: '/admin/recruit.svg',
|
|
163
|
-
[UserModule.LG]: '/admin/guarantee.svg',
|
|
152
|
+
[UserModule.COSTSHEET]: '/admin/cost-sheet.svg',
|
|
153
|
+
[UserModule.DOCUMENT]: '/admin/document.svg',
|
|
164
154
|
[UserModule.EFACTORING]: '/admin/efactoring.svg',
|
|
165
|
-
[UserModule.
|
|
166
|
-
[UserModule.
|
|
167
|
-
[UserModule.PURCHASE]: '/admin/purchase.svg',
|
|
168
|
-
[UserModule.TOR]: '/admin/presale_tool.svg',
|
|
169
|
-
[UserModule.SUPPORT]: '/admin/support.svg',
|
|
155
|
+
[UserModule.EMPLOYEE]: '/admin/employee.svg',
|
|
156
|
+
[UserModule.EVALUATION]: '/admin/evaluation.svg',
|
|
170
157
|
[UserModule.PMO_SETUP]: '/admin/pmo_setup.svg',
|
|
158
|
+
[UserModule.LOAN]: '/admin/loan.svg',
|
|
159
|
+
[UserModule.NEWSLETTER]: '/admin/newsletter.svg',
|
|
160
|
+
[UserModule.PMO]: '/admin/pmo-logo.svg',
|
|
171
161
|
[UserModule.PMO_PRESALE_BIDDING]: '/admin/pmo_presale_bidding.svg',
|
|
162
|
+
[UserModule.TOR]: '/admin/presale_tool.svg',
|
|
172
163
|
[UserModule.PMO_DELIVERY]: '/admin/pmo_delivery.svg',
|
|
173
|
-
[UserModule.
|
|
164
|
+
[UserModule.PURCHASE]: '/admin/purchase.svg',
|
|
165
|
+
[UserModule.QUOTATION]: '/admin/quotation.svg',
|
|
166
|
+
[UserModule.RECRUIT]: '/admin/recruit.svg',
|
|
167
|
+
[UserModule.REQUEST]: '/admin/request.svg',
|
|
168
|
+
[UserModule.RESOURCE]: '/admin/resource.svg',
|
|
174
169
|
[UserModule.RESOURCE_ALLOCATION]: '/admin/resource-allocation.svg',
|
|
175
|
-
[UserModule.
|
|
170
|
+
[UserModule.SETTING]: '/admin/report.svg',
|
|
171
|
+
[UserModule.SUPPORT]: '/admin/support.svg',
|
|
172
|
+
[UserModule.TIMESHEET]: '/admin/timesheet-logo.svg',
|
|
173
|
+
[UserModule.TODO]: '/admin/todo.svg',
|
|
174
|
+
[UserModule.PMO_WARRANTY]: '/admin/pmo_warranty.svg',
|
|
175
|
+
[UserModule.LG]: '/admin/guarantee.svg',
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
// Admin-console variants of a module (shown as their own app in the portal)
|
|
@@ -190,14 +190,16 @@ export const UserModuleAdminLogo = {
|
|
|
190
190
|
[UserModule.SETTING]: '/admin/report.svg',
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
-
export const UserModuleOptions = Object.entries(UserModuleLabel)
|
|
194
|
-
value,
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
193
|
+
export const UserModuleOptions = Object.entries(UserModuleLabel)
|
|
194
|
+
.map(([value, label]) => ({
|
|
195
|
+
value,
|
|
196
|
+
label,
|
|
197
|
+
avatar: {
|
|
198
|
+
src: UserModuleLogo[value as keyof typeof UserModuleLogo],
|
|
199
|
+
alt: label,
|
|
200
|
+
},
|
|
201
|
+
}))
|
|
202
|
+
.sort((a, b) => a.label.localeCompare(b.label))
|
|
201
203
|
|
|
202
204
|
export interface IUserAccessLevel {
|
|
203
205
|
used_id: string
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { UserModule } from '#layer/app/composables/useAuth'
|
|
2
|
+
import { getModuleFromPath } from '#layer/app/constants/module-route'
|
|
3
|
+
|
|
4
|
+
/** The app/module the user is currently in, derived from the route. `null` on global pages. */
|
|
5
|
+
export const useCurrentModule = () => {
|
|
6
|
+
const route = useRoute()
|
|
7
|
+
|
|
8
|
+
return computed<UserModule | null>(() => getModuleFromPath(route.path))
|
|
9
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { UserModule } from '#layer/app/composables/useAuth'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Route-path prefix -> the app/module it belongs to.
|
|
5
|
+
* Order matters: longer / more specific prefixes must come first.
|
|
6
|
+
*/
|
|
7
|
+
export const MODULE_ROUTE_PREFIXES: readonly (readonly [string, UserModule])[] = [
|
|
8
|
+
['/timesheet-admin', UserModule.TIMESHEET],
|
|
9
|
+
['/timesheet', UserModule.TIMESHEET],
|
|
10
|
+
['/clockin-admin', UserModule.CHECKIN],
|
|
11
|
+
['/clockin', UserModule.CHECKIN],
|
|
12
|
+
['/pmo-setup', UserModule.PMO_SETUP],
|
|
13
|
+
['/pmo-presale-bidding', UserModule.PMO_PRESALE_BIDDING],
|
|
14
|
+
['/pmo-delivery', UserModule.PMO_DELIVERY],
|
|
15
|
+
['/pmo-warranty', UserModule.PMO_WARRANTY],
|
|
16
|
+
['/pmo', UserModule.PMO],
|
|
17
|
+
['/resource-allocation', UserModule.RESOURCE_ALLOCATION],
|
|
18
|
+
['/cost-sheet', UserModule.COSTSHEET],
|
|
19
|
+
['/e-factoring', UserModule.EFACTORING],
|
|
20
|
+
['/legal', UserModule.CONTRACT],
|
|
21
|
+
['/quotation', UserModule.QUOTATION],
|
|
22
|
+
['/newsletter', UserModule.NEWSLETTER],
|
|
23
|
+
['/announcement', UserModule.NEWSLETTER],
|
|
24
|
+
['/announcements', UserModule.NEWSLETTER],
|
|
25
|
+
['/todo', UserModule.TODO],
|
|
26
|
+
['/employee', UserModule.EMPLOYEE],
|
|
27
|
+
['/asset', UserModule.ASSET],
|
|
28
|
+
['/request-admin', UserModule.REQUEST],
|
|
29
|
+
['/request', UserModule.REQUEST],
|
|
30
|
+
['/resource', UserModule.RESOURCE],
|
|
31
|
+
['/lg', UserModule.LG],
|
|
32
|
+
['/evaluation', UserModule.EVALUATION],
|
|
33
|
+
['/loan', UserModule.LOAN],
|
|
34
|
+
['/purchase', UserModule.PURCHASE],
|
|
35
|
+
['/tor', UserModule.TOR],
|
|
36
|
+
['/support', UserModule.SUPPORT],
|
|
37
|
+
['/recruit', UserModule.RECRUIT],
|
|
38
|
+
['/docs-management', UserModule.DOCUMENT],
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
/** Resolve the current app/module from a route path, or `null` for global pages. */
|
|
42
|
+
export const getModuleFromPath = (path: string): UserModule | null => {
|
|
43
|
+
const hit = MODULE_ROUTE_PREFIXES.find(
|
|
44
|
+
([prefix]) => path === prefix || path.startsWith(`${prefix}/`),
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
return hit ? hit[1] : null
|
|
48
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export interface IManualFile {
|
|
2
|
+
id: string
|
|
3
|
+
name: string
|
|
4
|
+
url: string
|
|
5
|
+
path: string
|
|
6
|
+
size: number
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface IManual {
|
|
10
|
+
id: string
|
|
11
|
+
app: string
|
|
12
|
+
name: string
|
|
13
|
+
description: string | null
|
|
14
|
+
file_id: string
|
|
15
|
+
sort_order: number
|
|
16
|
+
file: IManualFile | null
|
|
17
|
+
created_at: string
|
|
18
|
+
updated_at: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** All manuals the signed-in user is allowed to see (filtered server-side). */
|
|
22
|
+
export const useManualListLoader = () => {
|
|
23
|
+
const options = useRequestOptions()
|
|
24
|
+
|
|
25
|
+
return useObjectLoader<IManual[]>({
|
|
26
|
+
method: 'GET',
|
|
27
|
+
url: '/manuals',
|
|
28
|
+
getRequestOptions: options.auth,
|
|
29
|
+
})
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export const useManualAddLoader = () => {
|
|
33
|
+
const options = useRequestOptions()
|
|
34
|
+
|
|
35
|
+
return useObjectLoader<IManual>({
|
|
36
|
+
method: 'POST',
|
|
37
|
+
url: '/manuals',
|
|
38
|
+
getRequestOptions: options.auth,
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export const useManualUpdateLoader = () => {
|
|
43
|
+
const options = useRequestOptions()
|
|
44
|
+
|
|
45
|
+
return useObjectLoader<IManual>({
|
|
46
|
+
method: 'PUT',
|
|
47
|
+
url: '/manuals/:id',
|
|
48
|
+
getRequestOptions: options.auth,
|
|
49
|
+
})
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export const useManualDeleteLoader = () => {
|
|
53
|
+
const options = useRequestOptions()
|
|
54
|
+
|
|
55
|
+
return useObjectLoader({
|
|
56
|
+
method: 'DELETE',
|
|
57
|
+
url: '/manuals/:id',
|
|
58
|
+
getRequestOptions: options.auth,
|
|
59
|
+
})
|
|
60
|
+
}
|
package/docs/help-hub.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Help Hub — Feedback + Manual
|
|
2
|
+
|
|
3
|
+
Visual mockup (canvas, เวอร์ชันแรก): https://claude.ai/code/artifact/337ac046-e1e5-4553-803d-f5a18a406796
|
|
4
|
+
|
|
5
|
+
> **Status: implemented (API-backed).**
|
|
6
|
+
> ปุ่ม Feedback เดิม → รวมเป็นปุ่มวงกลม "Help Hub" ปุ่มเดียว กดแล้วเด้ง
|
|
7
|
+
> **ส่ง Feedback** + **คู่มือการใช้งาน** ขึ้นบน. คู่มือดึงจาก API `/manuals`,
|
|
8
|
+
> Super Admin ของแต่ละแอพ เพิ่ม/แก้/ลบ/อัปโหลดได้จากใน panel เลย.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1. Trigger (ปุ่มวงกลม) — [`HelpHub/index.vue`](../app/components/HelpHub/index.vue)
|
|
13
|
+
|
|
14
|
+
| | ค่า |
|
|
15
|
+
| --- | --- |
|
|
16
|
+
| ตำแหน่ง/ขนาด | `fixed right-7 bottom-7 z-40 md:bottom-8.5` · `size-10` mobile / `md:size-12` |
|
|
17
|
+
| ปิด | `bg-primary-600` + `ring-2 ring-primary-200`, ไอคอน `ph:question` |
|
|
18
|
+
| เปิด | `bg-gray-900`, ไอคอน `ph:x` (หมุน 90°) |
|
|
19
|
+
| ซ่อนตอนพิมพ์ | `print:hidden` |
|
|
20
|
+
|
|
21
|
+
- กด → เด้ง `HelpHubAction` 2 อัน (Feedback บน / คู่มือ ล่าง) ด้วย keyframe `helpHubDialIn`
|
|
22
|
+
(`main.css`) ผ่าน `motion-safe:animate-[...]` — **ไม่ใช้ `<Transition>`** (leave-element เคยทับปุ่ม)
|
|
23
|
+
- ปิด dial: กดปุ่ม / กด scrim (`fixed inset-0` โปร่งใส) / `Esc` / เปลี่ยน route
|
|
24
|
+
- action "คู่มือการใช้งาน" แสดงเมื่อ `manuals.length > 0` **หรือ** ผู้ใช้เป็น Super Admin
|
|
25
|
+
(ของแอพปัจจุบัน หรือ `setting:SUPER`) — เพื่อให้ admin เปิดเข้าไปเพิ่มคู่มือแรกได้
|
|
26
|
+
|
|
27
|
+
## 2. Manual viewer — [`HelpHub/ManualViewer.vue`](../app/components/HelpHub/ManualViewer.vue)
|
|
28
|
+
|
|
29
|
+
`Slideover side="right"` `max-w-[560px]` **`:modal="false"`** (ไม่ dim พื้นหลัง) · 3 โหมดในตัว
|
|
30
|
+
|
|
31
|
+
| โหมด | อะไร |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| `list` | เปิดมาเจอก่อนเสมอ. คู่มือ group ตามแอพ (แอพหน้าปัจจุบันขึ้นก่อน + badge "หน้านี้"), แต่ละแถว = ชื่อ + คำอธิบาย/วันที่ปรับปรุง. Super Admin เห็นปุ่ม edit/ลบ ต่อแถว + "+ เพิ่มคู่มือ" ที่ footer. Footer: "ไม่เจอคู่มือ? ส่ง Feedback" |
|
|
34
|
+
| `view` | เลือกแถว → `<iframe :src="file.url + '#view=FitH'">`. header: `←` กลับ list · เปิดแท็บใหม่ · ดาวน์โหลด · (แก้ไข ถ้าเป็น admin) |
|
|
35
|
+
| `form` | [`HelpHub/ManualForm.vue`](../app/components/HelpHub/ManualForm.vue) — เพิ่ม/แก้: แอพ (select, disable ตอนแก้), ชื่อ, คำอธิบาย, ไฟล์ PDF (`UPLOAD_DROPZONE_AUTO`, `filePublic`, `.pdf`, ≤20MB) |
|
|
36
|
+
|
|
37
|
+
- ลบ → `Modal` ยืนยัน (ไฟล์ PDF ยังอยู่ในคลังไฟล์)
|
|
38
|
+
- reopen → กลับ `list` เสมอ
|
|
39
|
+
|
|
40
|
+
## 3. Loaders — [`app/loaders/manual/manual.ts`](../app/loaders/manual/manual.ts)
|
|
41
|
+
|
|
42
|
+
| loader | เรียก |
|
|
43
|
+
| --- | --- |
|
|
44
|
+
| `useManualListLoader` | `GET /manuals` — [`HelpHub/index.vue`](../app/components/HelpHub/index.vue) fetch ครั้งเดียวตอน mount, ส่ง `manuals` เป็น prop ให้ viewer, viewer emit `refetch` หลัง CRUD |
|
|
45
|
+
| `useManualAddLoader` | `POST /manuals` |
|
|
46
|
+
| `useManualUpdateLoader` | `PUT /manuals/:id` (`run({ urlBind: { id }, data })`) |
|
|
47
|
+
| `useManualDeleteLoader` | `DELETE /manuals/:id` |
|
|
48
|
+
|
|
49
|
+
`IManual` = `{ id, app, name, description, file_id, sort_order, file: { id, url, name, path, size }, created_at, updated_at }`
|
|
50
|
+
|
|
51
|
+
## 4. "แอพปัจจุบัน" จาก route — ไม่เปลี่ยน
|
|
52
|
+
|
|
53
|
+
[`app/constants/module-route.ts`](../app/constants/module-route.ts) `MODULE_ROUTE_PREFIXES` + `getModuleFromPath()` ·
|
|
54
|
+
[`app/composables/useCurrentModule.ts`](../app/composables/useCurrentModule.ts) `useCurrentModule()`
|
|
55
|
+
|
|
56
|
+
## 5. สิทธิ์
|
|
57
|
+
|
|
58
|
+
| การกระทำ | กติกา |
|
|
59
|
+
| --- | --- |
|
|
60
|
+
| **เห็น** คู่มือของแอพ X | มี access ระดับ USER+ ใน module X (กรองที่ API), หรือ `setting:SUPER` |
|
|
61
|
+
| **เพิ่ม/แก้/ลบ** คู่มือของแอพ X | `X:SUPER` หรือ `setting:SUPER` — เช็คทั้ง API (`helpers.CanManageManual`) และ frontend (ซ่อน/โชว์ปุ่ม) |
|
|
62
|
+
| ย้ายคู่มือไปแอพอื่น | ต้อง SUPER ทั้งแอพต้นทางและปลายทาง |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## API (finework-api)
|
|
67
|
+
|
|
68
|
+
โมดูลใหม่ `modules/manual/` (controller / service / repo / requests / dto / http) แบบเดียวกับ `feedback_ticket`
|
|
69
|
+
|
|
70
|
+
| ไฟล์ | |
|
|
71
|
+
| --- | --- |
|
|
72
|
+
| `prisma/schema/manuals.prisma` + `migrations/20260908120000_manuals/` | ตาราง `manuals(id, app, name, description?, file_id→files, sort_order, audit)` |
|
|
73
|
+
| `models/manual.model.go` | gorm model (`repository.Make`, ไม่เข้า gormgen) |
|
|
74
|
+
| `emsgs/manual.emsg.go` | `ManualNotFound` (404) · `ManualForbidden` (403) |
|
|
75
|
+
| `helpers/manual.go` | `CanManageManual(user, app)` (SUPER on app / setting) · `CanViewManualApp(user, app)` |
|
|
76
|
+
| `modules/manual/handlers/manual.http.go` | `GET /manuals` · `GET /manuals/:id` · `POST /manuals` · `PUT /manuals/:id` · `DELETE /manuals/:id` (ทั้งหมด `AuthMiddleware`) |
|
|
77
|
+
| `cmd/api.go` | register `manualHandlers.NewManualHTTP(e)` |
|
|
78
|
+
|
|
79
|
+
- `GET /manuals` คืน `[]Manual` ที่ user เห็นได้ (กรองใน service ตาม `CanViewManualApp`), preload `File`, เรียง `app, sort_order, created_at`
|
|
80
|
+
- `POST/PUT/DELETE` เช็ค `CanManageManual` ใน service ก่อนเสมอ
|
|
81
|
+
- ไฟล์อัปโหลดแบบ **public** (`filePublic`) → `file.url` โหลดใน `<iframe>` ได้ตรง ๆ
|
|
82
|
+
- **ต้อง run migration**: `make migrate` (หรือ `prisma migrate deploy`) แล้ว deploy API ก่อน frontend ถึงจะเห็นข้อมูลจริง
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## เสร็จแล้ว / เหลือ
|
|
87
|
+
|
|
88
|
+
- [x] API module + migration + build ผ่าน (`go build ./...`)
|
|
89
|
+
- [x] Frontend: loader, `HelpHub/index.vue`, `ManualViewer.vue` (list/view/form), `ManualForm.vue`
|
|
90
|
+
- [x] ลบ `app/constants/manual.ts` (hardcode map เดิม) + `public/manuals/`
|
|
91
|
+
- [x] lint + `nuxt prepare` ผ่าน; ทดสอบ dial / viewer / empty state / form บน playground (API ยัง 404 ระหว่างยังไม่ deploy → graceful)
|
|
92
|
+
- [ ] **run migration + deploy API**
|
|
93
|
+
- [ ] (release-it จัดการ CHANGELOG + version)
|
|
94
|
+
|
|
95
|
+
## เฟสถัดไป
|
|
96
|
+
|
|
97
|
+
- ค้นหาในคู่มือ / deep link ไปหน้าที่เกี่ยวกับหน้าจอที่เปิดอยู่
|
|
98
|
+
- badge "อัปเดตใหม่" เมื่อมีคู่มือเวอร์ชันใหม่ที่ผู้ใช้ยังไม่เปิด
|
|
99
|
+
- drag เรียง `sort_order` ใน list (ตอนนี้แก้ผ่าน field ในฟอร์มยังไม่มี — เพิ่มทีหลังได้)
|
|
100
|
+
- จำแถบ/แอพล่าสุดที่เปิด
|
package/package.json
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_13426_3642)">
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M39.7212 12.2322H34.2026C34.2892 12.6076 34.3351 13.0007 34.3351 13.4052V13.4941C36.8198 14.628 38.4747 17.1295 38.4747 19.9183C38.4747 22.0835 37.4863 24.0295 35.9402 25.3258C35.9226 25.5603 35.8966 25.7947 35.8621 26.0253L35.7272 26.9394H34.411C34.2547 27.4581 34.0486 27.9599 33.7896 28.4357L34.719 29.365L34.1696 30.1074C34.0677 30.2484 33.9613 30.3833 33.8502 30.5181H42.4089V14.9207C42.4089 13.442 41.1991 12.2322 39.7205 12.2322H39.7212ZM14.8349 12.2322H10.6892C9.21053 12.2322 8.00077 13.442 8.00077 14.9207V30.5181H19.7567C19.6441 30.3833 19.5376 30.2492 19.4349 30.1074L18.8856 29.365L19.8149 28.4357C19.5629 27.9706 19.3591 27.4803 19.2043 26.9761H18.0987C14.2158 26.9761 11.0401 23.8012 11.0401 19.9175C11.0401 17.2069 12.6061 14.7636 14.982 13.5891C14.8908 13.1439 14.841 12.6881 14.8341 12.2314L14.8349 12.2322ZM8 31.5915V32.9422C8 34.4194 9.20976 35.6307 10.6884 35.6307H39.7212C41.1999 35.6307 42.4097 34.4186 42.4097 32.9422V31.5915H32.7998C32.622 31.7455 32.4374 31.8934 32.2458 32.0343L31.5034 32.5837L30.5741 31.652C30.096 31.9102 29.5965 32.1186 29.0778 32.2734V33.5896L28.1637 33.7268C27.714 33.7942 27.2581 33.8264 26.8046 33.8264C26.351 33.8264 25.8921 33.7934 25.4431 33.7268L24.5291 33.5896V32.2734C24.0104 32.1194 23.5109 31.911 23.0351 31.652L22.1034 32.5837L21.361 32.0343C21.1718 31.8934 20.9871 31.7455 20.8071 31.5915H8Z" fill="#3B3B3B"/>
|
|
4
|
+
<path d="M23.4294 34.3989H26.9794V37.9488H23.4294V34.3989Z" fill="#3B3B3B"/>
|
|
5
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M30.4776 38.7837H19.9314C19.0779 38.7837 18.3784 39.4832 18.3784 40.3367L18.3784 40.9999H32.0306V40.3367C32.0306 39.4832 31.3311 38.7837 30.4776 38.7837Z" fill="#3B3B3B"/>
|
|
6
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M35.9268 23.843C36.8454 22.7896 37.4016 21.4174 37.4016 19.9188C37.4016 17.2411 35.6211 14.961 33.1862 14.2025C33.236 13.9443 33.2621 13.6792 33.2621 13.4057C33.2621 11.1141 31.4034 9.2554 29.1118 9.2554C28.5801 9.2554 28.0737 9.355 27.6071 9.53582C26.6279 7.44651 24.5057 6 22.0448 6C18.6545 6 15.9071 8.74974 15.9071 12.14C15.9071 12.8694 16.035 13.5712 16.2695 14.2224C13.8653 15.0001 12.1123 17.2648 12.1123 19.9188C12.1123 23.083 14.6031 25.6956 17.7221 25.891C17.6677 25.4849 17.6394 25.0766 17.6394 24.6659C17.6394 24.21 17.6738 23.7557 17.7413 23.3044L17.8784 22.3904H19.1947C19.3487 21.8733 19.5571 21.3722 19.8137 20.8964L18.8844 19.9648L19.4337 19.2224C19.9746 18.4907 20.6258 17.841 21.3575 17.2985L22.0999 16.7492L23.0316 17.6785C23.5074 17.4226 24.0069 17.2135 24.5256 17.0595V15.7432L25.4396 15.6061C25.8894 15.5387 26.3452 15.5065 26.8011 15.5065C27.2569 15.5065 27.7113 15.5394 28.1602 15.6061L29.0743 15.7432V17.0595C29.593 17.2135 30.0925 17.4219 30.5706 17.6785L31.4999 16.7492L32.2423 17.2985C32.974 17.8417 33.626 18.4907 34.1662 19.2224L34.7178 19.9648L33.7861 20.8964C34.042 21.3722 34.2512 21.874 34.4052 22.3904H35.7238L35.8586 23.3044C35.8869 23.4845 35.9061 23.663 35.9237 23.843H35.9268Z" fill="black" fill-opacity="0.4"/>
|
|
7
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.0041 17.9051C29.0055 18.0813 29.9302 18.4744 30.7316 19.0344L31.6066 18.1595C32.2563 18.6391 32.8293 19.2129 33.3074 19.8603L32.4325 20.7353C32.9925 21.5367 33.3856 22.4622 33.5641 23.4628H34.8022C34.8612 23.8559 34.8911 24.2573 34.8911 24.6657C34.8911 25.074 34.8604 25.4755 34.8022 25.8686H33.5641C33.3863 26.8676 32.9925 27.7947 32.4325 28.5938L33.3074 29.471C32.8293 30.1184 32.2563 30.6915 31.6066 31.1719L30.7316 30.2969C29.9302 30.857 29.0047 31.25 28.0041 31.4263V32.6644C27.6133 32.7234 27.2111 32.7532 26.8027 32.7532C26.3944 32.7532 25.9906 32.7226 25.5999 32.6644V31.4263C24.5985 31.25 23.6738 30.857 22.8724 30.2969L21.9974 31.1719C21.35 30.6923 20.7746 30.1184 20.2965 29.471L21.1715 28.5961C20.6114 27.7947 20.2184 26.8676 20.0399 25.8686H18.8018C18.7428 25.4755 18.7129 25.0733 18.7129 24.6657C18.7129 24.2581 18.7435 23.8559 18.8018 23.4628H20.0399C20.2176 22.4615 20.6114 21.5367 21.1715 20.7353L20.2965 19.8603C20.7746 19.2129 21.35 18.6399 21.9974 18.1595L22.8724 19.0344C23.6738 18.4744 24.5993 18.0813 25.5999 17.9051V16.667C25.9906 16.608 26.3929 16.5781 26.8027 16.5781C27.2126 16.5781 27.6126 16.6088 28.0041 16.667V17.9051ZM26.8027 20.7499C28.9633 20.7499 30.7163 22.5028 30.7163 24.6657C30.7163 26.8286 28.9633 28.5815 26.8027 28.5815C24.6422 28.5815 22.8869 26.8286 22.8869 24.6657C22.8869 22.5028 24.6399 20.7499 26.8027 20.7499Z" fill="#FBC640"/>
|
|
8
|
+
<path d="M16.9158 40.3994H8.31576C6.50526 40.3994 4.69471 39.1239 4.69471 36.3257C4.69471 32.5459 1.97895 32.5459 -0.28421 32.5459H-3" stroke="black" stroke-opacity="0.3" stroke-width="1.35789"/>
|
|
9
|
+
</g>
|
|
10
|
+
<defs>
|
|
11
|
+
<clipPath id="clip0_13426_3642">
|
|
12
|
+
<rect width="50" height="50" fill="white"/>
|
|
13
|
+
</clipPath>
|
|
14
|
+
</defs>
|
|
15
|
+
</svg>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_13426_3636)">
|
|
3
|
+
<path d="M24.9099 41.1801C34.4478 41.1801 42.1799 33.4481 42.1799 23.9101C42.1799 14.3722 34.4478 6.64014 24.9099 6.64014C15.3719 6.64014 7.63989 14.3722 7.63989 23.9101C7.63989 33.4481 15.3719 41.1801 24.9099 41.1801Z" fill="#FC9406"/>
|
|
4
|
+
<path d="M24.9101 38.2601C32.8353 38.2601 39.2601 31.8353 39.2601 23.9101C39.2601 15.9848 32.8353 9.56006 24.9101 9.56006C16.9848 9.56006 10.5601 15.9848 10.5601 23.9101C10.5601 31.8353 16.9848 38.2601 24.9101 38.2601Z" fill="white"/>
|
|
5
|
+
<path d="M12 37.7401C4.37005 30.6201 3.96005 18.63 11.08 11C18.2 3.37005 30.2 2.96005 37.82 10.08C45.45 17.2 45.8601 29.2 38.7401 36.82C31.6201 44.44 19.62 44.8601 12 37.7401ZM35.57 12.49C29.28 6.61005 19.37 6.95005 13.49 13.25C7.61005 19.55 7.95005 29.45 14.25 35.33C20.55 41.21 30.45 40.87 36.33 34.57C42.21 28.27 41.87 18.37 35.57 12.49Z" fill="#C62A2A"/>
|
|
6
|
+
<path d="M31.61 16.7398C31.38 16.5298 31.37 16.1698 31.58 15.9398L33.03 14.3898C33.24 14.1598 33.6 14.1498 33.83 14.3598C34.06 14.5698 34.07 14.9298 33.86 15.1598L32.41 16.7098C32.2 16.9398 31.84 16.9498 31.61 16.7398Z" fill="#CCCCCC"/>
|
|
7
|
+
<path d="M24.5799 13.9599C24.4699 13.8599 24.4099 13.7199 24.3999 13.5599L24.3299 11.4399C24.3199 11.1299 24.5599 10.8599 24.8799 10.8499C25.1899 10.8399 25.4599 11.0799 25.4699 11.3999L25.5399 13.5199C25.5499 13.8299 25.3099 14.0999 24.9899 14.1099C24.8299 14.1099 24.6899 14.0599 24.5799 13.9599Z" fill="#CCCCCC"/>
|
|
8
|
+
<path d="M24.71 24.95C24.53 24.78 24.42 24.55 24.41 24.29L24.29 16.79C24.27 16.26 24.68 15.82 25.21 15.8C25.74 15.78 26.18 16.19 26.2 16.72L26.32 24.22C26.34 24.75 25.93 25.19 25.4 25.21C25.14 25.21 24.89 25.12 24.72 24.95H24.71Z" fill="#2D2C2E"/>
|
|
9
|
+
<path d="M26.0201 24.93C25.8501 25.1 25.6101 25.21 25.3501 25.21L21.0701 25.12C20.5401 25.12 20.1101 24.7 20.1101 24.17C20.1101 23.64 20.5301 23.21 21.0601 23.21L25.3401 23.3C25.8701 23.3 26.3001 23.72 26.3001 24.25C26.3001 24.51 26.2001 24.75 26.0201 24.93Z" fill="#2D2C2E"/>
|
|
10
|
+
<path d="M16.9401 17.2502L15.3901 15.8002C15.1601 15.5902 15.1501 15.2302 15.3601 15.0002C15.5701 14.7702 15.9301 14.7602 16.1601 14.9702L17.7101 16.4202C17.9401 16.6302 17.9501 16.9902 17.7401 17.2202C17.5301 17.4502 17.1701 17.4602 16.9401 17.2502Z" fill="#CCCCCC"/>
|
|
11
|
+
<path d="M12.0399 24.76C11.9299 24.66 11.8699 24.52 11.8599 24.36C11.8499 24.05 12.0899 23.78 12.4099 23.77L14.5299 23.7C14.8399 23.69 15.1099 23.93 15.1199 24.25C15.1299 24.56 14.8899 24.83 14.5699 24.84L12.4499 24.91C12.2899 24.91 12.1499 24.86 12.0399 24.76Z" fill="#CCCCCC"/>
|
|
12
|
+
<path d="M15.9999 33.46C15.7699 33.25 15.7599 32.89 15.9699 32.66L17.4199 31.11C17.6299 30.88 17.9899 30.87 18.2199 31.08C18.4499 31.29 18.4599 31.65 18.2499 31.88L16.7999 33.43C16.5899 33.66 16.2299 33.67 15.9999 33.46Z" fill="#CCCCCC"/>
|
|
13
|
+
<path d="M24.74 36.8198C24.63 36.7198 24.57 36.5798 24.56 36.4198L24.49 34.2998C24.48 33.9898 24.72 33.7198 25.04 33.7098C25.35 33.6998 25.62 33.9398 25.63 34.2598L25.7 36.3798C25.71 36.6898 25.47 36.9598 25.15 36.9698C24.99 36.9698 24.85 36.9198 24.74 36.8198Z" fill="#CCCCCC"/>
|
|
14
|
+
<path d="M33.66 32.8498L32.11 31.3998C31.88 31.1898 31.87 30.8298 32.08 30.5998C32.29 30.3698 32.65 30.3598 32.88 30.5698L34.43 32.0198C34.66 32.2298 34.67 32.5898 34.46 32.8198C34.25 33.0498 33.89 33.0598 33.66 32.8498Z" fill="#CCCCCC"/>
|
|
15
|
+
<path d="M34.89 23.97C34.78 23.87 34.72 23.73 34.71 23.57C34.7 23.26 34.94 22.99 35.26 22.98L37.38 22.91C37.69 22.9 37.96 23.14 37.97 23.46C37.98 23.77 37.74 24.04 37.42 24.05L35.3 24.12C35.14 24.12 35 24.07 34.89 23.97Z" fill="#CCCCCC"/>
|
|
16
|
+
<path d="M34.72 35.1499H14.88C13.8417 35.1499 13 35.9916 13 37.0299V41.7899C13 42.8282 13.8417 43.6699 14.88 43.6699H34.72C35.7583 43.6699 36.6 42.8282 36.6 41.7899V37.0299C36.6 35.9916 35.7583 35.1499 34.72 35.1499Z" fill="#2D2C2E"/>
|
|
17
|
+
<path d="M17.27 37.7798H18.46L19.95 41.4998H18.66L18.42 40.8498H17.31L17.07 41.4998H15.78L17.27 37.7798ZM18.14 39.9298L17.86 39.0698L17.58 39.9298H18.13H18.14Z" fill="white"/>
|
|
18
|
+
<path d="M20.22 37.7798H21.64C22.05 37.7798 22.41 37.8498 22.72 37.9998C23.03 38.1498 23.27 38.3598 23.44 38.6398C23.61 38.9198 23.69 39.2398 23.69 39.6198C23.69 40.2398 23.51 40.6998 23.14 41.0198C22.77 41.3398 22.27 41.4998 21.63 41.4998H20.21V37.7798H20.22ZM21.73 40.3298C22.19 40.3298 22.42 40.0898 22.42 39.6198C22.42 39.3998 22.36 39.2398 22.24 39.1198C22.12 38.9998 21.95 38.9498 21.73 38.9498H21.48V40.3298H21.73Z" fill="white"/>
|
|
19
|
+
<path d="M23.97 37.7798H25.08L26.02 39.7498L26.96 37.7798H28.07V41.4998H26.91V40.1198L26.22 41.4998H25.82L25.13 40.1198V41.4998H23.97V37.7798Z" fill="white"/>
|
|
20
|
+
<path d="M28.4399 37.7798H29.6999V41.4998H28.4399V37.7798Z" fill="white"/>
|
|
21
|
+
<path d="M30.0798 37.7798H31.1898L32.2998 39.5098V37.7798H33.5098V41.4998H32.3998L31.2898 39.7698V41.4998H30.0798V37.7798Z" fill="white"/>
|
|
22
|
+
</g>
|
|
23
|
+
<defs>
|
|
24
|
+
<clipPath id="clip0_13426_3636">
|
|
25
|
+
<rect width="38.92" height="38.67" fill="white" transform="translate(6 5)"/>
|
|
26
|
+
</clipPath>
|
|
27
|
+
</defs>
|
|
28
|
+
</svg>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_13426_3635)">
|
|
3
|
+
<path d="M25.9099 43.1801C35.4478 43.1801 43.1799 35.4481 43.1799 25.9101C43.1799 16.3722 35.4478 8.64014 25.9099 8.64014C16.3719 8.64014 8.63989 16.3722 8.63989 25.9101C8.63989 35.4481 16.3719 43.1801 25.9099 43.1801Z" fill="#3E59A8"/>
|
|
4
|
+
<path d="M25.9101 40.2601C33.8353 40.2601 40.2601 33.8353 40.2601 25.9101C40.2601 17.9848 33.8353 11.5601 25.9101 11.5601C17.9848 11.5601 11.5601 17.9848 11.5601 25.9101C11.5601 33.8353 17.9848 40.2601 25.9101 40.2601Z" fill="white"/>
|
|
5
|
+
<path d="M13 39.7401C5.37005 32.6201 4.96005 20.63 12.08 13C19.2 5.37005 31.2 4.96005 38.82 12.08C46.45 19.2 46.8601 31.2 39.7401 38.82C32.6201 46.44 20.62 46.8601 13 39.7401ZM36.57 14.49C30.28 8.61005 20.37 8.95005 14.49 15.25C8.61005 21.55 8.95005 31.45 15.25 37.33C21.55 43.21 31.45 42.87 37.33 36.57C43.21 30.27 42.87 20.37 36.57 14.49Z" fill="#4487F4"/>
|
|
6
|
+
<path d="M32.61 18.7398C32.38 18.5298 32.37 18.1698 32.58 17.9398L34.03 16.3898C34.24 16.1598 34.6 16.1498 34.83 16.3598C35.06 16.5698 35.07 16.9298 34.86 17.1598L33.41 18.7098C33.2 18.9398 32.84 18.9498 32.61 18.7398Z" fill="#CCCCCC"/>
|
|
7
|
+
<path d="M25.5799 15.9599C25.4699 15.8599 25.4099 15.7199 25.3999 15.5599L25.3299 13.4399C25.3199 13.1299 25.5599 12.8599 25.8799 12.8499C26.1899 12.8399 26.4599 13.0799 26.4699 13.3999L26.5399 15.5199C26.5499 15.8299 26.3099 16.0999 25.9899 16.1099C25.8299 16.1099 25.6899 16.0599 25.5799 15.9599Z" fill="#CCCCCC"/>
|
|
8
|
+
<path d="M25.71 26.95C25.53 26.78 25.42 26.55 25.41 26.29L25.29 18.79C25.27 18.26 25.68 17.82 26.21 17.8C26.74 17.78 27.18 18.19 27.2 18.72L27.32 26.22C27.34 26.75 26.93 27.19 26.4 27.21C26.14 27.21 25.89 27.12 25.72 26.95H25.71Z" fill="#2D2C2E"/>
|
|
9
|
+
<path d="M27.0201 26.93C26.8501 27.1 26.6101 27.21 26.3501 27.21L22.0701 27.12C21.5401 27.12 21.1101 26.7 21.1101 26.17C21.1101 25.64 21.5301 25.21 22.0601 25.21L26.3401 25.3C26.8701 25.3 27.3001 25.72 27.3001 26.25C27.3001 26.51 27.2001 26.75 27.0201 26.93Z" fill="#2D2C2E"/>
|
|
10
|
+
<path d="M17.9401 19.2502L16.3901 17.8002C16.1601 17.5902 16.1501 17.2302 16.3601 17.0002C16.5701 16.7702 16.9301 16.7602 17.1601 16.9702L18.7101 18.4202C18.9401 18.6302 18.9501 18.9902 18.7401 19.2202C18.5301 19.4502 18.1701 19.4602 17.9401 19.2502Z" fill="#CCCCCC"/>
|
|
11
|
+
<path d="M13.0399 26.76C12.9299 26.66 12.8699 26.52 12.8599 26.36C12.8499 26.05 13.0899 25.78 13.4099 25.77L15.5299 25.7C15.8399 25.69 16.1099 25.93 16.1199 26.25C16.1299 26.56 15.8899 26.83 15.5699 26.84L13.4499 26.91C13.2899 26.91 13.1499 26.86 13.0399 26.76Z" fill="#CCCCCC"/>
|
|
12
|
+
<path d="M16.9999 35.46C16.7699 35.25 16.7599 34.89 16.9699 34.66L18.4199 33.11C18.6299 32.88 18.9899 32.87 19.2199 33.08C19.4499 33.29 19.4599 33.65 19.2499 33.88L17.7999 35.43C17.5899 35.66 17.2299 35.67 16.9999 35.46Z" fill="#CCCCCC"/>
|
|
13
|
+
<path d="M25.74 38.8198C25.63 38.7198 25.57 38.5798 25.56 38.4198L25.49 36.2998C25.48 35.9898 25.72 35.7198 26.04 35.7098C26.35 35.6998 26.62 35.9398 26.63 36.2598L26.7 38.3798C26.71 38.6898 26.47 38.9598 26.15 38.9698C25.99 38.9698 25.85 38.9198 25.74 38.8198Z" fill="#CCCCCC"/>
|
|
14
|
+
<path d="M34.66 34.8498L33.11 33.3998C32.88 33.1898 32.87 32.8298 33.08 32.5998C33.29 32.3698 33.65 32.3598 33.88 32.5698L35.43 34.0198C35.66 34.2298 35.67 34.5898 35.46 34.8198C35.25 35.0498 34.89 35.0598 34.66 34.8498Z" fill="#CCCCCC"/>
|
|
15
|
+
<path d="M35.89 25.97C35.78 25.87 35.72 25.73 35.71 25.57C35.7 25.26 35.94 24.99 36.26 24.98L38.38 24.91C38.69 24.9 38.96 25.14 38.97 25.46C38.98 25.77 38.74 26.04 38.42 26.05L36.3 26.12C36.14 26.12 36 26.07 35.89 25.97Z" fill="#CCCCCC"/>
|
|
16
|
+
</g>
|
|
17
|
+
<defs>
|
|
18
|
+
<clipPath id="clip0_13426_3635">
|
|
19
|
+
<rect width="37.82" height="37.82" fill="white" transform="translate(7 7)"/>
|
|
20
|
+
</clipPath>
|
|
21
|
+
</defs>
|
|
22
|
+
</svg>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_13426_3641)">
|
|
3
|
+
<path d="M32.8626 12V32.7415C32.8626 33.7352 32.0618 34.5402 31.213 34.5402H13.5356V12H32.8626Z" fill="#472B12"/>
|
|
4
|
+
<path d="M28.0227 20.3071L30.2621 24.6968L30.5542 24.5874L28.3707 20.3071H28.0227Z" fill="#FFC514"/>
|
|
5
|
+
<path d="M22.0947 24.5874L21.8021 24.6968L19.5627 20.3071H19.9107H19.9112L22.0947 24.5874Z" fill="#FFC514"/>
|
|
6
|
+
<path d="M39.4628 15.5295L35.1284 16.272L35.8474 20.4695L40.1818 19.727L39.4628 15.5295Z" fill="#B54F26"/>
|
|
7
|
+
<path d="M40.1904 14.6774C39.6352 14.7725 39.2623 15.3 39.3573 15.8552L39.9739 19.4562C40.0695 20.0118 40.5966 20.3852 41.1513 20.2902C41.707 20.1951 42.0799 19.6675 41.9844 19.1118L41.3673 15.5109C41.2723 14.9557 40.7452 14.5823 40.1899 14.6774H40.1904Z" fill="#472B12"/>
|
|
8
|
+
<path d="M34.1589 15.7111C33.6037 15.8062 33.2308 16.3337 33.3258 16.889L33.9429 20.4899C34.038 21.0456 34.5655 21.4185 35.1208 21.3239C35.676 21.2288 36.0489 20.7013 35.9534 20.1456L35.3368 16.5447C35.2417 15.9894 34.7141 15.6165 34.1594 15.7116L34.1589 15.7111Z" fill="#472B12"/>
|
|
9
|
+
<path d="M38.9445 21.9585L38.3496 22.06L40.6153 34.9674L41.2102 34.8654L38.9445 21.9585Z" fill="#623613"/>
|
|
10
|
+
<path d="M38.3496 22.0601L37.7556 22.1621L40.0213 35.069L40.6153 34.9674L38.3496 22.0601Z" fill="#472B12"/>
|
|
11
|
+
<path d="M41.1306 34.8796L40.616 34.9678L40.855 36.3635L41.3697 36.2753C41.7546 36.2093 42.0121 35.8419 41.9461 35.4565C41.9129 35.2622 41.8063 35.103 41.6581 34.9987C41.51 34.8939 41.3244 34.8464 41.1306 34.8796Z" fill="#623613"/>
|
|
12
|
+
<path d="M40.6155 34.9673L40.1045 35.055C39.7191 35.121 39.4584 35.4856 39.5244 35.871C39.5576 36.0648 39.6642 36.2245 39.8151 36.3283C39.9633 36.4331 40.1521 36.483 40.3431 36.4502L40.8541 36.3625L40.615 34.9668L40.6155 34.9673Z" fill="#472B12"/>
|
|
13
|
+
<path d="M38.9169 19.9463L38.0142 20.1009L38.3497 22.0597L38.9446 21.9581L38.9169 19.9463Z" fill="#623613"/>
|
|
14
|
+
<path d="M38.0141 20.1011L37.1118 20.2557L37.7557 22.1618L38.3497 22.0598L38.0141 20.1011Z" fill="#472B12"/>
|
|
15
|
+
<path d="M39.6662 17.6549L35.6448 18.3438L35.7707 19.0789L39.7921 18.39L39.6662 17.6549Z" fill="#F5841F"/>
|
|
16
|
+
<path d="M32.8626 32.7417V35.6309C32.8626 36.6204 32.0618 37.424 31.0681 37.424H13.5356V34.5398H31.213C32.0613 34.5398 32.8626 33.7349 32.8626 32.7412V32.7417Z" fill="#CCEBF8"/>
|
|
17
|
+
<path d="M31.0679 37.0122H13.5359V38.3936H31.2128C32.0616 38.3936 32.8619 37.5896 32.8619 36.5955V35.2178C32.8619 36.2078 32.062 37.0122 31.0679 37.0122Z" fill="#CA5827"/>
|
|
18
|
+
<path d="M15.6097 12H12V34.5397H15.6097V12Z" fill="#DF2F26"/>
|
|
19
|
+
<path d="M13.536 34.54H12V38.3939H13.536V34.54Z" fill="#82381B"/>
|
|
20
|
+
<path d="M20.1089 20.0967C20.0535 20.2416 19.9016 20.3482 19.7373 20.3473C19.573 20.3468 19.4341 20.243 19.3796 20.0976L19.1096 20.0967C19.171 20.3865 19.4276 20.6053 19.7359 20.6062C19.9713 20.6071 20.1767 20.4807 20.2893 20.2928L21.4104 20.297L23.9668 20.6219L23.9682 20.0967H20.1089Z" fill="#F6901E"/>
|
|
21
|
+
<path d="M19.9112 20.3071L17.6718 24.6968L17.3792 24.5874L19.5627 20.3071H19.9107H19.9112Z" fill="#FDE156"/>
|
|
22
|
+
<path d="M17.5149 24.9233C17.9266 25.6803 18.7661 26.1995 19.7372 26.1995C20.7083 26.1995 21.5474 25.6803 21.9595 24.9233H17.5154H17.5149Z" fill="#F5841F"/>
|
|
23
|
+
<path d="M22.0947 24.5879H17.3792V25.1971H22.0947V24.5879Z" fill="#F5841F"/>
|
|
24
|
+
<path d="M27.8252 20.0967C27.8806 20.2416 28.0329 20.3482 28.1968 20.3473C28.3611 20.3468 28.5 20.243 28.5545 20.0976L28.8245 20.0967C28.7631 20.3865 28.5065 20.6053 28.1982 20.6062C27.9628 20.6071 27.7574 20.4807 27.6448 20.2928L26.5242 20.297L23.9677 20.6219L23.9663 20.0967H27.8257H27.8252Z" fill="#F6901E"/>
|
|
25
|
+
<path d="M25.8394 24.5874L26.1315 24.6968L28.3709 20.3071H28.0229L25.8394 24.5874Z" fill="#FDE156"/>
|
|
26
|
+
<path d="M30.5549 24.5879H25.8394V25.1971H26.15C26.6 25.8027 27.3477 26.1996 28.1969 26.1996C29.0461 26.1996 29.7943 25.8027 30.2443 25.1971H30.5549V24.5879Z" fill="#F5841F"/>
|
|
27
|
+
<path d="M24.9812 26.9844H22.9504V27.4925H24.9812V26.9844Z" fill="#D47828"/>
|
|
28
|
+
<path d="M26.395 27.4927H21.5364V28.1956H26.395V27.4927Z" fill="#F6901E"/>
|
|
29
|
+
<path d="M24.5696 18.9489C24.5696 18.6152 24.2992 18.3447 23.9655 18.3447C23.6318 18.3447 23.3613 18.6152 23.3613 18.9489C23.3613 19.2175 23.5372 19.4455 23.7799 19.5235L23.3613 26.9843H24.5692L24.1506 19.5235C24.3933 19.4455 24.5692 19.2175 24.5692 18.9489H24.5696Z" fill="#F5841F"/>
|
|
30
|
+
</g>
|
|
31
|
+
<defs>
|
|
32
|
+
<clipPath id="clip0_13426_3641">
|
|
33
|
+
<rect width="30" height="26.3935" fill="white" transform="translate(12 12)"/>
|
|
34
|
+
</clipPath>
|
|
35
|
+
</defs>
|
|
36
|
+
</svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_13426_3644)">
|
|
3
|
+
<path d="M16.29 11.9302H4.34003C3.49003 11.9302 2.86003 12.7002 3.03003 13.5302L8.05003 38.4502C8.19003 39.1402 8.74003 39.4802 9.30003 39.4802C9.35003 39.4802 9.40003 39.4802 9.46003 39.4802C10.15 39.4802 10.75 38.9902 10.89 38.3102L16.29 11.9302Z" fill="#16958A"/>
|
|
4
|
+
<path d="M10.8001 36.43L8.09009 10.68C8.08009 10.31 8.37009 10 8.74009 10H36.1901C36.5201 10 36.8001 10.25 36.8401 10.58L37.8501 20.17L10.8001 36.43Z" fill="white"/>
|
|
5
|
+
<path d="M45.71 20.1698C46.65 20.1698 47.35 21.0598 47.12 21.9698L43.1 38.1698C42.91 38.9398 42.22 39.4798 41.43 39.4798H9.29004C9.88004 39.4798 10.47 39.0998 10.56 38.3598L13.01 18.3298C13.1 17.5998 13.72 17.0498 14.46 17.0498H26.35C26.93 17.0498 27.46 17.3998 27.69 17.9298L28.27 19.2798C28.5 19.8198 29.03 20.1598 29.61 20.1598H45.72L45.71 20.1698Z" fill="#08C1A7"/>
|
|
6
|
+
<path d="M38.99 26.4101H30.76C30.48 26.4101 30.26 26.1801 30.26 25.9101V24.1201C30.26 23.8401 30.49 23.6201 30.76 23.6201H39.6C39.99 23.6201 40.26 24.0101 40.13 24.3701L39.52 26.0401C39.44 26.2601 39.23 26.4101 38.99 26.4101Z" fill="#2D2C2E"/>
|
|
7
|
+
<path d="M19.3201 33.65H17.3501V25.26H19.3201V24.02H21.3201V25.26H21.8601C22.7001 25.26 23.3801 25.47 23.8901 25.88C24.4001 26.29 24.6601 26.87 24.6601 27.63C24.6601 27.95 24.5901 28.25 24.4501 28.54C24.3101 28.83 24.1101 29.06 23.8401 29.25C24.2201 29.43 24.5001 29.67 24.6601 29.95C24.8201 30.23 24.9101 30.59 24.9101 31.04C24.9101 31.57 24.7801 32.03 24.5301 32.43C24.2801 32.83 23.9301 33.13 23.5001 33.34C23.0701 33.55 22.5901 33.66 22.0601 33.66H21.3301V34.9H19.3301V33.66L19.3201 33.65ZM21.0401 28.44C21.2901 28.44 21.4701 28.39 21.5901 28.29C21.7101 28.19 21.7601 28.02 21.7601 27.79C21.7601 27.57 21.7001 27.42 21.5901 27.32C21.4701 27.22 21.2901 27.18 21.0401 27.18H20.1001V28.44H21.0401ZM21.2001 31.73C21.4901 31.73 21.7001 31.67 21.8201 31.56C21.9501 31.45 22.0101 31.27 22.0101 31.02C22.0101 30.77 21.9501 30.59 21.8201 30.47C21.6901 30.35 21.4801 30.3 21.2001 30.3H20.1101V31.73H21.2001Z" fill="#16958A"/>
|
|
8
|
+
</g>
|
|
9
|
+
<defs>
|
|
10
|
+
<clipPath id="clip0_13426_3644">
|
|
11
|
+
<rect width="44.17" height="29.48" fill="white" transform="translate(3 10)"/>
|
|
12
|
+
</clipPath>
|
|
13
|
+
</defs>
|
|
14
|
+
</svg>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_13426_3655)">
|
|
3
|
+
<path d="M9 16.554V33.8353C9 35.6278 10.4529 37.0807 12.2454 37.0807H40.2575C42.0499 37.0807 43.5029 35.6278 43.5029 33.8353V20.6057C43.5029 18.8132 42.0499 17.3603 40.2575 17.3603H32.4997C31.9696 17.3603 31.4477 17.2334 30.9766 16.9907L24.5565 13.6787C24.0853 13.4356 23.5635 13.3091 23.0334 13.3091H12.2454C10.4529 13.3087 9 14.7616 9 16.554Z" fill="#AD2929"/>
|
|
4
|
+
<path d="M38.6311 16.9422V37.0171C38.6311 38.2321 37.6462 39.2165 36.4316 39.2165H16.071C14.856 39.2165 13.8716 38.2317 13.8716 37.0171V9.19986C13.8716 7.98484 14.8564 7 16.071 7H28.6889L38.6311 16.9422Z" fill="#D4DFE8"/>
|
|
5
|
+
<path d="M33.7717 22.708H18.7307C18.433 22.708 18.1912 22.4666 18.1912 22.1684C18.1912 21.8703 18.4325 21.6289 18.7307 21.6289H33.7717C34.0695 21.6289 34.3113 21.8703 34.3113 22.1684C34.3113 22.4666 34.0699 22.708 33.7717 22.708Z" fill="#A6B6CC"/>
|
|
6
|
+
<path d="M33.7717 27.7744H18.7307C18.433 27.7744 18.1912 27.533 18.1912 27.2348C18.1912 26.9367 18.4325 26.6953 18.7307 26.6953H33.7717C34.0695 26.6953 34.3113 26.9367 34.3113 27.2348C34.3113 27.533 34.0699 27.7744 33.7717 27.7744Z" fill="#A6B6CC"/>
|
|
7
|
+
<path d="M29.0713 32.8408H18.7307C18.433 32.8408 18.1912 32.5994 18.1912 32.3012C18.1912 32.0031 18.4325 31.7617 18.7307 31.7617H29.0713C29.369 31.7617 29.6108 32.0031 29.6108 32.3012C29.6108 32.5994 29.3694 32.8408 29.0713 32.8408Z" fill="#A6B6CC"/>
|
|
8
|
+
<path d="M38.6309 16.9418H30.8891C29.6736 16.9418 28.6892 15.9574 28.6892 14.7419V7.00049L38.6309 16.9414V16.9418Z" fill="#A6B6CC"/>
|
|
9
|
+
<path d="M43.5029 23.6307V39.5481C43.5029 41.3405 42.0499 42.7935 40.2575 42.7935H12.2454C10.4529 42.7935 9 41.3405 9 39.5481V27.6823C9 25.8899 10.4529 24.437 12.2454 24.437H20.0032C20.5332 24.437 21.0551 24.31 21.5262 24.0674L27.9464 20.7553C28.4175 20.5122 28.9394 20.3857 29.4695 20.3857H40.2575C42.0499 20.3857 43.5029 21.8387 43.5029 23.6311V23.6307Z" fill="#C62A2A"/>
|
|
10
|
+
<circle cx="33.5" cy="31.5" r="8.5" fill="#2D2C2E"/>
|
|
11
|
+
<g clip-path="url(#clip1_13426_3655)">
|
|
12
|
+
<path d="M36.886 31.6094L38.8689 33.6029C39.2705 34.0066 39.2688 34.6596 38.865 35.0612L36.7656 37.1498C36.2727 37.64 35.4332 37.2897 35.435 36.5946C35.4355 36.3875 35.5183 36.1894 35.665 36.0435L36.1794 35.5318C36.2909 35.4209 36.2126 35.2306 36.0554 35.2302L29.7478 35.2135C29.272 35.2123 28.8873 34.8255 28.8885 34.3497C28.8898 33.8739 29.2765 33.4892 29.7523 33.4905L35.9723 33.5069C36.1295 33.5074 36.2087 33.3175 36.0979 33.2061L35.6918 32.7978C35.5342 32.6394 35.446 32.425 35.4466 32.2017C35.4486 31.4513 36.3567 31.0775 36.886 31.6094Z" fill="#FC9406"/>
|
|
13
|
+
<path d="M31.3193 27.2541L29.3256 29.2371C28.9219 29.6387 28.9202 30.2917 29.3218 30.6954L31.4103 32.7949C31.9006 33.2878 32.742 32.9418 32.7438 32.2467C32.7443 32.0397 32.6626 31.8411 32.5167 31.6945L32.005 31.18C31.8942 31.0686 31.9734 30.8787 32.1306 30.8791L38.4381 30.8959C38.9139 30.897 39.3007 30.5123 39.3019 30.0365C39.3032 29.5607 38.9185 29.1739 38.4427 29.1727L32.2227 29.1562C32.0655 29.1558 31.9873 28.9655 32.0987 28.8546L32.507 28.4485C32.6654 28.291 32.7547 28.0771 32.7553 27.8537C32.7573 27.1033 31.8512 26.7252 31.3191 27.2543L31.3193 27.2541Z" fill="white"/>
|
|
14
|
+
</g>
|
|
15
|
+
</g>
|
|
16
|
+
<defs>
|
|
17
|
+
<clipPath id="clip0_13426_3655">
|
|
18
|
+
<rect width="34.5029" height="35.7936" fill="white" transform="translate(9 7)"/>
|
|
19
|
+
</clipPath>
|
|
20
|
+
<clipPath id="clip1_13426_3655">
|
|
21
|
+
<rect width="11.0459" height="10.2805" fill="white" transform="matrix(0.00264966 -0.999996 -0.999996 -0.00264966 39.2805 38.0732)"/>
|
|
22
|
+
</clipPath>
|
|
23
|
+
</defs>
|
|
24
|
+
</svg>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_13426_3646)">
|
|
3
|
+
<path d="M34.7699 22.5702V38.5502H15.6299V22.5702L20.0599 16.1802H30.2899L34.7699 22.5702Z" fill="#E6E6E6"/>
|
|
4
|
+
<path d="M37.9601 21H32.8501V38.21H37.9601V21Z" fill="#08C1A7"/>
|
|
5
|
+
<path d="M17.4999 21H12.3899V38.21H17.4999V21Z" fill="#08C1A7"/>
|
|
6
|
+
<path d="M40.52 16.1802V21.2902C40.52 22.0002 39.95 22.5702 39.24 22.5702H31.57C30.86 22.5702 30.29 22.0002 30.29 21.2902V16.1802H40.52Z" fill="#16958A"/>
|
|
7
|
+
<path d="M20.0601 16.1802V21.2902C20.0601 22.0002 19.4901 22.5702 18.7801 22.5702H11.1101C10.4001 22.5702 9.83008 22.0002 9.83008 21.2902V16.1802H20.0601Z" fill="#16958A"/>
|
|
8
|
+
<path d="M43.07 17.4601H7.28C6.57 17.4601 6 16.8901 6 16.1801V12.0501C6 11.4701 6.39 10.9601 6.95 10.8101L24.85 6.04012C25.07 5.98012 25.29 5.98012 25.51 6.04012L43.41 10.8101C43.97 10.9601 44.36 11.4701 44.36 12.0501V16.1801C44.36 16.8901 43.79 17.4601 43.08 17.4601H43.07Z" fill="#08C1A7"/>
|
|
9
|
+
<path d="M41.8001 37.9201V41.7601H8.56006V37.9201C8.56006 37.2101 9.13006 36.6401 9.84006 36.6401H40.5201C41.2301 36.6401 41.8001 37.2101 41.8001 37.9201Z" fill="#08C1A7"/>
|
|
10
|
+
<path d="M43.07 43.0302H7.28C6.57 43.0302 6 42.4602 6 41.7502C6 41.0402 6.57 40.4702 7.28 40.4702H43.08C43.79 40.4702 44.36 41.0402 44.36 41.7502C44.36 42.4602 43.79 43.0302 43.08 43.0302H43.07Z" fill="#16958A"/>
|
|
11
|
+
<path d="M25.1799 13.63C24.4699 13.63 23.8999 13.06 23.8999 12.35V11.07C23.8999 10.36 24.4699 9.79004 25.1799 9.79004C25.8899 9.79004 26.4599 10.36 26.4599 11.07V12.35C26.4599 13.06 25.8899 13.63 25.1799 13.63Z" fill="#2D2C2E"/>
|
|
12
|
+
</g>
|
|
13
|
+
<defs>
|
|
14
|
+
<clipPath id="clip0_13426_3646">
|
|
15
|
+
<rect width="38.35" height="37.03" fill="white" transform="translate(6 6)"/>
|
|
16
|
+
</clipPath>
|
|
17
|
+
</defs>
|
|
18
|
+
</svg>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M12.3636 26.2727C15.1707 26.2727 17.4545 23.9895 17.4545 21.1817C17.4545 18.374 15.1707 16.0908 12.3636 16.0908C9.55653 16.0908 7.27271 18.374 7.27271 21.1817C7.27271 23.9895 9.55653 26.2727 12.3636 26.2727Z" fill="#1F1F1F" fill-opacity="0.5"/>
|
|
3
|
+
<path d="M15.7394 27.2445C15.4019 27.032 14.9831 26.991 14.6114 27.1314C13.1622 27.6808 11.5651 27.6808 10.1159 27.1314C9.74486 26.991 9.326 27.032 8.98793 27.2445C7.11737 28.4203 6 30.4363 6 32.6362V37.7272C6 38.4306 6.56987 38.9999 7.27273 38.9999H17.4546C18.1574 38.9999 18.7273 38.4306 18.7273 37.7272V32.6362C18.7273 30.4363 17.6099 28.4203 15.7394 27.2445Z" fill="#1F1F1F" fill-opacity="0.5"/>
|
|
4
|
+
<path d="M37.8185 26.2727C40.6256 26.2727 42.9094 23.9895 42.9094 21.1817C42.9094 18.374 40.6256 16.0908 37.8185 16.0908C35.0114 16.0908 32.7275 18.374 32.7275 21.1817C32.7275 23.9895 35.0114 26.2727 37.8185 26.2727Z" fill="#1F1F1F" fill-opacity="0.5"/>
|
|
5
|
+
<path d="M41.194 27.2445C40.8559 27.032 40.4383 26.991 40.066 27.1314C38.6168 27.6808 37.0197 27.6808 35.5705 27.1314C35.1982 26.991 34.7806 27.032 34.4425 27.2445C32.572 28.4203 31.4546 30.4363 31.4546 32.6362V37.7272C31.4546 38.4306 32.0245 38.9999 32.7273 38.9999H42.9092C43.612 38.9999 44.1819 38.4306 44.1819 37.7272V32.6362C44.1819 30.4363 43.0645 28.4203 41.194 27.2445Z" fill="#1F1F1F" fill-opacity="0.5"/>
|
|
6
|
+
<path d="M25.0912 11C21.5825 11 18.7275 13.8549 18.7275 17.3637C18.7275 20.8724 21.5825 23.7273 25.0912 23.7273C28.5999 23.7273 31.4548 20.8724 31.4548 17.3637C31.4548 13.8549 28.5999 11 25.0912 11Z" fill="#1F1F1F"/>
|
|
7
|
+
<path d="M33.9999 39V32.6364C33.9999 29.8013 32.6327 27.1192 30.3432 25.4586C29.9604 25.1815 29.4546 25.138 29.0307 25.3493C26.5574 26.5748 23.6241 26.5748 21.1508 25.3493C20.7275 25.138 20.2211 25.1815 19.8383 25.4586C17.5488 27.1192 16.1816 29.8013 16.1816 32.6364V39H33.9999Z" fill="#1F1F1F"/>
|
|
8
|
+
<path d="M26.3638 26.1709V32.6365C26.3638 33.3362 25.7908 33.9092 25.0911 33.9092C24.3913 33.9092 23.8184 33.3362 23.8184 32.6365V26.1709C24.6586 26.2977 25.5236 26.2977 26.3638 26.1709Z" fill="#FBC640"/>
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<rect x="9" y="5" width="32.0137" height="41.6923" rx="1.48901" fill="url(#paint0_linear_13426_3640)"/>
|
|
3
|
+
<path d="M17.1365 16.6403L15.5808 17.6269C15.5351 17.6506 15.4926 17.6602 15.4535 17.6557C15.4146 17.6509 15.3768 17.6368 15.3399 17.6134C15.3028 17.5894 15.2748 17.5555 15.2559 17.5117C15.2371 17.4679 15.2354 17.42 15.2508 17.3681L15.6648 15.5182L14.2955 14.2714C14.2569 14.2384 14.2315 14.199 14.2192 14.1531C14.2069 14.1071 14.2096 14.0632 14.2274 14.0212C14.2451 13.9792 14.2686 13.9447 14.2981 13.9177C14.3278 13.8915 14.3678 13.8738 14.4181 13.8645L16.2249 13.6989L16.9295 11.9471C16.9489 11.8976 16.9769 11.8619 17.0135 11.84C17.05 11.8181 17.091 11.8071 17.1365 11.8071C17.1819 11.8071 17.223 11.8181 17.2599 11.84C17.2968 11.8619 17.3246 11.8976 17.3435 11.9471L18.048 13.6989L19.8545 13.8645C19.905 13.8735 19.9452 13.8914 19.9749 13.9181C20.0046 13.9445 20.0283 13.9789 20.046 14.0212C20.0635 14.0632 20.066 14.1071 20.0537 14.1531C20.0415 14.199 20.016 14.2384 19.9775 14.2714L18.6082 15.5182L19.0222 17.3681C19.0382 17.4194 19.0366 17.4671 19.0175 17.5113C18.9983 17.5554 18.9702 17.5893 18.933 17.613C18.8965 17.637 18.8586 17.6512 18.8195 17.6557C18.7806 17.6602 18.7383 17.6506 18.6926 17.6269L17.1365 16.6403Z" fill="#FBC640"/>
|
|
4
|
+
<path d="M24.9001 14.3L23.3444 15.2866C23.2987 15.3103 23.2563 15.3199 23.2172 15.3154C23.1783 15.3106 23.1404 15.2965 23.1036 15.2731C23.0665 15.2491 23.0385 15.2152 23.0196 15.1714C23.0007 15.1276 22.999 15.0797 23.0145 15.0278L23.4284 13.1779L22.0592 11.9311C22.0206 11.8981 21.9952 11.8586 21.9829 11.8127C21.9706 11.7668 21.9733 11.7229 21.991 11.6808C22.0087 11.6388 22.0323 11.6043 22.0617 11.5773C22.0915 11.5512 22.1315 11.5335 22.1817 11.5242L23.9886 11.3586L24.6932 9.60678C24.7126 9.55727 24.7406 9.52156 24.7771 9.49965C24.8137 9.47775 24.8547 9.4668 24.9001 9.4668C24.9456 9.4668 24.9867 9.47775 25.0236 9.49965C25.0604 9.52156 25.0883 9.55727 25.1071 9.60678L25.8117 11.3586L27.6181 11.5242C27.6687 11.5332 27.7088 11.5511 27.7386 11.5778C27.7683 11.6042 27.792 11.6385 27.8097 11.6808C27.8271 11.7229 27.8297 11.7668 27.8174 11.8127C27.8051 11.8586 27.7797 11.8981 27.7411 11.9311L26.3718 13.1779L26.7858 15.0278C26.8018 15.0791 26.8003 15.1268 26.7811 15.1709C26.762 15.215 26.7338 15.2489 26.6967 15.2726C26.6601 15.2967 26.6223 15.3109 26.5831 15.3154C26.5443 15.3199 26.502 15.3103 26.4563 15.2866L24.9001 14.3Z" fill="#FBC640"/>
|
|
5
|
+
<path d="M32.6643 16.6403L31.1086 17.6269C31.0629 17.6506 31.0205 17.6602 30.9813 17.6557C30.9425 17.6509 30.9046 17.6368 30.8678 17.6134C30.8306 17.5894 30.8026 17.5555 30.7838 17.5117C30.7649 17.4679 30.7632 17.42 30.7786 17.3681L31.1926 15.5182L29.8233 14.2714C29.7848 14.2384 29.7593 14.199 29.747 14.1531C29.7348 14.1071 29.7375 14.0632 29.7552 14.0212C29.7729 13.9792 29.7965 13.9447 29.8259 13.9177C29.8556 13.8915 29.8956 13.8738 29.9459 13.8645L31.7527 13.6989L32.4573 11.9471C32.4767 11.8976 32.5047 11.8619 32.5413 11.84C32.5779 11.8181 32.6189 11.8071 32.6643 11.8071C32.7097 11.8071 32.7509 11.8181 32.7877 11.84C32.8246 11.8619 32.8524 11.8976 32.8713 11.9471L33.5759 13.6989L35.3823 13.8645C35.4329 13.8735 35.473 13.8914 35.5027 13.9181C35.5324 13.9445 35.5561 13.9789 35.5739 14.0212C35.5913 14.0632 35.5939 14.1071 35.5816 14.1531C35.5693 14.199 35.5439 14.2384 35.5053 14.2714L34.136 15.5182L34.55 17.3681C34.566 17.4194 34.5644 17.4671 34.5453 17.5113C34.5261 17.5554 34.498 17.5893 34.4609 17.613C34.4243 17.637 34.3864 17.6512 34.3473 17.6557C34.3084 17.6602 34.2662 17.6506 34.2204 17.6269L32.6643 16.6403Z" fill="#FBC640"/>
|
|
6
|
+
<path d="M14.2117 22.8682L18.6787 22.8682" stroke="#3B3B3B" stroke-width="2.23352"/>
|
|
7
|
+
<path d="M22.4014 22.8682L35.8025 22.8682" stroke="#959595" stroke-width="2.23352"/>
|
|
8
|
+
<path d="M14.2117 30.313L18.6787 30.313" stroke="#3B3B3B" stroke-width="2.23352"/>
|
|
9
|
+
<path d="M22.4014 30.313L35.8025 30.313" stroke="#959595" stroke-width="2.23352"/>
|
|
10
|
+
<path d="M14.2117 37.7578L18.6787 37.7578" stroke="#3B3B3B" stroke-width="2.23352"/>
|
|
11
|
+
<path d="M22.4014 37.7578L35.8025 37.7578" stroke="#959595" stroke-width="2.23352"/>
|
|
12
|
+
<circle cx="34.9791" cy="29.4905" r="8.46367" fill="#767676" fill-opacity="0.15"/>
|
|
13
|
+
<path d="M34.9205 22.0848C32.9719 22.0848 31.1032 22.8588 29.7254 24.2366C28.3476 25.6144 27.5735 27.4832 27.5735 29.4317C27.5735 31.3802 28.3476 33.2489 29.7254 34.6268C31.1032 36.0046 32.9719 36.7786 34.9205 36.7786C36.869 36.7786 38.7377 36.0046 40.1155 34.6268C41.4934 33.2489 42.2674 31.3802 42.2674 29.4317C42.2674 27.4832 41.4934 25.6144 40.1155 24.2366C38.7377 22.8588 36.869 22.0848 34.9205 22.0848ZM24.6348 29.4317C24.6348 27.8025 25.0218 26.1967 25.7639 24.7463C26.506 23.296 27.582 22.0427 28.9033 21.0896C30.2247 20.1366 31.7535 19.511 33.3639 19.2645C34.9743 19.0179 36.6202 19.1574 38.1661 19.6715C39.7121 20.1856 41.1138 21.0595 42.2558 22.2214C43.3979 23.3833 44.2476 24.7998 44.735 26.3543C45.2225 27.9089 45.3337 29.557 45.0595 31.1629C44.7853 32.7688 44.1335 34.2866 43.1579 35.5914L47.7144 40.1465L45.6367 42.2256L41.0816 37.6705C39.5527 38.8142 37.7357 39.5098 35.834 39.6793C33.9322 39.8489 32.0208 39.4858 30.3137 38.6306C28.6066 37.7755 27.1712 36.4621 26.1682 34.8374C25.1653 33.2128 24.6343 31.341 24.6348 29.4317Z" fill="url(#paint1_linear_13426_3640)"/>
|
|
14
|
+
<defs>
|
|
15
|
+
<linearGradient id="paint0_linear_13426_3640" x1="24.924" y1="40.2251" x2="25.1613" y2="46.6866" gradientUnits="userSpaceOnUse">
|
|
16
|
+
<stop stop-color="white"/>
|
|
17
|
+
<stop offset="1" stop-color="#F2F2F2"/>
|
|
18
|
+
</linearGradient>
|
|
19
|
+
<linearGradient id="paint1_linear_13426_3640" x1="29.9925" y1="22.031" x2="45.2416" y2="42.2257" gradientUnits="userSpaceOnUse">
|
|
20
|
+
<stop stop-color="#4F4F4F"/>
|
|
21
|
+
<stop offset="1" stop-color="#212121"/>
|
|
22
|
+
</linearGradient>
|
|
23
|
+
</defs>
|
|
24
|
+
</svg>
|
|
Binary file
|