How to link the modeler to a quasar / vue.js project

I have a quasar project (a framework based on vue.js) that works with vite. In this project, I have a component that displays a modeler. The bpmn is displayed and works well but I would like it to be completely linked to the quasar project, which means that it can interact with the MainLayout.vue for example. how do I do this? Here’s my code :slight_smile:

component.vue

<template>
  <div>
    <!-- <iframe v-if="iframeLoaded" src="public/assets/index.html" style="width: 100%; height: 87vh; border: none"></iframe> -->
    <iframe src="public/modeler.html" style="width: 100%; height: 87vh; border: none"></iframe>

  </div>

</template>

<script>

export default {
  name: "HubMateBpmnEditor",
  props: {
    projectData: Object,
  },
  mounted() {
    console.log(this.projectData.title);

  },
  methods: {

  }
};
</script>

Extract from app.js

const HIGH_PRIORITY = 1500;

const containerEl = document.getElementById('container'),
  qualityAssuranceEl = document.getElementById('quality-assurance'),
  suitabilityScoreEl = document.getElementById('suitability-score'),
  lastCheckedEl = document.getElementById('last-checked'),
  okayEl = document.getElementById('okay'),
  formEl = document.getElementById('form'),
  warningEl = document.getElementById('warning'),
  titleEl = document.getElementById("title"),
  validateTitleEl = document.getElementById("validateTitle"),
  labelTitle = document.getElementById("nom"),
  formTitleEl = document.getElementById("form1"),
  toggleButton = document.getElementById('toggleFormButton'),
  descriptionEl = document.getElementById("descr"),
  labelDescr = document.getElementById('description'),
  dl_bpmn = document.getElementById('js-download-diagram'),
  view_bpmn = document.getElementById('js-view-diagram'),
  dark_mode = document.getElementById('js-dark-mode');


function CustomModeler(options) {
  BpmnModeler.call(this, options);
}

inherits(CustomModeler, BpmnModeler);

// customModule.exports = CustomModeler;

CustomModeler.prototype._customModules = [
  customModule,
  BpmnPropertiesPanelModule,
  BpmnPropertiesProviderModule,
  UsernamePropertiesProvider,
  PasswordPropertiesProvider,
  DropDownPropertiesProvider,
  TokenPropertiesProvider,
  ApiKeyLocPropertiesProvider,
  ApiKeyNamePropertiesProvider,
  ApiKeyValuePropertiesProvider,
  MethodPropertiesProvider,
  UrlPropertiesProvider,
  HeaderssPropertiesProvider,
  ParametersPropertiesProvider,
  ConnectionPropertiesProvider,
  ReadPropertiesProvider,
  RetriesPropertiesProvider,
  ConnectorPayloadPropertiesProvider,
  SftpDirectoryPropertiesProvider,
  SftpFileNamePropertiesProvider,
  SftpSplitPropertiesProvider,
  ConnectorPayloadJdbcPropertiesProvider,
  JdbcDataSourcePropertiesProvider
];

CustomModeler.prototype._modules = [].concat(
  BpmnModeler.prototype._modules,
  CustomModeler.prototype._customModules
);


CustomModeler.prototype._moddleExtensions = {
  qa: qaExtension,
  DropDown: DropDownModdle,
  username: UsernameModdle,
  password: PasswordModdle,
  Token: TokenModdle,
  ApiKeyLoc: ApiKeyLocModdle,
  ApiKeyName: ApiKeyNameModdle,
  ApiKeyValue: ApiKeyValueModdle,
  Method: MethodModdle,
  Url: UrlModdle,
  Headerss: HeaderssModdle,
  Parameters: ParametersModdle,
  Connection: ConnectionModdle,
  Read: ReadModdle,
  Retries: RetriesModdle,
  ConnectorPayload: ConnectorPayloadModdle,
  SftpDirectory: SftpDirectoryModdle,
  SftpFileName: SftpFileNameModdle,
  SftpSplit: SftpSplitModdle,
  ConnectorPayloadJdbc: ConnectorPayloadJdbcModdle,
  JdbcDataSource: JdbcDataSourceModdle,
  camunda: camundaModdleDescriptor,
};

export default CustomModeler;

// initialise le modeler et gérer les interactions
// create modeler


const sombre = {
  defaultFillColor: '#151414',
  defaultStrokeColor: '#ffffff'
}

const lumineux = {
  defaultFillColor: '',
  defaultStrokeColor: ''
}

const bpmnModeler = new CustomModeler({
  container: containerEl,
  bpmnRenderer: lumineux,
  textRenderer: {},
  propertiesPanel: {
    parent: '#js-properties-panel',
  }
});

Thank you for your help

Please check out the vue example: GitHub - bpmn-io/vue-bpmn: Display BPMN 2.0 diagrams in Vue.js