2022-06-08 20:10:25 +08:00
|
|
|
import 'iframe-resizer/js/iframeResizer.contentWindow'
|
|
|
|
import './style.css'
|
|
|
|
|
|
|
|
import { demos } from '@demos'
|
|
|
|
import iframeResize from 'iframe-resizer/js/iframeResizer'
|
2021-08-25 17:52:20 +08:00
|
|
|
import { createApp } from 'vue'
|
|
|
|
import { createRouter, createWebHistory } from 'vue-router'
|
2022-06-08 20:10:25 +08:00
|
|
|
|
2021-08-25 17:52:20 +08:00
|
|
|
import Demo from './Demo.vue'
|
2022-06-08 20:10:25 +08:00
|
|
|
import App from './index.vue'
|
2021-08-25 17:52:20 +08:00
|
|
|
|
|
|
|
const routes = demos
|
|
|
|
.map(({ name, tabs }) => {
|
|
|
|
return {
|
|
|
|
path: `/${name}`,
|
|
|
|
component: Demo,
|
|
|
|
props: {
|
|
|
|
name,
|
|
|
|
tabs,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
const router = createRouter({
|
|
|
|
history: createWebHistory('preview'),
|
|
|
|
routes,
|
|
|
|
})
|
|
|
|
|
|
|
|
createApp(App)
|
|
|
|
.directive('resize', {
|
|
|
|
beforeMount: (el, { value = {} }) => {
|
|
|
|
el.addEventListener('load', () => {
|
|
|
|
iframeResize({
|
|
|
|
...value,
|
|
|
|
// messageCallback(messageData) {
|
|
|
|
// if (messageData.message.type !== 'resize') {
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
|
|
|
|
// const style = window.getComputedStyle(el.parentElement)
|
|
|
|
// const maxHeight = parseInt(style.getPropertyValue('max-height'), 10)
|
|
|
|
|
|
|
|
// if (messageData.message.height > maxHeight) {
|
|
|
|
// el.setAttribute('scrolling', 'auto')
|
|
|
|
// } else {
|
|
|
|
// el.setAttribute('scrolling', 'no')
|
|
|
|
// }
|
|
|
|
|
|
|
|
// el?.iFrameResizer?.resize?.()
|
|
|
|
// },
|
|
|
|
}, el)
|
|
|
|
})
|
|
|
|
},
|
|
|
|
unmounted(el) {
|
|
|
|
el?.iFrameResizer?.removeListeners?.()
|
|
|
|
},
|
|
|
|
})
|
|
|
|
.use(router)
|
|
|
|
.mount('#app')
|