Skip to content

Commit

Permalink
Split global component registration from component export
Browse files Browse the repository at this point in the history
  • Loading branch information
lcharette committed Dec 20, 2024
1 parent eab38a9 commit c448632
Show file tree
Hide file tree
Showing 10 changed files with 360 additions and 382 deletions.
315 changes: 75 additions & 240 deletions package-lock.json

Large diffs are not rendered by default.

41 changes: 41 additions & 0 deletions packages/theme-pink-cupcake/src/components/Pages/Admin/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import DashboardActivities from './Dashboard/DashboardActivities.vue'
import DashboardRecentUsers from './Dashboard/DashboardRecentUsers.vue'
import DashboardStats from './Dashboard/DashboardStats.vue'
import DashboardSystemInfo from './Dashboard/DashboardSystemInfo.vue'
import GroupCreateModal from './Group/GroupCreateModal.vue'
import GroupDeleteModal from './Group/GroupDeleteModal.vue'
import GroupEditModal from './Group/GroupEditModal.vue'
import GroupForm from './Group/GroupForm.vue'
import GroupInfo from './Group/GroupInfo.vue'
import GroupUsers from './Group/GroupUsers.vue'
import PermissionInfo from './Permission/PermissionInfo.vue'
import PermissionUsers from './Permission/PermissionUsers.vue'
import RoleInfo from './Role/RoleInfo.vue'
import RolePermissions from './Role/RolePermissions.vue'
import RoleUsers from './Role/RoleUsers.vue'
import UserActivities from './User/UserActivities.vue'
import UserInfo from './User/UserInfo.vue'
import UserPermissions from './User/UserPermissions.vue'
import UserRoles from './User/UserRoles.vue'

export {
DashboardActivities,
DashboardRecentUsers,
DashboardStats,
DashboardSystemInfo,
GroupCreateModal,
GroupDeleteModal,
GroupEditModal,
GroupForm,
GroupInfo,
GroupUsers,
PermissionInfo,
PermissionUsers,
RoleInfo,
RolePermissions,
RoleUsers,
UserActivities,
UserInfo,
UserPermissions,
UserRoles
}
78 changes: 0 additions & 78 deletions packages/theme-pink-cupcake/src/components/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
/**
* Register every component globally
* See : https://vuejs.org/guide/components/registration
*/
import type { App } from 'vue'

import UFAlert from './UFAlert.vue'
import UFLabel from './UFLabel.vue'
import UFModal from './Modals/UFModal.vue'
Expand Down Expand Up @@ -69,75 +63,3 @@ export {
SprunjePaginator,
SprunjeTable
}

export default {
install: (app: App) => {
app.component('UFAlert', UFAlert)
.component('UFLabel', UFLabel)
.component('UFModal', UFModal)
.component('UFModalAlert', UFModalAlert)
.component('UFModalConfirmation', UFModalConfirmation)
.component('UFModalPrompt', UFModalPrompt)
.component('UFAppLink', AppLink)
.component('UFInfoBox', InfoBox)
.component('UFCardBox', CardBox)
.component('UFCardBoxBig', CardBoxBig)
.component('UFMainContent', MainContent)
.component('UFHeaderPage', HeaderPage)
.component('UFFooterContent', FooterContent)
.component('UFFormLogin', FormLogin)
.component('UFFormRegister', FormRegister)
.component('UFFormForgotPassword', FormForgotPassword)
.component('UFNavBar', NavBar)
.component('UFNavBarDropdown', NavBarDropdown)
.component('UFNavBarDropdownSeparator', NavBarDropdownSeparator)
.component('UFNavBarItem', NavBarItem)
.component('UFNavBarLogin', NavBarLogin)
.component('UFNavBarUserCard', NavBarUserCard)
.component('UFNavBarUserCardButton', NavBarUserCardButton)
.component('UFSideBar', SideBar)
.component('UFSideBarDropdown', SideBarDropdown)
.component('UFSideBarItem', SideBarItem)
.component('UFSideBarLabel', SideBarLabel)
.component('UFSprunjeColumn', SprunjeColumn)
.component('UFSprunjeHeader', SprunjeHeader)
.component('UFSprunjePaginator', SprunjePaginator)
.component('UFSprunjeTable', SprunjeTable)
}
}

declare module 'vue' {
export interface GlobalComponents {
UFAlert: typeof UFAlert
UFLabel: typeof UFLabel
UFModal: typeof UFModal
UFModalAlert: typeof UFModalAlert
UFModalConfirmation: typeof UFModalConfirmation
UFModalPrompt: typeof UFModalPrompt
UFAppLink: typeof AppLink
UFInfoBox: typeof InfoBox
UFCardBox: typeof CardBox
UFCardBoxBig: typeof CardBoxBig
UFMainContent: typeof MainContent
UFHeaderPage: typeof HeaderPage
UFFooterContent: typeof FooterContent
UFFormLogin: typeof FormLogin
UFFormRegister: typeof FormRegister
UFFormForgotPassword: typeof FormForgotPassword
UFNavBar: typeof NavBar
UFNavBarDropdown: typeof NavBarDropdown
UFNavBarDropdownSeparator: typeof NavBarDropdownSeparator
UFNavBarLogin: typeof NavBarLogin
UFNavBarItem: typeof NavBarItem
UFNavBarUserCard: typeof NavBarUserCard
UFNavBarUserCardButton: typeof NavBarUserCardButton
UFSideBar: typeof SideBar
UFSideBarDropdown: typeof SideBarDropdown
UFSideBarItem: typeof SideBarItem
UFSideBarLabel: typeof SideBarLabel
UFSprunjeColumn: typeof SprunjeColumn
UFSprunjeHeader: typeof SprunjeHeader
UFSprunjePaginator: typeof SprunjePaginator
UFSprunjeTable: typeof SprunjeTable
}
}
6 changes: 3 additions & 3 deletions packages/theme-pink-cupcake/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { App } from 'vue'

// Import sub-plugins
import PinkCupcakeComponents from './components'
import PinkCupcakeViews from './views'
import AdminSprinkle from './views/Admin/index'
import PinkCupcakeComponents from './plugins/components'
import PinkCupcakeViews from './plugins/views'
import AdminSprinkle from './plugins/admin'
import FontAwesome from './plugins/font-awesome'

// Init UIkit
Expand Down
106 changes: 106 additions & 0 deletions packages/theme-pink-cupcake/src/plugins/admin.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
/**
* Register every admin components & views globally
* See : https://vuejs.org/guide/components/registration
*/
import type { App } from 'vue'
import {
UFAdminDashboardPage,
UFAdminActivitiesPage,
UFAdminGroupsPage,
UFAdminGroupPage,
UFAdminPermissionsPage,
UFAdminPermissionPage,
UFAdminRolePage,
UFAdminRolesPage,
UFAdminUserPage,
UFAdminUsersPage
} from '../views/Admin'
import {
DashboardActivities,
DashboardRecentUsers,
DashboardStats,
DashboardSystemInfo,
GroupCreateModal,
GroupDeleteModal,
GroupEditModal,
GroupForm,
GroupInfo,
GroupUsers,
PermissionInfo,
PermissionUsers,
RoleInfo,
RolePermissions,
RoleUsers,
UserActivities,
UserInfo,
UserPermissions,
UserRoles
} from '../components/Pages/Admin'

export default {
install: (app: App) => {
app.component('UFAdminDashboardPage', UFAdminDashboardPage)
.component('UFAdminActivitiesPage', UFAdminActivitiesPage)
.component('UFAdminGroupsPage', UFAdminGroupsPage)
.component('UFAdminGroupPage', UFAdminGroupPage)
.component('UFAdminPermissionsPage', UFAdminPermissionsPage)
.component('UFAdminPermissionPage', UFAdminPermissionPage)
.component('UFAdminRolePage', UFAdminRolePage)
.component('UFAdminRolesPage', UFAdminRolesPage)
.component('UFAdminUserPage', UFAdminUserPage)
.component('UFAdminUsersPage', UFAdminUsersPage)
.component('UFAdminDashboardActivities', DashboardActivities)
.component('UFAdminDashboardRecentUsers', DashboardRecentUsers)
.component('UFAdminDashboardStats', DashboardStats)
.component('UFAdminDashboardSystemInfo', DashboardSystemInfo)
.component('UFAdminGroupCreateModal', GroupCreateModal)
.component('UFAdminGroupDeleteModal', GroupDeleteModal)
.component('UFAdminGroupEditModal', GroupEditModal)
.component('UFAdminGroupForm', GroupForm)
.component('UFAdminGroupInfo', GroupInfo)
.component('UFAdminGroupUsers', GroupUsers)
.component('UFAdminPermissionInfo', PermissionInfo)
.component('UFAdminPermissionUsers', PermissionUsers)
.component('UFAdminRoleInfo', RoleInfo)
.component('UFAdminRolePermissions', RolePermissions)
.component('UFAdminRoleUsers', RoleUsers)
.component('UFAdminUserActivities', UserActivities)
.component('UFAdminUserInfo', UserInfo)
.component('UFAdminUserPermissions', UserPermissions)
.component('UFAdminUserRoles', UserRoles)
}
}

declare module 'vue' {
export interface GlobalComponents {
UFAdminDashboardPage: typeof UFAdminDashboardPage
UFAdminActivitiesPage: typeof UFAdminActivitiesPage
UFAdminGroupsPage: typeof UFAdminGroupsPage
UFAdminGroupPage: typeof UFAdminGroupPage
UFAdminPermissionsPage: typeof UFAdminPermissionsPage
UFAdminPermissionPage: typeof UFAdminPermissionPage
UFAdminRolePage: typeof UFAdminRolePage
UFAdminRolesPage: typeof UFAdminRolesPage
UFAdminUserPage: typeof UFAdminUserPage
UFAdminUsersPage: typeof UFAdminUsersPage
UFAdminDashboardActivities: typeof DashboardActivities
UFAdminDashboardRecentUsers: typeof DashboardRecentUsers
UFAdminDashboardStats: typeof DashboardStats
UFAdminDashboardSystemInfo: typeof DashboardSystemInfo
UFAdminGroupCreateModal: typeof GroupCreateModal
UFAdminGroupDeleteModal: typeof GroupDeleteModal
UFAdminGroupEditModal: typeof GroupEditModal
UFAdminGroupForm: typeof GroupForm
UFAdminGroupInfo: typeof GroupInfo
UFAdminGroupUsers: typeof GroupUsers
UFAdminPermissionInfo: typeof PermissionInfo
UFAdminPermissionUsers: typeof PermissionUsers
UFAdminRoleInfo: typeof RoleInfo
UFAdminRolePermissions: typeof RolePermissions
UFAdminRoleUsers: typeof RoleUsers
UFAdminUserActivities: typeof UserActivities
UFAdminUserInfo: typeof UserInfo
UFAdminUserPermissions: typeof UserPermissions
UFAdminUserRoles: typeof UserRoles
}
}
110 changes: 110 additions & 0 deletions packages/theme-pink-cupcake/src/plugins/components.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
/**
* Register every component globally
* See : https://vuejs.org/guide/components/registration
*/
import type { App } from 'vue'
import {
UFAlert,
UFLabel,
UFModal,
UFModalAlert,
UFModalConfirmation,
UFModalPrompt,
AppLink,
InfoBox,
CardBox,
CardBoxBig,
MainContent,
HeaderPage,
FooterContent,
FormLogin,
FormRegister,
FormForgotPassword,
NavBar,
NavBarDropdown,
NavBarDropdownSeparator,
NavBarItem,
NavBarLogin,
NavBarUserCard,
NavBarUserCardButton,
SideBar,
SideBarDropdown,
SideBarItem,
SideBarLabel,
SprunjeColumn,
SprunjeHeader,
SprunjePaginator,
SprunjeTable
} from '../components'

export default {
install: (app: App) => {
app.component('UFAlert', UFAlert)
.component('UFLabel', UFLabel)
.component('UFModal', UFModal)
.component('UFModalAlert', UFModalAlert)
.component('UFModalConfirmation', UFModalConfirmation)
.component('UFModalPrompt', UFModalPrompt)
.component('UFAppLink', AppLink)
.component('UFInfoBox', InfoBox)
.component('UFCardBox', CardBox)
.component('UFCardBoxBig', CardBoxBig)
.component('UFMainContent', MainContent)
.component('UFHeaderPage', HeaderPage)
.component('UFFooterContent', FooterContent)
.component('UFFormLogin', FormLogin)
.component('UFFormRegister', FormRegister)
.component('UFFormForgotPassword', FormForgotPassword)
.component('UFNavBar', NavBar)
.component('UFNavBarDropdown', NavBarDropdown)
.component('UFNavBarDropdownSeparator', NavBarDropdownSeparator)
.component('UFNavBarItem', NavBarItem)
.component('UFNavBarLogin', NavBarLogin)
.component('UFNavBarUserCard', NavBarUserCard)
.component('UFNavBarUserCardButton', NavBarUserCardButton)
.component('UFSideBar', SideBar)
.component('UFSideBarDropdown', SideBarDropdown)
.component('UFSideBarItem', SideBarItem)
.component('UFSideBarLabel', SideBarLabel)
.component('UFSprunjeColumn', SprunjeColumn)
.component('UFSprunjeHeader', SprunjeHeader)
.component('UFSprunjePaginator', SprunjePaginator)
.component('UFSprunjeTable', SprunjeTable)
}
}

declare module 'vue' {
export interface GlobalComponents {
UFAlert: typeof UFAlert
UFLabel: typeof UFLabel
UFModal: typeof UFModal
UFModalAlert: typeof UFModalAlert
UFModalConfirmation: typeof UFModalConfirmation
UFModalPrompt: typeof UFModalPrompt
UFAppLink: typeof AppLink
UFInfoBox: typeof InfoBox
UFCardBox: typeof CardBox
UFCardBoxBig: typeof CardBoxBig
UFMainContent: typeof MainContent
UFHeaderPage: typeof HeaderPage
UFFooterContent: typeof FooterContent
UFFormLogin: typeof FormLogin
UFFormRegister: typeof FormRegister
UFFormForgotPassword: typeof FormForgotPassword
UFNavBar: typeof NavBar
UFNavBarDropdown: typeof NavBarDropdown
UFNavBarDropdownSeparator: typeof NavBarDropdownSeparator
UFNavBarLogin: typeof NavBarLogin
UFNavBarItem: typeof NavBarItem
UFNavBarUserCard: typeof NavBarUserCard
UFNavBarUserCardButton: typeof NavBarUserCardButton
UFSideBar: typeof SideBar
UFSideBarDropdown: typeof SideBarDropdown
UFSideBarItem: typeof SideBarItem
UFSideBarLabel: typeof SideBarLabel
UFSprunjeColumn: typeof SprunjeColumn
UFSprunjeHeader: typeof SprunjeHeader
UFSprunjePaginator: typeof SprunjePaginator
UFSprunjeTable: typeof SprunjeTable
}
}
24 changes: 24 additions & 0 deletions packages/theme-pink-cupcake/src/plugins/views.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/**
* Register every views globally
* See : https://vuejs.org/guide/components/registration
*/
import type { App } from 'vue'
import { PageLogin, PageRegister, PageForgotPassword, PageResendVerification } from '../views'

export default {
install: (app: App) => {
app.component('UFPageLogin', PageLogin)
.component('UFPageRegister', PageRegister)
.component('UFPageForgotPassword', PageForgotPassword)
.component('UFPageResendVerification', PageResendVerification)
}
}

declare module 'vue' {
export interface GlobalComponents {
UFPageLogin: typeof PageLogin
UFPageRegister: typeof PageRegister
UFPageForgotPassword: typeof PageForgotPassword
UFPageResendVerification: typeof PageResendVerification
}
}
2 changes: 1 addition & 1 deletion packages/theme-pink-cupcake/src/tests/plugin.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, expect, test, vi } from 'vitest'
import { createApp } from 'vue'
import plugins from '..'
import Components from '../components'
import Components from '../plugins/components'

describe('plugins.ts', () => {
test('should initiate the plugin', () => {
Expand Down
Loading

0 comments on commit c448632

Please sign in to comment.