oda-framework
Version:
44 lines (43 loc) • 2.15 kB
JavaScript
const bpmnFolderPath = import.meta.url.split('/bpmn-modeler')[0]
ODA({ is: 'oda-bpmn-modeler', template: /*template*/`
<link rel="stylesheet" href="${bpmnFolderPath}/dist/assets/bpmn-js.css">
<link rel="stylesheet" href="${bpmnFolderPath}/dist/assets/diagram-js.css">
<link rel="stylesheet" href="${bpmnFolderPath}/dist/assets/bpmn-font/css/bpmn.css">
<script ="scriptLoaded = true" src="${bpmnFolderPath}/dist/bpmn-modeler.development.js"></script>
`,
$public: {
get bpmn() {
return this.scriptLoaded ? new BpmnJS({ container: this[CORE_KEY].shadowRoot }) : undefined
},
get eventBus() {
return this.bpmn?.get('eventBus')
},
url: String
},
scriptLoaded: Boolean,
$observers: {
async loadScheme(bpmn, url) {
if (bpmn && url) {
const response = await fetch(url)
const xml = await response.text()
bpmn.importXML(xml)
}
}
},
attached() {
let fontFaceSheet = new CSSStyleSheet()
fontFaceSheet.replaceSync(`-face {
font-family: 'bpmn';
src: url('${bpmnFolderPath}/dist/assets/bpmn-font/font/bpmn.eot?21877404');
src: url('${bpmnFolderPath}/dist/assets/bpmn-font/font/bpmn.eot?21877404#iefix') format('embedded-opentype'),
url('${bpmnFolderPath}/dist/assets/bpmn-font/font/bpmn.woff2?21877404') format('woff2'),
url('${bpmnFolderPath}/dist/assets/bpmn-font/font/bpmn.woff?21877404') format('woff'),
url('${bpmnFolderPath}/dist/assets/bpmn-font/font/bpmn.ttf?21877404') format('truetype'),
url('${bpmnFolderPath}/dist/assets/bpmn-font/font/bpmn.svg?21877404#bpmn') format('svg');
font-weight: normal;
font-style: normal;
}`)
if(!document.adoptedStyleSheets.some(sheet => sheet.cssRules[0].cssText === fontFaceSheet.cssRules[0].cssText))
document.adoptedStyleSheets = [...document.adoptedStyleSheets, fontFaceSheet]
}
});