| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | 
							- <template lang='pug'>
 
-   v-card.editor-modal-drawio.animated.fadeIn(flat, tile)
 
-     iframe(
 
-       ref='drawio'
 
-       src='https://embed.diagrams.net/?embed=1&proto=json&spin=1&saveAndExit=1&noSaveBtn=1&noExitBtn=0'
 
-       frameborder='0'
 
-     )
 
- </template>
 
- <script>
 
- import { sync, get } from 'vuex-pathify'
 
- // const xmlTest = `<?xml version="1.0" encoding="UTF-8"?>
 
- // <mxfile version="13.4.2">
 
- //   <diagram id="SgbkCjxR32CZT1FvBvkp" name="Page-1">
 
- //     <mxGraphModel dx="2062" dy="1123" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
 
- //       <root>
 
- //         <mxCell id="0" />
 
- //         <mxCell id="1" parent="0" />
 
- //         <mxCell id="5gE3BTvRYS_8FoJnOusC-1" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
 
- //           <mxGeometry x="380" y="530" width="80" height="80" as="geometry" />
 
- //         </mxCell>
 
- //       </root>
 
- //     </mxGraphModel>
 
- //   </diagram>
 
- // </mxfile>
 
- // `
 
- export default {
 
-   data() {
 
-     return {
 
-       content: ''
 
-     }
 
-   },
 
-   computed: {
 
-     editorKey: get('editor/editorKey'),
 
-     activeModal: sync('editor/activeModal')
 
-   },
 
-   methods: {
 
-     close () {
 
-       this.activeModal = ''
 
-     },
 
-     overwriteAndClose() {
 
-       this.$root.$emit('overwriteEditorContent')
 
-       this.$root.$emit('resetEditorConflict')
 
-       this.close()
 
-     },
 
-     send (msg) {
 
-       this.$refs.drawio.contentWindow.postMessage(JSON.stringify(msg), '*')
 
-     },
 
-     receive (evt) {
 
-       if (evt.frame === null || evt.source !== this.$refs.drawio.contentWindow || evt.data.length < 1) {
 
-         return
 
-       }
 
-       try {
 
-         const msg = JSON.parse(evt.data)
 
-         switch (msg.event) {
 
-           case 'init': {
 
-             this.send({
 
-               action: 'load',
 
-               autosave: 0,
 
-               modified: 'unsavedChanges',
 
-               xml: this.$store.get('editor/activeModalData'),
 
-               title: this.$store.get('page/title')
 
-             })
 
-             this.$store.set('editor/activeModalData', null)
 
-             break
 
-           }
 
-           case 'save': {
 
-             if (msg.exit) {
 
-               this.send({
 
-                 action: 'export',
 
-                 format: 'xmlsvg'
 
-               })
 
-             }
 
-             break
 
-           }
 
-           case 'export': {
 
-             const svgDataStart = msg.data.indexOf('base64,') + 7
 
-             this.$root.$emit('editorInsert', {
 
-               kind: 'DIAGRAM',
 
-               text: msg.data.slice(svgDataStart)
 
-               // text: msg.xml.replace(/ agent="(.*?)"/, '').replace(/ host="(.*?)"/, '').replace(/ etag="(.*?)"/, '')
 
-             })
 
-             this.close()
 
-             break
 
-           }
 
-           case 'exit': {
 
-             this.close()
 
-             break
 
-           }
 
-         }
 
-       } catch (err) {
 
-         console.error(err)
 
-       }
 
-     }
 
-   },
 
-   async mounted () {
 
-     window.addEventListener('message', this.receive)
 
-   },
 
-   beforeDestroy () {
 
-     window.removeEventListener('message', this.receive)
 
-   }
 
- }
 
- </script>
 
- <style lang='scss'>
 
- .editor-modal-drawio {
 
-   position: fixed !important;
 
-   top: 0;
 
-   left: 0;
 
-   z-index: 10;
 
-   width: 100%;
 
-   height: 100vh;
 
-   background-color: rgba(255,255,255, 1) !important;
 
-   overflow: hidden;
 
-   > iframe {
 
-     width: 100%;
 
-     height: 100vh;
 
-     border: 0;
 
-     padding: 0;
 
-     background-color: #FFF;
 
-   }
 
- }
 
- </style>
 
 
  |