@opengis/cms 0.0.22 → 0.0.26
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/dist/index-W-qQIppj-DRzFSjU1.js +2452 -0
- package/dist/index.html +28 -34
- package/dist/index.js +13915 -0
- package/dist/index.umd.cjs +153 -0
- package/package.json +4 -11
- package/dist/assets/AddUser-CX-McfRW.js +0 -1
- package/dist/assets/ApiKeys-DSv1exYv.js +0 -16
- package/dist/assets/Appearance-DDtOUvCV.js +0 -6
- package/dist/assets/ArticlesPage-D6B3cZsl.js +0 -6
- package/dist/assets/BuilderPage-CCeSMVWe.js +0 -1
- package/dist/assets/CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-DVYVfYF4.js +0 -1
- package/dist/assets/CollectionsPage-CHk8Cn5k.js +0 -1
- package/dist/assets/Dashboard-Bs7sXO6h.js +0 -11
- package/dist/assets/EditCollectionPage-gPuLJrN8.js +0 -41
- package/dist/assets/EmailPage-DhlWsPxk.js +0 -1
- package/dist/assets/EmptyData-Ct-xQv_N.js +0 -1
- package/dist/assets/FeedbackPage-DtaOncVv.js +0 -1
- package/dist/assets/Logs-CZ5klHNK.js +0 -1
- package/dist/assets/MediaBreadcrumb-BpOxt5PK.js +0 -11
- package/dist/assets/MediaPage-DqRcZFlO.js +0 -16
- package/dist/assets/MenuAddPage-BLcoVgrS.js +0 -1
- package/dist/assets/MenuItemPage-B2otXqkz.js +0 -20
- package/dist/assets/MenuPage-C00m4Fc_.js +0 -1
- package/dist/assets/MonacoEditor.vue_vue_type_script_setup_true_lang-CjoEsC67.js +0 -3
- package/dist/assets/PermissionsPage-LtqcCJ14.js +0 -1
- package/dist/assets/Settings-BHH6RoBP.js +0 -1
- package/dist/assets/SettingsTable-CY5pZx1z.js +0 -1
- package/dist/assets/SettingsTitle-t4WJBFxZ.js +0 -1
- package/dist/assets/SingletonsPage-Bn2Ypjhs.js +0 -6
- package/dist/assets/TagsPage-DAiakEth.js +0 -1
- package/dist/assets/UniversalTable.vue_vue_type_script_setup_true_lang-BQ5m4aZd.js +0 -11
- package/dist/assets/UniversalTablePagination.vue_vue_type_script_setup_true_lang-DppVBws0.js +0 -1
- package/dist/assets/Users-CMH5j0db.js +0 -1
- package/dist/assets/UsersPage-CDGreEib.js +0 -1
- package/dist/assets/arrow-up-DCe0WsrM.js +0 -16
- package/dist/assets/calendar-o9t4MkD2.js +0 -6
- package/dist/assets/chevron-left-WFftVS9c.js +0 -6
- package/dist/assets/chevron-right-BiiSb3Be.js +0 -6
- package/dist/assets/contentForm-unZQhjCu.js +0 -6
- package/dist/assets/en-BDx3Svx8.js +0 -1
- package/dist/assets/eye-Dijywc6g.js +0 -6
- package/dist/assets/file-B_duymIT.js +0 -6
- package/dist/assets/general-CkN_0qIV.js +0 -1
- package/dist/assets/index-BIp7eSXk.js +0 -1
- package/dist/assets/index-DCW2e4Az.js +0 -9
- package/dist/assets/index-DGweaj24.js +0 -1
- package/dist/assets/index-W-qQIppj-BDlsxaGB.js +0 -1
- package/dist/assets/index-W-qQIppj-BsopI3Hz-BIZR-dhy.js +0 -1
- package/dist/assets/index-oQz9FOqL.css +0 -1
- package/dist/assets/index-yMJAVBXk.js +0 -290
- package/dist/assets/list-CXRbSNky.js +0 -6
- package/dist/assets/logo-Cct5WB26.png +0 -0
- package/dist/assets/pencil-CwnPP4IJ.js +0 -6
- package/dist/assets/plus-DLR44m6p.js +0 -6
- package/dist/assets/save-FeDrOUOd.js +0 -6
- package/dist/assets/search-C4-fHihx.js +0 -6
- package/dist/assets/square-pen-xVs4e8Yb.js +0 -6
- package/dist/assets/trash-2-BGXMNU3d.js +0 -6
- package/dist/assets/uk-BA7DIKEL.js +0 -1
- package/dist/assets/useDebounce-DFq3rxAW.js +0 -1
- package/dist/assets/vs-form-reletion-link-C-xrdHDl.js +0 -20
- package/dist/assets/vs-form-reletion-link-bk-9ZkDH.css +0 -1
- package/dist/assets/vue.-sixQ7xP-CUPNuJcq.js +0 -1
- package/dist/assets/vuedraggable.umd-W_2WTF6i.js +0 -14
- package/dist/assets/x-D2t-wfBe.js +0 -6
- package/module/cms/card/cms.content.table/index.yml +0 -17
- package/module/cms/card/cms.content.table/main_info.hbs +0 -26
- package/module/cms/card/cms.menu.table/content_info.hbs +0 -16
- package/module/cms/card/cms.menu.table/index.yml +0 -18
- package/module/cms/card/cms.menu.table/main_info.hbs +0 -22
- package/module/cms/card/cms.settings.table/index.yml +0 -13
- package/module/cms/card/cms.settings.table/main_info.hbs +0 -20
- package/module/cms/cls/content.status.json +0 -18
- package/module/cms/cls/user_type.json +0 -10
- package/module/cms/form/admin.users.form.json +0 -78
- package/module/cms/form/cms.content.form.json +0 -79
- package/module/cms/form/cms.menu.form.json +0 -69
- package/module/cms/form/cms.settings.form.json +0 -32
- package/module/cms/menu.json +0 -24
- package/module/cms/router.js +0 -169
- package/module/cms/select/cms.page_type.sql +0 -2
- package/module/cms/select/collection.sql +0 -1
- package/module/cms/select/locale.sql +0 -17
- package/module/cms/select/news_tag_id.sql +0 -12
- package/module/cms/select/tag_id.sql +0 -1
- package/module/cms/table/admin.users.table.json +0 -54
- package/module/cms/table/cms.content.table.json +0 -106
- package/module/cms/table/cms.menu.table.json +0 -73
- package/module/cms/table/cms.settings.table.json +0 -57
- package/module/cms/table/collection.default.table.json +0 -102
- package/module/cms/table/single.default.table.json +0 -115
- package/src/App.css +0 -52
- package/src/App.vue +0 -62
- package/src/assets/image.png +0 -0
- package/src/assets/main.css +0 -3
- package/src/assets/tailwind-3.4.17.js +0 -113
- package/src/components/LanguageSwitcher.vue +0 -73
- package/src/components/SettingsCard.vue +0 -40
- package/src/components/builder/CreateForm.vue +0 -128
- package/src/components/builder/formTypeSchema.js +0 -145
- package/src/components/builder/tabs/index.ts +0 -9
- package/src/components/builder/tabs/vs-builder-edit.vue +0 -133
- package/src/components/builder/tabs/vs-builder-monaco.vue +0 -29
- package/src/components/builder/tabs/vs-builder-preview.vue +0 -39
- package/src/components/builder/vs-builder-datatable-controls.vue +0 -138
- package/src/components/builder/vs-builder-datatable-form.vue +0 -80
- package/src/components/builder/vs-builder-datatable.vue +0 -191
- package/src/components/builder/vs-builder-list-item.vue +0 -110
- package/src/components/collections/CollectionsBreadcrumb.vue +0 -52
- package/src/components/collections/CollectionsGrid.vue +0 -176
- package/src/components/collections/ContentBlock.vue +0 -75
- package/src/components/collections/formWrapper.vue +0 -156
- package/src/components/dashboard/ContentItem.vue +0 -82
- package/src/components/dashboard/DashboardHeader.vue +0 -33
- package/src/components/dashboard/QuickActions.vue +0 -84
- package/src/components/dashboard/RecentContent.vue +0 -54
- package/src/components/dashboard/StatCard.vue +0 -63
- package/src/components/dashboard/StatsGrid.vue +0 -28
- package/src/components/form-components/MonacoEditor.vue +0 -104
- package/src/components/form-components/VsFormMeta.vue +0 -40
- package/src/components/form-components/VsFormTags.vue +0 -150
- package/src/components/form-components/custom-datatable/vs-form-custom-datatable-add.vue +0 -84
- package/src/components/form-components/custom-datatable/vs-form-custom-datatable-controls.vue +0 -106
- package/src/components/form-components/index.js +0 -23
- package/src/components/form-components/reference/vs-form-reference-add.vue +0 -92
- package/src/components/form-components/reference/vs-form-reference-controls.vue +0 -101
- package/src/components/form-components/reference-list/referenceOptionList.js +0 -78
- package/src/components/form-components/reference-list/vs-form-reference-add.vue +0 -145
- package/src/components/form-components/reference-list/vs-form-reference-choce.vue +0 -39
- package/src/components/form-components/reference-list/vs-form-reference-controls.vue +0 -110
- package/src/components/form-components/reference-skeleton/about-skeleton.vue +0 -37
- package/src/components/form-components/reference-skeleton/banner-skeleton.vue +0 -29
- package/src/components/form-components/reference-skeleton/body-skeleton.vue +0 -56
- package/src/components/form-components/reference-skeleton/cards-skeleton.vue +0 -47
- package/src/components/form-components/reference-skeleton/documents-skeleton.vue +0 -64
- package/src/components/form-components/reference-skeleton/faq-skeleton.vue +0 -64
- package/src/components/form-components/reference-skeleton/form-skeleton.vue +0 -41
- package/src/components/form-components/reference-skeleton/index.js +0 -36
- package/src/components/form-components/reference-skeleton/infoLine-skeleton.vue +0 -37
- package/src/components/form-components/reference-skeleton/news-skeleton.vue +0 -54
- package/src/components/form-components/reference-skeleton/slider-skeleton.vue +0 -41
- package/src/components/form-components/reference-skeleton/tabs-skeleton.vue +0 -40
- package/src/components/form-components/reference-skeleton/team-skeleton.vue +0 -103
- package/src/components/form-components/reference-skeleton/usefulLinks-skeleton.vue +0 -52
- package/src/components/form-components/reference-skeleton/video-skeleton.vue +0 -36
- package/src/components/form-components/testReferenceTypes.js +0 -773
- package/src/components/form-components/vs-form-color-picker.vue +0 -29
- package/src/components/form-components/vs-form-custom-datatable.vue +0 -214
- package/src/components/form-components/vs-form-integer.vue +0 -86
- package/src/components/form-components/vs-form-key-value.vue +0 -201
- package/src/components/form-components/vs-form-marcdown-md.vue +0 -3
- package/src/components/form-components/vs-form-media-select.vue +0 -780
- package/src/components/form-components/vs-form-reference-list.vue +0 -97
- package/src/components/form-components/vs-form-reference.vue +0 -59
- package/src/components/form-components/vs-form-relation.vue +0 -30
- package/src/components/form-components/vs-form-reletion-link.vue +0 -34
- package/src/components/form-components/vs-form-select-collection.vue +0 -0
- package/src/components/form-components/vs-form-slug.vue +0 -72
- package/src/components/form-components/vs-form-tiptap.vue +0 -7
- package/src/components/form-components/vs-richtext-md.vue +0 -3
- package/src/components/icons/BellIcon.vue +0 -17
- package/src/components/icons/GlobeIcon.vue +0 -18
- package/src/components/icons/KeyIcon.vue +0 -20
- package/src/components/icons/PaletteIcon.vue +0 -22
- package/src/components/icons/SettingsIcon.vue +0 -19
- package/src/components/icons/ShieldIcon.vue +0 -18
- package/src/components/icons/UsersIcon.vue +0 -19
- package/src/components/icons/icon-chevron-right.vue +0 -16
- package/src/components/icons/icon-drag.vue +0 -20
- package/src/components/icons/icon-file-text.vue +0 -21
- package/src/components/icons/icon-folder.vue +0 -18
- package/src/components/icons/icon-grid.vue +0 -17
- package/src/components/icons/icon-group.vue +0 -19
- package/src/components/icons/icon-home.vue +0 -16
- package/src/components/icons/icon-image.vue +0 -18
- package/src/components/icons/icon-list.vue +0 -20
- package/src/components/icons/icon-more.vue +0 -17
- package/src/components/icons/icon-plus.vue +0 -17
- package/src/components/icons-types/icon-array.vue +0 -22
- package/src/components/icons-types/icon-boolean.vue +0 -18
- package/src/components/icons-types/icon-datalist.vue +0 -22
- package/src/components/icons-types/icon-date.vue +0 -20
- package/src/components/icons-types/icon-datetime.vue +0 -20
- package/src/components/icons-types/icon-file.vue +0 -21
- package/src/components/icons-types/icon-gallery.vue +0 -18
- package/src/components/icons-types/icon-image.vue +0 -19
- package/src/components/icons-types/icon-integer.vue +0 -20
- package/src/components/icons-types/icon-merkdown.vue +0 -18
- package/src/components/icons-types/icon-multiselect.vue +0 -22
- package/src/components/icons-types/icon-number.vue +0 -20
- package/src/components/icons-types/icon-radio.vue +0 -22
- package/src/components/icons-types/icon-reference-list.vue +0 -22
- package/src/components/icons-types/icon-reference.vue +0 -20
- package/src/components/icons-types/icon-relation.vue +0 -22
- package/src/components/icons-types/icon-richtext.vue +0 -18
- package/src/components/icons-types/icon-select.vue +0 -22
- package/src/components/icons-types/icon-slug.vue +0 -19
- package/src/components/icons-types/icon-text.vue +0 -19
- package/src/components/icons-types/index.js +0 -43
- package/src/components/layout/Layout.vue +0 -67
- package/src/components/layout/Sidebar.vue +0 -128
- package/src/components/media/FileUploadProgress.vue +0 -29
- package/src/components/media/MediaBreadcrumb.vue +0 -42
- package/src/components/media/MediaCreateFolder.vue +0 -59
- package/src/components/media/MediaFileInfo.vue +0 -148
- package/src/components/media/MediaGrid.vue +0 -148
- package/src/components/media/MediaList.vue +0 -148
- package/src/components/media/MediaViewControls.vue +0 -38
- package/src/components/media/TypeTag.vue +0 -23
- package/src/components/menu/AddNewItemInTree.vue +0 -75
- package/src/components/menu/MenuBody.vue +0 -149
- package/src/components/menu/MenuItem.vue +0 -73
- package/src/components/menu/MenuList.vue +0 -101
- package/src/components/referencec/index.ts +0 -7
- package/src/components/referencec/vs-reference-faq.vue +0 -61
- package/src/components/referencec/vs-reference-user-card.vue +0 -40
- package/src/components/settings/NotificationSettings.vue +0 -32
- package/src/components/settings/SettingsTable.vue +0 -50
- package/src/components/settings/SettingsTitle.vue +0 -33
- package/src/components/settings/SettingsToggleItem.vue +0 -25
- package/src/components/sidebar/DropdownMenu.vue +0 -34
- package/src/components/sidebar/SettingsSidebar.vue +0 -121
- package/src/components/sidebar/SidebarFooter.vue +0 -52
- package/src/components/sidebar/SidebarHeader.vue +0 -57
- package/src/components/sidebar/SidebarMenu.vue +0 -78
- package/src/components/ui/EmptyData.vue +0 -76
- package/src/components/ui/UniversalTable.vue +0 -310
- package/src/components/ui/UniversalTableFilters.vue +0 -0
- package/src/components/ui/UniversalTablePagination.vue +0 -118
- package/src/components/ui/VsPreview.vue +0 -75
- package/src/composables/useCollectionView.ts +0 -21
- package/src/composables/useDebounce.ts +0 -26
- package/src/composables/useMonaco.ts +0 -28
- package/src/composables/useTheme.ts +0 -40
- package/src/content/test-slug/metadata.json +0 -1
- package/src/i18n.ts +0 -75
- package/src/index.css +0 -3
- package/src/index.ts +0 -122
- package/src/locales/en.json +0 -778
- package/src/locales/uk.json +0 -797
- package/src/main.ts +0 -41
- package/src/pages/Dashboard.vue +0 -168
- package/src/pages/EmailPage.vue +0 -183
- package/src/pages/FeedbackPage.vue +0 -232
- package/src/pages/MediaPage.vue +0 -372
- package/src/pages/TagsPage.vue +0 -207
- package/src/pages/builder/BuilderPage.vue +0 -195
- package/src/pages/builder/EditCollectionPage.vue +0 -163
- package/src/pages/collections/ArticlesPage.vue +0 -385
- package/src/pages/collections/CollectionsPage.vue +0 -146
- package/src/pages/collections/SingletonsPage.vue +0 -119
- package/src/pages/collections/contentForm.vue +0 -484
- package/src/pages/collections/schema/seo.ts +0 -27
- package/src/pages/menu/MenuAddPage.vue +0 -123
- package/src/pages/menu/MenuItemPage.vue +0 -183
- package/src/pages/menu/MenuPage.vue +0 -133
- package/src/pages/settings/ApiKeys.vue +0 -75
- package/src/pages/settings/Appearance.vue +0 -80
- package/src/pages/settings/Logs.vue +0 -260
- package/src/pages/settings/PermissionsPage.vue +0 -237
- package/src/pages/settings/Settings.vue +0 -186
- package/src/pages/settings/Users.vue +0 -109
- package/src/pages/settings/general.vue +0 -154
- package/src/pages/settings/generalScheme.js +0 -132
- package/src/pages/users/AddUser.vue +0 -106
- package/src/pages/users/UsersPage.vue +0 -98
- package/src/props/builder.ts +0 -67
- package/src/props/content.ts +0 -56
- package/src/props/media.ts +0 -63
- package/src/router/index.ts +0 -181
- package/src/types/fastify-auth.d.ts +0 -4
- package/src/utils/getField.js +0 -270
- package/src/utils/translit.js +0 -19
- package/src/vite-env.d.ts +0 -1
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-list"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<line x1="8" x2="21" y1="6" y2="6"></line>
|
|
16
|
-
<line x1="8" x2="21" y1="12" y2="12"></line>
|
|
17
|
-
<line x1="8" x2="21" y1="18" y2="18"></line>
|
|
18
|
-
<line x1="3" x2="3.01" y1="6" y2="6"></line>
|
|
19
|
-
<line x1="3" x2="3.01" y1="12" y2="12"></line>
|
|
20
|
-
<line x1="3" x2="3.01" y1="18" y2="18"></line>
|
|
21
|
-
</svg>
|
|
22
|
-
</template>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-toggle-left"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<rect width="20" height="12" x="2" y="6" rx="6" ry="6"></rect>
|
|
16
|
-
<circle cx="8" cy="12" r="2"></circle>
|
|
17
|
-
</svg>
|
|
18
|
-
</template>
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-list"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<line x1="8" x2="21" y1="6" y2="6"></line>
|
|
16
|
-
<line x1="8" x2="21" y1="12" y2="12"></line>
|
|
17
|
-
<line x1="8" x2="21" y1="18" y2="18"></line>
|
|
18
|
-
<line x1="3" x2="3.01" y1="6" y2="6"></line>
|
|
19
|
-
<line x1="3" x2="3.01" y1="12" y2="12"></line>
|
|
20
|
-
<line x1="3" x2="3.01" y1="18" y2="18"></line>
|
|
21
|
-
</svg>
|
|
22
|
-
</template>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-calendar"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<path d="M8 2v4"></path>
|
|
16
|
-
<path d="M16 2v4"></path>
|
|
17
|
-
<rect width="18" height="18" x="3" y="4" rx="2"></rect>
|
|
18
|
-
<path d="M3 10h18"></path>
|
|
19
|
-
</svg>
|
|
20
|
-
</template>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-calendar"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<path d="M8 2v4"></path>
|
|
16
|
-
<path d="M16 2v4"></path>
|
|
17
|
-
<rect width="18" height="18" x="3" y="4" rx="2"></rect>
|
|
18
|
-
<path d="M3 10h18"></path>
|
|
19
|
-
</svg>
|
|
20
|
-
</template>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-file-text"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path>
|
|
16
|
-
<path d="M14 2v4a2 2 0 0 0 2 2h4"></path>
|
|
17
|
-
<path d="M10 9H8"></path>
|
|
18
|
-
<path d="M16 13H8"></path>
|
|
19
|
-
<path d="M16 17H8"></path>
|
|
20
|
-
</svg>
|
|
21
|
-
</template>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="lucide lucide-image-icon w-5 h-5 mr-3"
|
|
13
|
-
>
|
|
14
|
-
<rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect>
|
|
15
|
-
<circle cx="9" cy="9" r="2"></circle>
|
|
16
|
-
<path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"></path>
|
|
17
|
-
</svg>
|
|
18
|
-
</template>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-image"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect>
|
|
16
|
-
<circle cx="9" cy="9" r="2"></circle>
|
|
17
|
-
<path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"></path>
|
|
18
|
-
</svg>
|
|
19
|
-
</template>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-hash"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<line x1="4" x2="20" y1="9" y2="9"></line>
|
|
16
|
-
<line x1="4" x2="20" y1="15" y2="15"></line>
|
|
17
|
-
<line x1="10" x2="8" y1="3" y2="21"></line>
|
|
18
|
-
<line x1="16" x2="14" y1="3" y2="21"></line>
|
|
19
|
-
</svg>
|
|
20
|
-
</template>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-code"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<polyline points="16 18 22 12 16 6"></polyline>
|
|
16
|
-
<polyline points="8 6 2 12 8 18"></polyline>
|
|
17
|
-
</svg>
|
|
18
|
-
</template>
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-list"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<line x1="8" x2="21" y1="6" y2="6"></line>
|
|
16
|
-
<line x1="8" x2="21" y1="12" y2="12"></line>
|
|
17
|
-
<line x1="8" x2="21" y1="18" y2="18"></line>
|
|
18
|
-
<line x1="3" x2="3.01" y1="6" y2="6"></line>
|
|
19
|
-
<line x1="3" x2="3.01" y1="12" y2="12"></line>
|
|
20
|
-
<line x1="3" x2="3.01" y1="18" y2="18"></line>
|
|
21
|
-
</svg>
|
|
22
|
-
</template>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-hash"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<line x1="4" x2="20" y1="9" y2="9"></line>
|
|
16
|
-
<line x1="4" x2="20" y1="15" y2="15"></line>
|
|
17
|
-
<line x1="10" x2="8" y1="3" y2="21"></line>
|
|
18
|
-
<line x1="16" x2="14" y1="3" y2="21"></line>
|
|
19
|
-
</svg>
|
|
20
|
-
</template>
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-list"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<line x1="8" x2="21" y1="6" y2="6"></line>
|
|
16
|
-
<line x1="8" x2="21" y1="12" y2="12"></line>
|
|
17
|
-
<line x1="8" x2="21" y1="18" y2="18"></line>
|
|
18
|
-
<line x1="3" x2="3.01" y1="6" y2="6"></line>
|
|
19
|
-
<line x1="3" x2="3.01" y1="12" y2="12"></line>
|
|
20
|
-
<line x1="3" x2="3.01" y1="18" y2="18"></line>
|
|
21
|
-
</svg>
|
|
22
|
-
</template>
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-list"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<line x1="8" x2="21" y1="6" y2="6"></line>
|
|
16
|
-
<line x1="8" x2="21" y1="12" y2="12"></line>
|
|
17
|
-
<line x1="8" x2="21" y1="18" y2="18"></line>
|
|
18
|
-
<line x1="3" x2="3.01" y1="6" y2="6"></line>
|
|
19
|
-
<line x1="3" x2="3.01" y1="12" y2="12"></line>
|
|
20
|
-
<line x1="3" x2="3.01" y1="18" y2="18"></line>
|
|
21
|
-
</svg>
|
|
22
|
-
</template>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-link2"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<path d="M9 17H7A5 5 0 0 1 7 7h2"></path>
|
|
16
|
-
<path d="M15 7h2a5 5 0 1 1 0 10h-2"></path>
|
|
17
|
-
<line x1="8" x2="16" y1="12" y2="12"></line>
|
|
18
|
-
</svg>
|
|
19
|
-
</template>
|
|
20
|
-
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-list"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<line x1="8" x2="21" y1="6" y2="6"></line>
|
|
16
|
-
<line x1="8" x2="21" y1="12" y2="12"></line>
|
|
17
|
-
<line x1="8" x2="21" y1="18" y2="18"></line>
|
|
18
|
-
<line x1="3" x2="3.01" y1="6" y2="6"></line>
|
|
19
|
-
<line x1="3" x2="3.01" y1="12" y2="12"></line>
|
|
20
|
-
<line x1="3" x2="3.01" y1="18" y2="18"></line>
|
|
21
|
-
</svg>
|
|
22
|
-
</template>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-code"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<polyline points="16 18 22 12 16 6"></polyline>
|
|
16
|
-
<polyline points="8 6 2 12 8 18"></polyline>
|
|
17
|
-
</svg>
|
|
18
|
-
</template>
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-list"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<line x1="8" x2="21" y1="6" y2="6"></line>
|
|
16
|
-
<line x1="8" x2="21" y1="12" y2="12"></line>
|
|
17
|
-
<line x1="8" x2="21" y1="18" y2="18"></line>
|
|
18
|
-
<line x1="3" x2="3.01" y1="6" y2="6"></line>
|
|
19
|
-
<line x1="3" x2="3.01" y1="12" y2="12"></line>
|
|
20
|
-
<line x1="3" x2="3.01" y1="18" y2="18"></line>
|
|
21
|
-
</svg>
|
|
22
|
-
</template>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-link2"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<path d="M9 17H7A5 5 0 0 1 7 7h2"></path>
|
|
16
|
-
<path d="M15 7h2a5 5 0 1 1 0 10h-2"></path>
|
|
17
|
-
<line x1="8" x2="16" y1="12" y2="12"></line>
|
|
18
|
-
</svg>
|
|
19
|
-
</template>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width="24"
|
|
5
|
-
height="24"
|
|
6
|
-
viewBox="0 0 24 24"
|
|
7
|
-
fill="none"
|
|
8
|
-
stroke="currentColor"
|
|
9
|
-
stroke-width="2"
|
|
10
|
-
stroke-linecap="round"
|
|
11
|
-
stroke-linejoin="round"
|
|
12
|
-
class="w-4 h-4 text-gray-700 lucide lucide-type"
|
|
13
|
-
__v0_r="0,5361,5384"
|
|
14
|
-
>
|
|
15
|
-
<polyline points="4 7 4 4 20 4 20 7"></polyline>
|
|
16
|
-
<line x1="9" x2="15" y1="20" y2="20"></line>
|
|
17
|
-
<line x1="12" x2="12" y1="4" y2="20"></line>
|
|
18
|
-
</svg>
|
|
19
|
-
</template>
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import IconText from "./icon-text.vue";
|
|
2
|
-
import IconNumber from "./icon-number.vue";
|
|
3
|
-
import IconDate from "./icon-date.vue";
|
|
4
|
-
import IconDatetime from "./icon-datetime.vue";
|
|
5
|
-
import IconRichtext from "./icon-richtext.vue";
|
|
6
|
-
import IconBoolean from "./icon-boolean.vue";
|
|
7
|
-
import IconFile from "./icon-file.vue";
|
|
8
|
-
import IconImage from "./icon-image.vue";
|
|
9
|
-
import IconArray from "./icon-array.vue";
|
|
10
|
-
import IconSelect from "./icon-select.vue";
|
|
11
|
-
import IconSlug from "./icon-slug.vue";
|
|
12
|
-
import IconDatalist from "./icon-datalist.vue";
|
|
13
|
-
import IconReference from "./icon-reference.vue";
|
|
14
|
-
import IconReferenceList from "./icon-reference-list.vue";
|
|
15
|
-
import IconRelation from "./icon-relation.vue";
|
|
16
|
-
import IconMultiselect from "./icon-multiselect.vue";
|
|
17
|
-
import IconRadio from "./icon-radio.vue";
|
|
18
|
-
import IconInteger from "./icon-integer.vue";
|
|
19
|
-
import IconGallery from "./icon-gallery.vue";
|
|
20
|
-
import IconMarkdown from "./icon-merkdown.vue";
|
|
21
|
-
|
|
22
|
-
export default {
|
|
23
|
-
IconText,
|
|
24
|
-
IconNumber,
|
|
25
|
-
IconDate,
|
|
26
|
-
IconDatetime,
|
|
27
|
-
IconRichtext,
|
|
28
|
-
IconBoolean,
|
|
29
|
-
IconFile,
|
|
30
|
-
IconImage,
|
|
31
|
-
IconArray,
|
|
32
|
-
IconSelect,
|
|
33
|
-
IconSlug,
|
|
34
|
-
IconDatalist,
|
|
35
|
-
IconReference,
|
|
36
|
-
IconReferenceList,
|
|
37
|
-
IconRelation,
|
|
38
|
-
IconMultiselect,
|
|
39
|
-
IconRadio,
|
|
40
|
-
IconInteger,
|
|
41
|
-
IconGallery,
|
|
42
|
-
IconMarkdown,
|
|
43
|
-
};
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div
|
|
3
|
-
class="flex-1 min-h-screen overflow-y-auto bg-gradient-to-br from-slate-50 via-blue-50 to-indigo-50 dark:from-slate-900 dark:via-slate-800 dark:to-slate-900"
|
|
4
|
-
>
|
|
5
|
-
<div class="flex h-screen transition-colors">
|
|
6
|
-
<SettingsSidebar v-if="route.path.includes('/settings')" />
|
|
7
|
-
<Sidebar v-else />
|
|
8
|
-
|
|
9
|
-
<main class="flex-1 p-4 overflow-y-auto md:p-6">
|
|
10
|
-
<router-view></router-view>
|
|
11
|
-
</main>
|
|
12
|
-
</div>
|
|
13
|
-
</div>
|
|
14
|
-
</template>
|
|
15
|
-
|
|
16
|
-
<script setup lang="ts">
|
|
17
|
-
import { onMounted, ref, provide, getCurrentInstance } from "vue";
|
|
18
|
-
import { useTheme } from "../../composables/useTheme";
|
|
19
|
-
import Sidebar from "./Sidebar.vue";
|
|
20
|
-
import SettingsSidebar from "../sidebar/SettingsSidebar.vue";
|
|
21
|
-
import { useRoute } from "vue-router";
|
|
22
|
-
const { theme } = useTheme();
|
|
23
|
-
const route = useRoute();
|
|
24
|
-
// Динамічний список типів контенту
|
|
25
|
-
const contentTypes = ref<any[]>([]);
|
|
26
|
-
const menu = ref<any[]>([]);
|
|
27
|
-
const app = getCurrentInstance();
|
|
28
|
-
|
|
29
|
-
async function fetchContentTypes() {
|
|
30
|
-
try {
|
|
31
|
-
const res = await fetch("/api/cms-type?type=collection");
|
|
32
|
-
if (!res.ok) throw new Error("Failed to fetch content types");
|
|
33
|
-
const data = await res.json();
|
|
34
|
-
// Вибираємо тільки типи-колекції (type === 'collection')
|
|
35
|
-
const sortedData = data.rows.sort((a: any, b: any) => {
|
|
36
|
-
// "сторінки" (id='pages') завжди перші
|
|
37
|
-
if (a.id === "pages") return -1;
|
|
38
|
-
if (b.id === "pages") return 1;
|
|
39
|
-
return 0;
|
|
40
|
-
});
|
|
41
|
-
menu.value = sortedData;
|
|
42
|
-
contentTypes.value = sortedData;
|
|
43
|
-
} catch (e) {
|
|
44
|
-
console.error("Error fetching content types:", e);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
async function fetchSettings() {
|
|
49
|
-
const res = await fetch("/api/settings");
|
|
50
|
-
const data = await res.json();
|
|
51
|
-
// Звернення до глобальної змінної через getCurrentInstance
|
|
52
|
-
if (app && app.appContext.config.globalProperties.$settings) {
|
|
53
|
-
app.appContext.config.globalProperties.$settings.locales =
|
|
54
|
-
data.settings.locales;
|
|
55
|
-
app.appContext.config.globalProperties.$settings.locale =
|
|
56
|
-
data.settings.locale;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
provide("menu", menu);
|
|
61
|
-
provide("fetchContentTypes", fetchContentTypes);
|
|
62
|
-
|
|
63
|
-
onMounted(() => {
|
|
64
|
-
fetchContentTypes();
|
|
65
|
-
fetchSettings();
|
|
66
|
-
});
|
|
67
|
-
</script>
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<aside
|
|
3
|
-
class="flex-col hidden w-64 transition-colors duration-200 bg-white border-r border-gray-200 md:flex dark:border-gray-700 dark:bg-gray-800"
|
|
4
|
-
>
|
|
5
|
-
<SidebarHeader />
|
|
6
|
-
|
|
7
|
-
<nav class="sidebar-menu flex-1 p-2 overflow-y-auto bg-white dark:bg-slate-800">
|
|
8
|
-
<SidebarMenu
|
|
9
|
-
:navigation-items="navigationItems"
|
|
10
|
-
/>
|
|
11
|
-
</nav>
|
|
12
|
-
|
|
13
|
-
<SidebarFooter />
|
|
14
|
-
</aside>
|
|
15
|
-
</template>
|
|
16
|
-
|
|
17
|
-
<script setup lang="ts">
|
|
18
|
-
import { computed, ref, onMounted } from "vue";
|
|
19
|
-
import SidebarMenu from "../sidebar/SidebarMenu.vue";
|
|
20
|
-
import SidebarFooter from "../sidebar/SidebarFooter.vue";
|
|
21
|
-
import SidebarHeader from "../sidebar/SidebarHeader.vue";
|
|
22
|
-
import {
|
|
23
|
-
Home,
|
|
24
|
-
FileText,
|
|
25
|
-
Image,
|
|
26
|
-
Menu,
|
|
27
|
-
Settings,
|
|
28
|
-
Tag,
|
|
29
|
-
Users,
|
|
30
|
-
} from "lucide-vue-next";
|
|
31
|
-
|
|
32
|
-
const userType = ref<string | null>(null);
|
|
33
|
-
|
|
34
|
-
const fetchUserData = async () => {
|
|
35
|
-
try {
|
|
36
|
-
const response = await fetch('/user');
|
|
37
|
-
const data = await response.json();
|
|
38
|
-
userType.value = data?.user?.user_type || null;
|
|
39
|
-
} catch (error) {
|
|
40
|
-
console.error('Error fetching user data:', error);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
onMounted(() => {
|
|
45
|
-
fetchUserData();
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
const navigationItems = computed(() => {
|
|
49
|
-
const allNavigationItems = [
|
|
50
|
-
{
|
|
51
|
-
id: "dashboard",
|
|
52
|
-
path: "/",
|
|
53
|
-
label: "navigation.dashboard",
|
|
54
|
-
icon: Home,
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
id: "content",
|
|
58
|
-
path: "/collections",
|
|
59
|
-
label: "common.content",
|
|
60
|
-
icon: FileText,
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
id: "menu",
|
|
64
|
-
path: "/menu",
|
|
65
|
-
label: "navigation.singletonsMenu",
|
|
66
|
-
icon: Menu,
|
|
67
|
-
},
|
|
68
|
-
// {
|
|
69
|
-
// id: "feedback",
|
|
70
|
-
// path: "/feedback",
|
|
71
|
-
// label: "navigation.feedback",
|
|
72
|
-
// icon: FolderUp,
|
|
73
|
-
// },
|
|
74
|
-
// {
|
|
75
|
-
// id: "email",
|
|
76
|
-
// path: "/email",
|
|
77
|
-
// label: "navigation.email",
|
|
78
|
-
// icon: Mail,
|
|
79
|
-
// },
|
|
80
|
-
{
|
|
81
|
-
id: "tags",
|
|
82
|
-
path: "/tags",
|
|
83
|
-
label: "navigation.tags",
|
|
84
|
-
icon: Tag,
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
id: "users",
|
|
88
|
-
path: "/users",
|
|
89
|
-
label: "navigation.users",
|
|
90
|
-
icon: Users,
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
id: "media",
|
|
94
|
-
path: "/media",
|
|
95
|
-
label: "navigation.media",
|
|
96
|
-
icon: Image,
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
id: "settings",
|
|
100
|
-
path: "/settings",
|
|
101
|
-
label: "navigation.settings",
|
|
102
|
-
icon: Settings,
|
|
103
|
-
},
|
|
104
|
-
];
|
|
105
|
-
|
|
106
|
-
// If user_type is not "admin", filter out "users" and "settings"
|
|
107
|
-
if (userType.value !== "admin") {
|
|
108
|
-
return allNavigationItems.filter(item => item.id !== "users" && item.id !== "settings");
|
|
109
|
-
}
|
|
110
|
-
return allNavigationItems;
|
|
111
|
-
});
|
|
112
|
-
</script>
|
|
113
|
-
|
|
114
|
-
<style scoped>
|
|
115
|
-
.sidebar-menu {
|
|
116
|
-
overflow-y: auto;
|
|
117
|
-
scrollbar-width: thin;
|
|
118
|
-
scrollbar-color: #e0e0e0 #f5f5f5;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
.sidebar-menu::-webkit-scrollbar {
|
|
122
|
-
width: 4px;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
.sidebar-menu::-webkit-scrollbar-thumb {
|
|
126
|
-
border-radius: 0;
|
|
127
|
-
}
|
|
128
|
-
</style>
|