diff --git a/nuxt.config.js b/nuxt.config.js index 3ec7c1fe2..f24e07a01 100644 --- a/nuxt.config.js +++ b/nuxt.config.js @@ -1,9 +1,11 @@ +import viteConfig from './vite.config'; + const baseUrl = '/'; // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ typescript: false, - modules: ['nuxt-gtag'], + modules: ['nuxt-gtag', 'nuxt-primevue'], components: [ '~/components', { @@ -11,6 +13,17 @@ export default defineNuxtConfig({ prefetch: false } ], + nitro: { + alias: viteConfig.resolve.alias + }, + primevue: { + usePrimeVue: false, + resolvePath: function ({ as, from, type }) { + const resolvedPath = from.replace('primevue', '@/components/lib'); + + return type === 'component' ? `${resolvedPath}/${as}.vue` : `${resolvedPath}/${as}.js`; + } + }, app: { baseURL: baseUrl, head: { diff --git a/package-lock.json b/package-lock.json index 2c6428d36..6ff652b39 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,7 @@ "gulp-uglifycss": "^1.0.6", "jsdom": "^19.0.0", "nuxt": "3.3.2", + "nuxt-primevue": "^0.0.1", "prettier": "2.7.1", "primeflex": "^3.3.1", "primeicons": "^6.0.1", @@ -12107,6 +12108,111 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, + "node_modules/nuxt-primevue": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/nuxt-primevue/-/nuxt-primevue-0.0.1.tgz", + "integrity": "sha512-5VX1ZWgj6/A4cj5b8e1YIs8DOhyERUEQk+tA7ZCWhICeFgv5TvZCDh+zP9/Ny1okc20Ck/K+xEtk7jncovOh2g==", + "dev": true, + "dependencies": { + "@nuxt/kit": "^3.7.3" + }, + "peerDependencies": { + "primevue": "^3.36.0" + } + }, + "node_modules/nuxt-primevue/node_modules/@nuxt/kit": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.7.4.tgz", + "integrity": "sha512-/S5abZL62BITCvC/TY3KWA6N721U1Osln3cQdBb56XHIeafZCBVqTi92Xb0o7ovl72mMRhrKwRu7elzvz9oT/g==", + "dev": true, + "dependencies": { + "@nuxt/schema": "3.7.4", + "c12": "^1.4.2", + "consola": "^3.2.3", + "defu": "^6.1.2", + "globby": "^13.2.2", + "hash-sum": "^2.0.0", + "ignore": "^5.2.4", + "jiti": "^1.20.0", + "knitwork": "^1.0.0", + "mlly": "^1.4.2", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "scule": "^1.0.0", + "semver": "^7.5.4", + "ufo": "^1.3.0", + "unctx": "^2.3.1", + "unimport": "^3.3.0", + "untyped": "^1.4.0" + }, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/nuxt-primevue/node_modules/@nuxt/schema": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.7.4.tgz", + "integrity": "sha512-q6js+97vDha4Fa2x2kDVEuokJr+CGIh1TY2wZp2PLZ7NhG3XEeib7x9Hq8XE8B6pD0GKBRy3eRPPOY69gekBCw==", + "dev": true, + "dependencies": { + "@nuxt/ui-templates": "^1.3.1", + "consola": "^3.2.3", + "defu": "^6.1.2", + "hookable": "^5.5.3", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "postcss-import-resolver": "^2.0.0", + "std-env": "^3.4.3", + "ufo": "^1.3.0", + "unimport": "^3.3.0", + "untyped": "^1.4.0" + }, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/nuxt-primevue/node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/nuxt-primevue/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nuxt-primevue/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nuxt-primevue/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/nuxt/node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -13786,6 +13892,16 @@ "integrity": "sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA==", "dev": true }, + "node_modules/primevue": { + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/primevue/-/primevue-3.36.0.tgz", + "integrity": "sha512-si+pcbh+Y2by8cn4UrPFkC+ncS5fcv3ShKbTGINOsloKParRbSiqgBsqI8QmVkmutSLyABe6v5Kutjdenw2JFw==", + "dev": true, + "peer": true, + "peerDependencies": { + "vue": "^3.0.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -14805,7 +14921,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ diff --git a/package.json b/package.json index 1b268685b..e500114f2 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,8 @@ "sass-loader": "^8.0.2", "typedoc": "0.23.23", "typescript": "^4.9.4", - "vitest": "^0.29.8" + "vitest": "^0.29.8", + "nuxt-primevue": "^0.0.1" }, "dependencies": { "@docsearch/js": "^3.3.3", diff --git a/plugins/primeVue.js b/plugins/primeVue.js index bf1f72d3b..df11656d1 100644 --- a/plugins/primeVue.js +++ b/plugins/primeVue.js @@ -1,102 +1,4 @@ -import Accordion from '@/components/lib/accordion/Accordion'; -import AccordionTab from '@/components/lib/accordiontab/AccordionTab'; -import AutoComplete from '@/components/lib/autocomplete/AutoComplete'; -import Avatar from '@/components/lib/avatar/Avatar'; -import AvatarGroup from '@/components/lib/avatargroup/AvatarGroup'; -import Badge from '@/components/lib/badge/Badge'; -import BadgeDirective from '@/components/lib/badgedirective/BadgeDirective'; -import BlockUI from '@/components/lib/blockui/BlockUI'; -import Breadcrumb from '@/components/lib/breadcrumb/Breadcrumb'; -import Button from '@/components/lib/button/Button'; -import Calendar from '@/components/lib/calendar/Calendar'; -import Card from '@/components/lib/card/Card'; -import Carousel from '@/components/lib/carousel/Carousel'; -import CascadeSelect from '@/components/lib/cascadeselect/CascadeSelect'; -import Chart from '@/components/lib/chart/Chart'; -import Checkbox from '@/components/lib/checkbox/Checkbox'; -import Chip from '@/components/lib/chip/Chip'; -import Chips from '@/components/lib/chips/Chips'; -import ColorPicker from '@/components/lib/colorpicker/ColorPicker'; -import Column from '@/components/lib/column/Column'; -import ColumnGroup from '@/components/lib/columngroup/ColumnGroup'; import PrimeVue from '@/components/lib/config/PrimeVue'; -import ConfirmationService from '@/components/lib/confirmationservice/ConfirmationService'; -import ConfirmDialog from '@/components/lib/confirmdialog/ConfirmDialog'; -import ConfirmPopup from '@/components/lib/confirmpopup/ConfirmPopup'; -import ContextMenu from '@/components/lib/contextmenu/ContextMenu'; -import DataTable from '@/components/lib/datatable/DataTable'; -import DataView from '@/components/lib/dataview/DataView'; -import DataViewLayoutOptions from '@/components/lib/dataviewlayoutoptions/DataViewLayoutOptions'; -import DeferredContent from '@/components/lib/deferredcontent/DeferredContent'; -import Dialog from '@/components/lib/dialog/Dialog'; -import DialogService from '@/components/lib/dialogservice/DialogService'; -import Divider from '@/components/lib/divider/Divider'; -import Dock from '@/components/lib/dock/Dock'; -import Dropdown from '@/components/lib/dropdown/Dropdown'; -import DynamicDialog from '@/components/lib/dynamicdialog/DynamicDialog'; -import Editor from '@/components/lib/editor/Editor'; -import Fieldset from '@/components/lib/fieldset/Fieldset'; -import FileUpload from '@/components/lib/fileupload/FileUpload'; -import FocusTrap from '@/components/lib/focustrap/FocusTrap'; -import Galleria from '@/components/lib/galleria/Galleria'; -import Image from '@/components/lib/image/Image'; -import InlineMessage from '@/components/lib/inlinemessage/InlineMessage'; -import Inplace from '@/components/lib/inplace/Inplace'; -import InputMask from '@/components/lib/inputmask/InputMask'; -import InputNumber from '@/components/lib/inputnumber/InputNumber'; -import InputSwitch from '@/components/lib/inputswitch/InputSwitch'; -import InputText from '@/components/lib/inputtext/InputText'; -import Knob from '@/components/lib/knob/Knob'; -import Listbox from '@/components/lib/listbox/Listbox'; -import MegaMenu from '@/components/lib/megamenu/MegaMenu'; -import Menu from '@/components/lib/menu/Menu'; -import Menubar from '@/components/lib/menubar/Menubar'; -import Message from '@/components/lib/message/Message'; -import MultiSelect from '@/components/lib/multiselect/MultiSelect'; -import OrderList from '@/components/lib/orderlist/OrderList'; -import OrganizationChart from '@/components/lib/organizationchart/OrganizationChart'; -import OverlayPanel from '@/components/lib/overlaypanel/OverlayPanel'; -import Paginator from '@/components/lib/paginator/Paginator'; -import Panel from '@/components/lib/panel/Panel'; -import PanelMenu from '@/components/lib/panelmenu/PanelMenu'; -import Password from '@/components/lib/password/Password'; -import PickList from '@/components/lib/picklist/PickList'; -import ProgressBar from '@/components/lib/progressbar/ProgressBar'; -import ProgressSpinner from '@/components/lib/progressspinner/ProgressSpinner'; -import RadioButton from '@/components/lib/radiobutton/RadioButton'; -import Rating from '@/components/lib/rating/Rating'; -import Ripple from '@/components/lib/ripple/Ripple'; -import Row from '@/components/lib/row/Row'; -import ScrollPanel from '@/components/lib/scrollpanel/ScrollPanel'; -import ScrollTop from '@/components/lib/scrolltop/ScrollTop'; -import SelectButton from '@/components/lib/selectbutton/SelectButton'; -import Sidebar from '@/components/lib/sidebar/Sidebar'; -import Skeleton from '@/components/lib/skeleton/Skeleton'; -import Slider from '@/components/lib/slider/Slider'; -import SpeedDial from '@/components/lib/speeddial/SpeedDial'; -import SplitButton from '@/components/lib/splitbutton/SplitButton'; -import Splitter from '@/components/lib/splitter/Splitter'; -import SplitterPanel from '@/components/lib/splitterpanel/SplitterPanel'; -import Steps from '@/components/lib/steps/Steps'; -import StyleClass from '@/components/lib/styleclass/StyleClass'; -import TabMenu from '@/components/lib/tabmenu/TabMenu'; -import TabPanel from '@/components/lib/tabpanel/TabPanel'; -import TabView from '@/components/lib/tabview/TabView'; -import Tag from '@/components/lib/tag/Tag'; -import Terminal from '@/components/lib/terminal/Terminal'; -import Textarea from '@/components/lib/textarea/Textarea'; -import TieredMenu from '@/components/lib/tieredmenu/TieredMenu'; -import Timeline from '@/components/lib/timeline/Timeline'; -import Toast from '@/components/lib/toast/Toast'; -import ToastService from '@/components/lib/toastservice/ToastService'; -import ToggleButton from '@/components/lib/togglebutton/ToggleButton'; -import Toolbar from '@/components/lib/toolbar/Toolbar'; -import Tooltip from '@/components/lib/tooltip/Tooltip'; -import Tree from '@/components/lib/tree/Tree'; -import TreeSelect from '@/components/lib/treeselect/TreeSelect'; -import TreeTable from '@/components/lib/treetable/TreeTable'; -import TriStateCheckbox from '@/components/lib/tristatecheckbox/TriStateCheckbox'; -import VirtualScroller from '@/components/lib/virtualscroller/VirtualScroller'; import DocApiSection from '@/components/doc/DocApiSection'; import DocComponent from '@/components/doc/DocComponent'; @@ -110,108 +12,8 @@ import DevelopmentSection from '@/components/layout/DevelopmentSection'; export default defineNuxtPlugin((nuxtApp) => { nuxtApp.vueApp.use(PrimeVue, { ripple: true }); - nuxtApp.vueApp.use(ToastService); - nuxtApp.vueApp.use(ConfirmationService); - nuxtApp.vueApp.use(DialogService); - - nuxtApp.vueApp.directive('badge', BadgeDirective); - nuxtApp.vueApp.directive('tooltip', Tooltip); - nuxtApp.vueApp.directive('ripple', Ripple); - nuxtApp.vueApp.directive('styleclass', StyleClass); - nuxtApp.vueApp.directive('focustrap', FocusTrap); nuxtApp.vueApp.directive('code', CodeHighlight); - nuxtApp.vueApp.component('Accordion', Accordion); - nuxtApp.vueApp.component('AccordionTab', AccordionTab); - nuxtApp.vueApp.component('Avatar', Avatar); - nuxtApp.vueApp.component('AvatarGroup', AvatarGroup); - nuxtApp.vueApp.component('AutoComplete', AutoComplete); - nuxtApp.vueApp.component('Badge', Badge); - nuxtApp.vueApp.component('BlockUI', BlockUI); - nuxtApp.vueApp.component('Breadcrumb', Breadcrumb); - nuxtApp.vueApp.component('Button', Button); - nuxtApp.vueApp.component('Calendar', Calendar); - nuxtApp.vueApp.component('Card', Card); - nuxtApp.vueApp.component('Carousel', Carousel); - nuxtApp.vueApp.component('CascadeSelect', CascadeSelect); - nuxtApp.vueApp.component('Chart', Chart); - nuxtApp.vueApp.component('Checkbox', Checkbox); - nuxtApp.vueApp.component('Chip', Chip); - nuxtApp.vueApp.component('Chips', Chips); - nuxtApp.vueApp.component('ColorPicker', ColorPicker); - nuxtApp.vueApp.component('Column', Column); - nuxtApp.vueApp.component('ColumnGroup', ColumnGroup); - nuxtApp.vueApp.component('ConfirmDialog', ConfirmDialog); - nuxtApp.vueApp.component('ConfirmPopup', ConfirmPopup); - nuxtApp.vueApp.component('ContextMenu', ContextMenu); - nuxtApp.vueApp.component('DataTable', DataTable); - nuxtApp.vueApp.component('DataView', DataView); - nuxtApp.vueApp.component('DataViewLayoutOptions', DataViewLayoutOptions); - nuxtApp.vueApp.component('DeferredContent', DeferredContent); - nuxtApp.vueApp.component('Dialog', Dialog); - nuxtApp.vueApp.component('DynamicDialog', DynamicDialog); - nuxtApp.vueApp.component('Divider', Divider); - nuxtApp.vueApp.component('Dock', Dock); - nuxtApp.vueApp.component('Dropdown', Dropdown); - nuxtApp.vueApp.component('Editor', Editor); - nuxtApp.vueApp.component('Fieldset', Fieldset); - nuxtApp.vueApp.component('FileUpload', FileUpload); - nuxtApp.vueApp.component('Image', Image); - nuxtApp.vueApp.component('InlineMessage', InlineMessage); - nuxtApp.vueApp.component('Inplace', Inplace); - nuxtApp.vueApp.component('InputMask', InputMask); - nuxtApp.vueApp.component('InputNumber', InputNumber); - nuxtApp.vueApp.component('InputSwitch', InputSwitch); - nuxtApp.vueApp.component('InputText', InputText); - nuxtApp.vueApp.component('Knob', Knob); - nuxtApp.vueApp.component('Listbox', Listbox); - nuxtApp.vueApp.component('MegaMenu', MegaMenu); - nuxtApp.vueApp.component('Menu', Menu); - nuxtApp.vueApp.component('Menubar', Menubar); - nuxtApp.vueApp.component('Message', Message); - nuxtApp.vueApp.component('MultiSelect', MultiSelect); - nuxtApp.vueApp.component('OrderList', OrderList); - nuxtApp.vueApp.component('OrganizationChart', OrganizationChart); - nuxtApp.vueApp.component('OverlayPanel', OverlayPanel); - nuxtApp.vueApp.component('Paginator', Paginator); - nuxtApp.vueApp.component('Panel', Panel); - nuxtApp.vueApp.component('PanelMenu', PanelMenu); - nuxtApp.vueApp.component('Password', Password); - nuxtApp.vueApp.component('PickList', PickList); - nuxtApp.vueApp.component('ProgressBar', ProgressBar); - nuxtApp.vueApp.component('ProgressSpinner', ProgressSpinner); - nuxtApp.vueApp.component('RadioButton', RadioButton); - nuxtApp.vueApp.component('Rating', Rating); - nuxtApp.vueApp.component('Row', Row); - nuxtApp.vueApp.component('ScrollPanel', ScrollPanel); - nuxtApp.vueApp.component('ScrollTop', ScrollTop); - nuxtApp.vueApp.component('SelectButton', SelectButton); - nuxtApp.vueApp.component('Slider', Slider); - nuxtApp.vueApp.component('Sidebar', Sidebar); - nuxtApp.vueApp.component('Skeleton', Skeleton); - nuxtApp.vueApp.component('SpeedDial', SpeedDial); - nuxtApp.vueApp.component('SplitButton', SplitButton); - nuxtApp.vueApp.component('Splitter', Splitter); - nuxtApp.vueApp.component('SplitterPanel', SplitterPanel); - nuxtApp.vueApp.component('Steps', Steps); - nuxtApp.vueApp.component('TabView', TabView); - nuxtApp.vueApp.component('TabPanel', TabPanel); - nuxtApp.vueApp.component('TabMenu', TabMenu); - nuxtApp.vueApp.component('Tag', Tag); - nuxtApp.vueApp.component('Terminal', Terminal); - nuxtApp.vueApp.component('Textarea', Textarea); - nuxtApp.vueApp.component('TieredMenu', TieredMenu); - nuxtApp.vueApp.component('Timeline', Timeline); - nuxtApp.vueApp.component('Toast', Toast); - nuxtApp.vueApp.component('Toolbar', Toolbar); - nuxtApp.vueApp.component('ToggleButton', ToggleButton); - nuxtApp.vueApp.component('Tree', Tree); - nuxtApp.vueApp.component('TreeSelect', TreeSelect); - nuxtApp.vueApp.component('TreeTable', TreeTable); - nuxtApp.vueApp.component('TriStateCheckbox', TriStateCheckbox); - nuxtApp.vueApp.component('Galleria', Galleria); - nuxtApp.vueApp.component('VirtualScroller', VirtualScroller); - nuxtApp.vueApp.component('DocSections', DocSections); nuxtApp.vueApp.component('DocSectionText', DocSectionText); nuxtApp.vueApp.component('DocSectionCode', DocSectionCode);