registerQPageBuilder.js 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. import { boot } from 'quasar/wrappers'
  2. // import VuePlugin from 'quasar-ui-q-page-builder'
  3. import widgetList from '../components/Widgets/widget.json'
  4. import QPageBuilder from 'quasar-ui-q-page-builder/src/components/QPageBuilder.vue'
  5. import PageBuilderComponents from '../components/Widgets/PageBuilderComponents.js'
  6. import PageBuilderOptionPanels from '../components/Widgets/PageBuilderOptionPanels.js'
  7. import ImageUploader from 'src/components/ImageUploader.vue'
  8. const widgets = []
  9. function extractWidgets (json) {
  10. json.children.forEach(element => {
  11. if (element.type === 'widget') {
  12. widgets.push(element)
  13. } else {
  14. // eslint-disable-next-line no-prototype-builtins
  15. if (element.hasOwnProperty('children')) {
  16. extractWidgets(element)
  17. }
  18. }
  19. })
  20. }
  21. extractWidgets(widgetList)
  22. export const widgetExpanded = widgets
  23. export default boot(function ({ app }) {
  24. app.config.globalProperties.$q.$QPageBuilderWidgetList = widgetExpanded
  25. app.config.globalProperties.$q.$pageBuilderWidgetComponents = PageBuilderComponents
  26. app.config.globalProperties.$q.$pageBuilderWidgetOptionPanels = PageBuilderOptionPanels
  27. app.config.globalProperties.$q.$pageBuilderWidgetOptionPanelImageUploader = ImageUploader
  28. // app.component('q-page-builder', VuePlugin.QPageBuilder)
  29. app.component('q-page-builder', QPageBuilder)
  30. })