chore: add shafafiat page

This commit is contained in:
mahyargdz
2024-11-19 17:03:46 +03:30
parent 256924dd3a
commit 5401cb47c9
15 changed files with 716 additions and 445 deletions
+11 -11
View File
@@ -82,15 +82,7 @@
<a :href="href">صفحه اصلی</a>
</li>
</nuxt-link>
<nuxt-link
to="/ostandari/shafaf"
v-slot="{ navigate, href, isActive }"
custom
>
<li @click="navigate" :class="isActive ? 'active' : null">
<a :href="href">شفافیت</a>
</li>
</nuxt-link>
<!-- ***************** dynamic routes ***************** -->
<nuxt-link
v-for="item in header.categories"
@@ -104,7 +96,7 @@
custom
>
<li :class="isActive ? 'active' : null">
<a class="pointer">{{ item.title }}</a>
<a v-if="item.title !== 'شفافیت'" class="pointer">{{ item.title }}</a>
<div class="mega-menu">
<!-- item route -->
<!-- <ul class="tree">-->
@@ -120,7 +112,15 @@
</div>
</li>
</nuxt-link>
<nuxt-link
to="/ostandari/shafaf"
v-slot="{ navigate, href, isActive }"
custom
>
<li @click="navigate" :class="isActive ? 'active' : null">
<a :href="href">شفافیت</a>
</li>
</nuxt-link>
<!-- ***************** dynamic routes ***************** -->
<nuxt-link
:to="{
+40 -45
View File
@@ -29,54 +29,24 @@
</div>
</div>
<div class="cards">
<div class="item">
<img src="/static/images/1.svg" alt="" />
<div
v-for="(item, i) in items"
:key="i"
class="item">
<img :src="`/uploads/images/category/shafafiat/${item.icon}`" alt="شفافیت" />
<div class="parent">
<div class="right"></div>
<div class="left"></div>
</div>
<p>اسناد مالی</p>
</div>
<div class="item">
<img src="/static/images/1.svg" alt="" />
<div class="parent">
<div class="right"></div>
<div class="left"></div>
</div>
<p>اسناد مالی</p>
</div>
<div class="item">
<img src="/static/images/1.svg" alt="" />
<div class="parent">
<div class="right"></div>
<div class="left"></div>
</div>
<p>اسناد مالی</p>
</div>
<div class="item">
<img src="/static/images/1.svg" alt="" />
<div class="parent">
<div class="right"></div>
<div class="left"></div>
</div>
<p>اسناد مالی</p>
</div>
<div class="item">
<img src="/static/images/1.svg" alt="" />
<div class="parent">
<div class="right"></div>
<div class="left"></div>
</div>
<p>اسناد مالی</p>
</div>
<div class="item">
<img src="/static/images/1.svg" alt="" />
<div class="parent">
<div class="right"></div>
<div class="left"></div>
</div>
<p>اسناد مالی</p>
<nuxt-link :to="`/ostandari/category/${item.title}?type=news&id=${item._id}`">
<p>{{ item?.title }}</p>
</nuxt-link>
</div>
</div>
<div class="space"></div>
<!-- <div class="col-12 col-md-6 services-view">
@@ -110,11 +80,35 @@
<script>
export default {
data(){
return{
items: []
}
},
computed: {
currentPortal() {
return this.$route.params.portal;
},
},
mounted() {
this.getData();
},
methods: {
async getData() {
const req = await this.$axios.get('/api/public/shafafiat')
console.log(req.data.data, 'reqq');
this.items = req?.data?.data
},
turnCateString(str) {
if (str.length > 22) {
return str.substring(0,22) + '...'
}else{
return str
}
}
}
};
</script>
@@ -198,8 +192,8 @@ export default {
height: 50px;
}
.item img {
height: 80px;
width: 80px;
height: 65px;
width: 65px;
transition: transform 0.3s ease;
}
.item .parent {
@@ -231,6 +225,7 @@ export default {
}
.item p {
color: rgb(117, 117, 117);
font-size: 14px;
}
.item:hover {
background-color: rgb(247, 247, 247); /* تغییر رنگ پس‌زمینه به قرمز */
+14
View File
@@ -196,6 +196,13 @@
</CCol>
</CRow>
</CCol>
<CCol lg="6">
<h4>افزودن آیکون شفافیت:</h4>
<el-divider></el-divider>
<img :src="page.icon" alt="" style="width: 100%;">
<input type="file" ref="icon" @change="iconPreview">
<el-divider></el-divider>
</CCol>
<CCol lg="6">
<h4>مشخصات مدیر صفحه:</h4>
<el-divider></el-divider>
@@ -380,6 +387,9 @@ export default {
imagePreview(e) {
this.page.managerCover = URL.createObjectURL(e.target.files[0])
},
iconPreview(e) {
this.page.icon = URL.createObjectURL(e.target.files[0])
},
post() {
this.validation = {}
const data = new FormData()
@@ -412,6 +422,7 @@ export default {
data.append("managerName", this.page.managerName)
data.append("managerDescription", this.page.managerDescription)
if (this.$refs.managerCover.files[0]) data.append("managerCover", this.$refs.managerCover.files[0])
if (this.$refs.icon.files[0]) data.append("icon", this.$refs.icon.files[0])
this.$axios.post(`/api/admin/category`, data, this.axiosConfig)
.then(response => {
@@ -485,6 +496,8 @@ export default {
data.append("managerName", this.page.managerName)
data.append("managerDescription", this.page.managerDescription)
if (this.$refs.managerCover.files[0]) data.append("managerCover", this.$refs.managerCover.files[0])
if (this.$refs.icon.files[0]) data.append("icon", this.$refs.icon.files[0])
this.$axios.put(`/api/admin/category/${this.page._id}`, data, this.axiosConfig)
.then(response => {
@@ -679,6 +692,7 @@ export default {
hasManagerInfo: false,
managerName: '',
managerDescription: '',
icon: '',
managerCover: ''
}
}
File diff suppressed because it is too large Load Diff
+12 -3
View File
@@ -1,11 +1,20 @@
const Shafafiat = require("../models/shafafiat");
const Category = require("../models/Category");
module.exports.getAll = [
async (req, res) => {
try {
const shafafiat = await Shafafiat.find({});
const shafafCategory = await Category.findOne({ title: "شفافیت" });
if (!shafafCategory)
return res.status(404).json({
message: "شفافیت یافت نشد",
});
const shafafItems = await Category.find({
parent: shafafCategory._id,
});
return res.json({
data: shafafiat,
data: shafafItems,
});
} catch (error) {
return res500(res, error.message);
+3 -3
View File
@@ -66,7 +66,7 @@ const options = {
apis: ["./server/routes/*.js"],
};
const specs = swaggerJsdoc(options);
// const specs = swaggerJsdoc(options);
cronJobs();
createAdmins();
@@ -80,9 +80,9 @@ const corsOptions = {
// Init body-parser options (inbuilt with express)
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(fileUpload());
app.use(fileUpload({}));
app.use(cors(corsOptions));
app.use("/v1", swaggerUi.serve, swaggerUi.setup(specs, { explorer: true }));
// app.use("/v1", swaggerUi.serve, swaggerUi.setup(specs, { explorer: true }));
// Require & Import API routes
const Public = require("./routes/public");
const admin = require("./routes/admin");
+2
View File
@@ -70,6 +70,8 @@ const CategorySchema = mongoose.Schema({
managerCover: { type: String, get: image },
managerName: String,
managerDescription: String,
/** if category was shafafiat this icon is for that */
icon: String,
});
CategorySchema.index({ parent: 1, childs: 1 });
+13 -2
View File
@@ -5,11 +5,22 @@ const ShafafSchema = Schema(
{
title: { type: String },
icon: { type: String },
link: { type: String },
content: { type: String },
attachment: { type: String },
},
{
timestamps: true,
}
);
module.exports = model("Shafaf", ShafafSchema);
const ShafafCategory = Schema(
{},
{
timestamps: true,
}
);
module.exports = {
ShafafModel: model("Shafaf", ShafafSchema),
ShafafCategoryModel: model("ShafafCategory", ShafafCategory),
};
+1 -1
View File
@@ -759,6 +759,6 @@ module.exports._sr = {
flv: "È accettabile solo il formato flv",
},
},
supportedImageFormats: ["jpg", "jpeg", "png", "webp"],
supportedImageFormats: ["jpg", "jpeg", "png", "webp","svg","svg+xml"],
supportedVideoFormats: ["mp4", "avi", "wmv"],
};
+60 -59
View File
@@ -1,27 +1,27 @@
const {isVoter} = require('../authentication');
const {Router} = require('express')
const router = Router()
const { isVoter } = require("../authentication");
const { Router } = require("express");
const router = Router();
/////////////////////////////////////////////////////////// controllers
const categoryController = require('../controllers/categoryController');
const newsController = require('../controllers/newsController');
const galleryController = require('../controllers/galleryController');
const contentController = require('../controllers/contentController');
const commentController = require('../controllers/commentController');
const newsFileController = require('../controllers/newsFileController');
const linksController = require('../controllers/linksController');
const sliderController = require('../controllers/sliderController');
const homeController = require('../controllers/homeController');
const yearBannerController = require('../controllers/yearBannerController');
const counterDayController = require('../controllers/counterDayController');
const captchaController = require('../controllers/captchaController');
const dataBackupController = require('../controllers/dataBackupController');
const pollController = require('../controllers/pollController');
const meetingController = require('../controllers/meetingController');
const electionController = require('../controllers/electionController');
const feedBackController = require('../controllers/feedBackController');
const pdfController = require('../controllers/pdfController');
const categoryController = require("../controllers/categoryController");
const newsController = require("../controllers/newsController");
const galleryController = require("../controllers/galleryController");
const contentController = require("../controllers/contentController");
const commentController = require("../controllers/commentController");
const newsFileController = require("../controllers/newsFileController");
const linksController = require("../controllers/linksController");
const sliderController = require("../controllers/sliderController");
const homeController = require("../controllers/homeController");
const yearBannerController = require("../controllers/yearBannerController");
const counterDayController = require("../controllers/counterDayController");
const captchaController = require("../controllers/captchaController");
const dataBackupController = require("../controllers/dataBackupController");
const pollController = require("../controllers/pollController");
const meetingController = require("../controllers/meetingController");
const electionController = require("../controllers/electionController");
const feedBackController = require("../controllers/feedBackController");
const pdfController = require("../controllers/pdfController");
const shafafiatController = require("../controllers/shafafiatController");
/**
* @swagger
@@ -114,9 +114,11 @@ const pdfController = require('../controllers/pdfController');
* description: Internal server error
*/
// Home Swagger
router.get('/home', homeController.getHomeByUser);
router.get("/home", homeController.getHomeByUser);
router.get('/pdf', pdfController.GetAll);
router.get("/pdf", pdfController.GetAll);
// Shafafiat
router.get("/shafafiat", shafafiatController.getAll);
// Search Swagger
/**
@@ -162,7 +164,7 @@ router.get('/pdf', pdfController.GetAll);
* 500:
* description: Internal server error
*/
router.get('/search', homeController.search);
router.get("/search", homeController.search);
// Year Banner Swagger
/**
* @swagger
@@ -216,11 +218,10 @@ router.get('/search', homeController.search);
* 500:
* description: Internal server error
*/
router.get('/yearBanner', yearBannerController.getYearBanner);
router.get('/books', pdfController.GetAll)
router.get('/books/:id', pdfController.GetOne)
router.get("/yearBanner", yearBannerController.getYearBanner);
router.get("/books", pdfController.GetAll);
router.get("/books/:id", pdfController.GetOne);
// GetMenu Swagger
/**
@@ -282,12 +283,12 @@ router.get('/books/:id', pdfController.GetOne)
* 500:
* description: Internal server error
*/
router.get('/getMenu', categoryController.getMenu);
router.get("/getMenu", categoryController.getMenu);
// Filter Data
router.post('/news/:length/:userViews',newsController.FilterNews);
router.post("/news/:length/:userViews", newsController.FilterNews);
router.get('/news/ostandar' , newsController.OstandarNews)
router.get("/news/ostandar", newsController.OstandarNews);
// View News Swagger
/**
@@ -365,7 +366,7 @@ router.get('/news/ostandar' , newsController.OstandarNews)
* 500:
* description: Internal server error
*/
router.get('/viewNews/:title', newsController.viewNews);
router.get("/viewNews/:title", newsController.viewNews);
// Get News From DB Swagger
/**
* @swagger
@@ -448,7 +449,7 @@ router.get('/viewNews/:title', newsController.viewNews);
* 500:
* description: Internal server error
*/
router.get('/getnews', newsController.getAllNews);
router.get("/getnews", newsController.getAllNews);
// GetCategory From title Swagger
/**
* @swagger
@@ -583,7 +584,7 @@ router.get('/getnews', newsController.getAllNews);
* 500:
* description: Internal server error
*/
router.get('/getCategory/:title', newsController.getNewsByCategory);
router.get("/getCategory/:title", newsController.getNewsByCategory);
// Get Realated News Swagger
/**
* @swagger
@@ -638,7 +639,7 @@ router.get('/getCategory/:title', newsController.getNewsByCategory);
* 500:
* description: Internal server error
*/
router.get('/getRelatedNews', newsController.getRelated);
router.get("/getRelatedNews", newsController.getRelated);
// Get Gallery Cat Swagger
/**
* @swagger
@@ -763,9 +764,9 @@ router.get('/getRelatedNews', newsController.getRelated);
* 500:
* description: Internal server error
*/
router.get('/getGalleryCat/:catId', galleryController.getGalleryPublic);
router.get("/getGalleryCat/:catId", galleryController.getGalleryPublic);
router.get('/gallery/archive' , galleryController.GetArchive)
router.get("/gallery/archive", galleryController.GetArchive);
// Get All Gallery Swagger
/**
@@ -912,7 +913,7 @@ router.get('/gallery/archive' , galleryController.GetArchive)
* 500:
* description: Internal server error
*/
router.get('/getAllGallery', galleryController.getAllGallery);
router.get("/getAllGallery", galleryController.getAllGallery);
// Get Gallery Title
/**
* @swagger
@@ -974,7 +975,7 @@ router.get('/getAllGallery', galleryController.getAllGallery);
* 500:
* description: Internal server error
*/
router.get('/getGallery/:title', galleryController.viewGallery);
router.get("/getGallery/:title", galleryController.viewGallery);
// Get Related Gallery
/**
* @swagger
@@ -1039,7 +1040,7 @@ router.get('/getGallery/:title', galleryController.viewGallery);
* 500:
* description: Internal server error
*/
router.get('/getRelatedGallery', galleryController.getRelated);
router.get("/getRelatedGallery", galleryController.getRelated);
// router.get('/getFooter', contentController.footer);
// View Contents
/**
@@ -1089,7 +1090,7 @@ router.get('/getRelatedGallery', galleryController.getRelated);
* 500:
* description: Internal server error.
*/
router.get('/viewContent/:param', contentController.viewContent);
router.get("/viewContent/:param", contentController.viewContent);
// Add Comment
/**
* @swagger
@@ -1134,7 +1135,7 @@ router.get('/viewContent/:param', contentController.viewContent);
* 500:
* description: Internal server error.
*/
router.post('/addComment', commentController.addComment);
router.post("/addComment", commentController.addComment);
// Get Comments Id
/**
* @swagger
@@ -1163,7 +1164,7 @@ router.post('/addComment', commentController.addComment);
* 500:
* description: Internal server error.
*/
router.get('/getComments/:id', commentController.getCommentById);
router.get("/getComments/:id", commentController.getCommentById);
// Get News Files
/**
* @swagger
@@ -1203,7 +1204,7 @@ router.get('/getComments/:id', commentController.getCommentById);
* '500':
* description: Internal server error.
*/
router.get('/getNewsFile', newsFileController.getAllNewsFile);
router.get("/getNewsFile", newsFileController.getAllNewsFile);
// Get News File Title
/**
@@ -1241,7 +1242,7 @@ router.get('/getNewsFile', newsFileController.getAllNewsFile);
* '500':
* description: Internal server error.
*/
router.get('/getNewsFile/:title', newsFileController.viewNewsFile);
router.get("/getNewsFile/:title", newsFileController.viewNewsFile);
// Get Links
/**
* @swagger
@@ -1269,7 +1270,7 @@ router.get('/getNewsFile/:title', newsFileController.viewNewsFile);
* '500':
* description: Internal server error.
*/
router.get('/getLinks', linksController.getAllLinks);
router.get("/getLinks", linksController.getAllLinks);
// Get Sliders
/**
* @swagger
@@ -1297,7 +1298,7 @@ router.get('/getLinks', linksController.getAllLinks);
* '500':
* description: Internal server error.
*/
router.get('/getSliders', sliderController.getAllSliderByUser);
router.get("/getSliders", sliderController.getAllSliderByUser);
// Get Sections
/**
@@ -1337,7 +1338,7 @@ router.get('/getSliders', sliderController.getAllSliderByUser);
* '500':
* description: Internal server error.
*/
router.get('/getSections', newsController.getSections);
router.get("/getSections", newsController.getSections);
// Search News bytitle
/**
* @swagger
@@ -1366,7 +1367,7 @@ router.get('/getSections', newsController.getSections);
* '500':
* description: Internal server error.
*/
router.get('/searchnewsbytitle/:title', newsController.searchForSlider);
router.get("/searchnewsbytitle/:title", newsController.searchForSlider);
// Counter Day
/**
@@ -1387,7 +1388,7 @@ router.get('/searchnewsbytitle/:title', newsController.searchForSlider);
* '500':
* description: Internal server error.
*/
router.get('/counterDay', counterDayController.getCounterDayByUser);
router.get("/counterDay", counterDayController.getCounterDayByUser);
// Get Captcha
/**
* @swagger
@@ -1408,7 +1409,7 @@ router.get('/counterDay', counterDayController.getCounterDayByUser);
* '500':
* description: Internal server error.
*/
router.get('/getCaptcha', captchaController.getCaptcha);
router.get("/getCaptcha", captchaController.getCaptcha);
// Add Answer
/**
* @swagger
@@ -1450,7 +1451,7 @@ router.get('/getCaptcha', captchaController.getCaptcha);
* '500':
* description: Internal server error.
*/
router.post('/answer', pollController.answer);
router.post("/answer", pollController.answer);
// Meet Ostandari
/**
* @swagger
@@ -1519,7 +1520,7 @@ router.post('/answer', pollController.answer);
* '500':
* description: Internal server error.
*/
router.post('/meetingOstandar', meetingController.addMeeting);
router.post("/meetingOstandar", meetingController.addMeeting);
// Add FeedBack
/**
* @swagger
@@ -1576,7 +1577,7 @@ router.post('/meetingOstandar', meetingController.addMeeting);
* '500':
* description: Internal server error.
*/
router.post('/addFeedBack', feedBackController.addFeedBack);
router.post("/addFeedBack", feedBackController.addFeedBack);
////////////// election
// Get Electronic
@@ -1632,7 +1633,7 @@ router.post('/addFeedBack', feedBackController.addFeedBack);
* '500':
* description: Internal server error.
*/
router.get('/getElection' , isVoter , electionController.getElectionByUser);
router.get("/getElection", isVoter, electionController.getElectionByUser);
// Add Vote
/**
* @swagger
@@ -1675,7 +1676,7 @@ router.get('/getElection' , isVoter , electionController.getElectionByUser);
* '500':
* description: Internal server error.
*/
router.post('/addVote' , isVoter , electionController.addVote);
router.post("/addVote", isVoter, electionController.addVote);
///////////// backup
/**
@@ -1708,10 +1709,10 @@ router.post('/addVote' , isVoter , electionController.addVote);
* '500':
* description: Internal server error.
*/
router.get('/backup/:token', dataBackupController.createBackUp)
router.get("/backup/:token", dataBackupController.createBackUp);
//////////// add all news imported
// router.post('/addAllNews', newsController.addAllNews)
// router.get('/deleted', newsController.deleteAllNews)
module.exports = router
module.exports = router;
@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<polyline style="fill:#D6C8B0;" points="434.434,279.082 434.434,27.147 115.312,27.147 115.312,366.293 "/>
<polyline style="fill:#F9EED7;" points="405.747,251.934 405.747,0 86.625,0 86.625,339.145 "/>
<path style="fill:#FFD15C;" d="M458.517,478.602V287.553c0-20.334-16.483-36.817-36.817-36.817H257.815
c-15.138,0-28.732-9.265-34.268-23.354l-7.255-18.468c-5.535-14.089-19.13-23.354-34.268-23.354H90.3
c-20.334,0-36.817,16.483-36.817,36.817v256.226c0,18.445,14.953,33.398,33.398,33.398H425.12
C443.564,512,458.517,497.047,458.517,478.602z"/>
<path style="fill:#EDBB4C;" d="M75.286,478.602V222.376c0-20.334,16.483-36.817,36.817-36.817H90.3
c-20.334,0-36.817,16.483-36.817,36.817v256.226c0,18.445,14.953,33.397,33.398,33.397h21.803
C90.239,511.999,75.286,497.047,75.286,478.602z"/>
<circle style="fill:#DBCEBA;" cx="167.819" cy="80.225" r="35.468"/>
<path style="fill:#D6C8B0;" d="M155.241,80.227c0-15.582,10.052-28.806,24.022-33.569c-3.592-1.225-7.439-1.899-11.447-1.899
c-19.589,0-35.468,15.879-35.468,35.468c0,19.588,15.879,35.468,35.468,35.468c4.007,0,7.855-0.674,11.447-1.899
C165.293,109.033,155.241,95.808,155.241,80.227z"/>
<path style="fill:#FF525D;" d="M132.347,151.163c0-19.589,15.879-35.468,35.468-35.468s35.468,15.879,35.468,35.468"/>
<g>
<path style="fill:#34ABE0;" d="M363.396,63.069H249.899c-4.515,0-8.176-3.661-8.176-8.176s3.661-8.176,8.176-8.176h113.497
c4.517,0,8.176,3.661,8.176,8.176S367.913,63.069,363.396,63.069z"/>
<path style="fill:#34ABE0;" d="M363.396,223.181h-46.573c-4.517,0-8.176-3.661-8.176-8.176s3.66-8.176,8.176-8.176h46.573
c4.517,0,8.176,3.661,8.176,8.176S367.913,223.181,363.396,223.181z"/>
<path style="fill:#34ABE0;" d="M363.396,183.154H249.899c-4.515,0-8.176-3.661-8.176-8.176s3.661-8.176,8.176-8.176h113.497
c4.517,0,8.176,3.661,8.176,8.176S367.913,183.154,363.396,183.154z"/>
<path style="fill:#34ABE0;" d="M363.396,103.097H249.899c-4.515,0-8.176-3.661-8.176-8.176c0-4.515,3.661-8.176,8.176-8.176
h113.497c4.517,0,8.176,3.661,8.176,8.176C371.572,99.437,367.913,103.097,363.396,103.097z"/>
<path style="fill:#34ABE0;" d="M363.396,143.126H249.899c-4.515,0-8.176-3.661-8.176-8.176s3.661-8.176,8.176-8.176h113.497
c4.517,0,8.176,3.661,8.176,8.176S367.913,143.126,363.396,143.126z"/>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 10 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 4.9 KiB

@@ -0,0 +1 @@
<svg id="Capa_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m241 132.33h30v84.91h-30z" fill="#393d9d"/><g fill="#350d65"><path d="m256 132.33h15v84.91h-15z"/><path d="m320.042 254.958h83.958v30h-83.958z"/><path d="m435.5 316.458h30v87.542h-30z"/></g><path d="m108 254.958h83.958v30h-83.958z" fill="#393d9d"/><path d="m46.5 316.458h30v87.542h-30z" fill="#393d9d"/><path d="m357.5 73.67c0 40.62-33.05 73.66-73.67 73.66h-55.66c-40.62 0-73.67-33.04-73.67-73.66s33.05-73.67 73.67-73.67h55.66c40.62 0 73.67 33.05 73.67 73.67z" fill="#ffb721"/><path d="m0 208.458h123v123h-123z" fill="#14cffe"/><path d="m389 208.458h123v123h-123z" fill="#28aaf9"/><path d="m389 389h123v123h-123z" fill="#fe9b2a"/><path d="m0 389h123v123h-123z" fill="#ffb721"/><path d="m343.64 269.96-87.64 72.14-87.64-72.14 87.64-72.14z" fill="#fe4945"/><path d="m283.83 147.33h-27.83v-147.33h27.83c40.62 0 73.67 33.05 73.67 73.67s-33.05 73.66-73.67 73.66z" fill="#fe9b2a"/><path d="m256 197.82 87.64 72.14-87.64 72.14z" fill="#fa185e"/></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB