mirror of
https://github.com/501351981/vue-office.git
synced 2025-07-15 07:32:19 +08:00
add: eslint
This commit is contained in:
parent
7444e66653
commit
0c9f7ef30a
3
.eslintignore
Normal file
3
.eslintignore
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
node_modules/
|
||||||
|
lib/
|
||||||
|
dist/
|
24
.eslintrc.js
Normal file
24
.eslintrc.js
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
module.exports = {
|
||||||
|
'env': {
|
||||||
|
'node': true,
|
||||||
|
'es2021': true
|
||||||
|
},
|
||||||
|
'extends': [
|
||||||
|
'eslint:recommended',
|
||||||
|
'plugin:vue/vue3-essential'
|
||||||
|
],
|
||||||
|
'overrides': [
|
||||||
|
],
|
||||||
|
'parserOptions': {
|
||||||
|
'ecmaVersion': 'latest',
|
||||||
|
'sourceType': 'module'
|
||||||
|
},
|
||||||
|
'plugins': [
|
||||||
|
'vue'
|
||||||
|
],
|
||||||
|
'rules': {
|
||||||
|
'semi': ['error','always'],
|
||||||
|
'no-multi-spaces': ['error', { ignoreEOLComments: false }],
|
||||||
|
'quotes': ['error', 'single']
|
||||||
|
}
|
||||||
|
};
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
examples/dist/index.html
vendored
4
examples/dist/index.html
vendored
@ -5,8 +5,8 @@
|
|||||||
<link rel="icon" type="image/svg+xml" href="/vue-office/examples/dist/vite.svg" />
|
<link rel="icon" type="image/svg+xml" href="/vue-office/examples/dist/vite.svg" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Vite + Vue</title>
|
<title>Vite + Vue</title>
|
||||||
<script type="module" crossorigin src="/vue-office/examples/dist/assets/index-b1870083.js"></script>
|
<script type="module" crossorigin src="/vue-office/examples/dist/assets/index-3b4c4444.js"></script>
|
||||||
<link rel="stylesheet" href="/vue-office/examples/dist/assets/index-171e346f.css">
|
<link rel="stylesheet" href="/vue-office/examples/dist/assets/index-78ff3081.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {ref, onMounted} from 'vue'
|
import {ref, onMounted} from 'vue';
|
||||||
import DocxDemo from './components/DocxDemo.vue'
|
import DocxDemo from './components/DocxDemo.vue';
|
||||||
import ExcelDemo from './components/ExcelDemo.vue'
|
import ExcelDemo from './components/ExcelDemo.vue';
|
||||||
import PdfDemo from './components/PdfDemo.vue'
|
import PdfDemo from './components/PdfDemo.vue';
|
||||||
|
|
||||||
const activeKey = ref('DOCX')
|
const activeKey = ref('DOCX');
|
||||||
onMounted(()=>{
|
onMounted(()=>{
|
||||||
|
|
||||||
})
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -1,13 +1,19 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {defineProps} from 'vue'
|
import {defineProps, watch} from 'vue';
|
||||||
import usePreview from '../hooks/usePreview.js'
|
import usePreview from '../hooks/usePreview.js';
|
||||||
|
import useLoading from '../hooks/useLoading.js';
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
accept: String,
|
accept: String,
|
||||||
placeholder: String,
|
placeholder: String,
|
||||||
defaultSrc: String
|
defaultSrc: String
|
||||||
})
|
});
|
||||||
|
|
||||||
const {type, inputSrc, src, fileList, beforeUpload} = usePreview(props.defaultSrc)
|
const {type, inputSrc, src, fileList, beforeUpload} = usePreview(props.defaultSrc);
|
||||||
|
watch(src,()=>{
|
||||||
|
useLoading.showLoading();
|
||||||
|
},{
|
||||||
|
immediate: true
|
||||||
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -1,6 +1,14 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import VueOfficeDocx from '../../../packages/docx/index'
|
import VueOfficeDocx from '../../../packages/docx/index';
|
||||||
import PreviewWrapper from '../common/PreviewWrapper.vue'
|
import PreviewWrapper from '../common/PreviewWrapper.vue';
|
||||||
|
import useLoading from '../hooks/useLoading.js';
|
||||||
|
function onRendered(){
|
||||||
|
useLoading.hideLoading();
|
||||||
|
}
|
||||||
|
function onError(e){
|
||||||
|
console.log('出差',e);
|
||||||
|
useLoading.hideLoading();
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -10,7 +18,12 @@ import PreviewWrapper from '../common/PreviewWrapper.vue'
|
|||||||
default-src="https://501351981.github.io/vue-office/examples/dist/static/test-files/test.docx"
|
default-src="https://501351981.github.io/vue-office/examples/dist/static/test-files/test.docx"
|
||||||
>
|
>
|
||||||
<template v-slot="slotProps">
|
<template v-slot="slotProps">
|
||||||
<VueOfficeDocx :src="slotProps.src" style="flex: 1;height: 0"/>
|
<VueOfficeDocx
|
||||||
|
:src="slotProps.src"
|
||||||
|
style="flex: 1;height: 0"
|
||||||
|
@rendered="onRendered"
|
||||||
|
@error="onError"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</PreviewWrapper>
|
</PreviewWrapper>
|
||||||
|
@ -1,10 +1,16 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import VueOfficeExcel from '../../../packages/excel/index'
|
import VueOfficeExcel from '../../../packages/excel/index';
|
||||||
import '../../../packages/excel/src/index.css'
|
import '../../../packages/excel/src/index.css';
|
||||||
import PreviewWrapper from '../common/PreviewWrapper.vue'
|
import PreviewWrapper from '../common/PreviewWrapper.vue';
|
||||||
function onError(e){
|
import useLoading from '../hooks/useLoading.js';
|
||||||
console.log('出差',e)
|
function onRendered(){
|
||||||
|
useLoading.hideLoading();
|
||||||
}
|
}
|
||||||
|
function onError(e){
|
||||||
|
console.log('出差',e);
|
||||||
|
useLoading.hideLoading();
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -14,7 +20,13 @@ function onError(e){
|
|||||||
default-src="https://501351981.github.io/vue-office/examples/dist/static/test-files/test.xlsx"
|
default-src="https://501351981.github.io/vue-office/examples/dist/static/test-files/test.xlsx"
|
||||||
>
|
>
|
||||||
<template v-slot="slotProps">
|
<template v-slot="slotProps">
|
||||||
<VueOfficeExcel :src="slotProps.src" style="flex: 1;height: 0" @error="onError"/>
|
<VueOfficeExcel
|
||||||
|
:src="slotProps.src"
|
||||||
|
style="flex: 1;height: 0"
|
||||||
|
v-loading="true"
|
||||||
|
@rendered="onRendered"
|
||||||
|
@error="onError"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</PreviewWrapper>
|
</PreviewWrapper>
|
||||||
|
@ -1,6 +1,14 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import VueOfficePdf from '../../../packages/pdf/index'
|
import VueOfficePdf from '../../../packages/pdf/index';
|
||||||
import PreviewWrapper from '../common/PreviewWrapper.vue'
|
import PreviewWrapper from '../common/PreviewWrapper.vue';
|
||||||
|
import useLoading from '../hooks/useLoading.js';
|
||||||
|
function onRendered(){
|
||||||
|
useLoading.hideLoading();
|
||||||
|
}
|
||||||
|
function onError(e){
|
||||||
|
console.log('出差',e);
|
||||||
|
useLoading.hideLoading();
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -10,7 +18,12 @@ import PreviewWrapper from '../common/PreviewWrapper.vue'
|
|||||||
default-src="https://501351981.github.io/vue-office/examples/dist/static/test-files/test.pdf"
|
default-src="https://501351981.github.io/vue-office/examples/dist/static/test-files/test.pdf"
|
||||||
>
|
>
|
||||||
<template v-slot="slotProps">
|
<template v-slot="slotProps">
|
||||||
<VueOfficePdf :src="slotProps.src" style="flex: 1;height: 0"/>
|
<VueOfficePdf
|
||||||
|
:src="slotProps.src"
|
||||||
|
style="flex: 1;height: 0"
|
||||||
|
@rendered="onRendered"
|
||||||
|
@error="onError"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
</PreviewWrapper>
|
</PreviewWrapper>
|
||||||
</template>
|
</template>
|
||||||
|
21
examples/src/hooks/useLoading.js
Normal file
21
examples/src/hooks/useLoading.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { message } from 'ant-design-vue';
|
||||||
|
import {ref} from 'vue';
|
||||||
|
|
||||||
|
let loading = ref(false);
|
||||||
|
let hide;
|
||||||
|
function showLoading(content){
|
||||||
|
hide = message.loading(content, 0);
|
||||||
|
loading.value = true;
|
||||||
|
}
|
||||||
|
function hideLoading(){
|
||||||
|
if(loading.value === true){
|
||||||
|
hide();
|
||||||
|
loading.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
export default {
|
||||||
|
loading,
|
||||||
|
showLoading,
|
||||||
|
hideLoading
|
||||||
|
};
|
@ -1,17 +1,17 @@
|
|||||||
import {ref} from 'vue'
|
import {ref} from 'vue';
|
||||||
export default function (defaultSrc){
|
export default function (defaultSrc){
|
||||||
const type = ref('url')
|
const type = ref('url');
|
||||||
const inputSrc = ref(defaultSrc)
|
const inputSrc = ref(defaultSrc);
|
||||||
const src = ref(defaultSrc)
|
const src = ref(defaultSrc);
|
||||||
const fileList = ref([])
|
const fileList = ref([]);
|
||||||
function beforeUpload(file){
|
function beforeUpload(file){
|
||||||
let reader = new FileReader();
|
let reader = new FileReader();
|
||||||
reader.onload = (loadEvent) => {
|
reader.onload = (loadEvent) => {
|
||||||
let arrayBuffer = loadEvent.target.result;
|
let arrayBuffer = loadEvent.target.result;
|
||||||
src.value = arrayBuffer
|
src.value = arrayBuffer;
|
||||||
};
|
};
|
||||||
reader.readAsArrayBuffer(file);
|
reader.readAsArrayBuffer(file);
|
||||||
return false
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -20,5 +20,5 @@ export default function (defaultSrc){
|
|||||||
src,
|
src,
|
||||||
fileList,
|
fileList,
|
||||||
beforeUpload
|
beforeUpload
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { createApp } from 'vue'
|
import { createApp } from 'vue';
|
||||||
import './style.css'
|
import './style.css';
|
||||||
import Antd from 'ant-design-vue';
|
import Antd from 'ant-design-vue';
|
||||||
import App from './App.vue';
|
import App from './App.vue';
|
||||||
import 'ant-design-vue/dist/antd.css';
|
import 'ant-design-vue/dist/antd.css';
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vitejs/plugin-vue": "^4.0.0",
|
"@vitejs/plugin-vue": "^4.0.0",
|
||||||
"@vue/composition-api": "^1.7.1",
|
"@vue/composition-api": "^1.7.1",
|
||||||
|
"eslint": "^8.36.0",
|
||||||
|
"eslint-plugin-vue": "^9.9.0",
|
||||||
"lerna": "^6.4.1",
|
"lerna": "^6.4.1",
|
||||||
"less": "^4.1.3",
|
"less": "^4.1.3",
|
||||||
"less-loader": "^11.1.0",
|
"less-loader": "^11.1.0",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import VueOfficeDocx from './src/main.vue'
|
import VueOfficeDocx from './src/main.vue';
|
||||||
|
|
||||||
VueOfficeDocx.install = function (Vue) {
|
VueOfficeDocx.install = function (Vue) {
|
||||||
Vue.component(VueOfficeDocx.name, VueOfficeDocx)
|
Vue.component(VueOfficeDocx.name, VueOfficeDocx);
|
||||||
}
|
};
|
||||||
|
|
||||||
export default VueOfficeDocx
|
export default VueOfficeDocx;
|
@ -2,7 +2,7 @@
|
|||||||
import {renderAsync} from 'docx-preview'
|
import {renderAsync} from 'docx-preview'
|
||||||
function getData(src, options={}) {
|
function getData(src, options={}) {
|
||||||
if (typeof src === 'string') {
|
if (typeof src === 'string') {
|
||||||
return fetchDocx(src, options)
|
return fetchDocx(src, options)
|
||||||
}
|
}
|
||||||
return Promise.resolve(src)
|
return Promise.resolve(src)
|
||||||
}
|
}
|
||||||
|
@ -1,54 +1,54 @@
|
|||||||
<script>
|
<script>
|
||||||
import {defineComponent, ref, onMounted, watch} from 'vue-demi';
|
import {defineComponent, ref, onMounted, watch} from 'vue-demi';
|
||||||
import docx from './docx'
|
import docx from './docx';
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'VueOfficeDocx',
|
name: 'VueOfficeDocx',
|
||||||
props: {
|
props: {
|
||||||
src: [String, ArrayBuffer, Blob],
|
src: [String, ArrayBuffer, Blob],
|
||||||
requestOptions: {
|
requestOptions: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => ({})
|
default: () => ({})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
emits:['rendered', 'error'],
|
emits:['rendered', 'error'],
|
||||||
setup(props, { emit }){
|
setup(props, { emit }){
|
||||||
const rootRef = ref(null)
|
const rootRef = ref(null);
|
||||||
|
|
||||||
function init(){
|
function init(){
|
||||||
let container = rootRef.value
|
let container = rootRef.value;
|
||||||
docx.getData(props.src, props.requestOptions).then(res => {
|
docx.getData(props.src, props.requestOptions).then(res => {
|
||||||
docx.render(res, container).then(() => {
|
docx.render(res, container).then(() => {
|
||||||
emit('rendered')
|
emit('rendered');
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
docx.render('', container)
|
docx.render('', container);
|
||||||
emit('error', e)
|
emit('error', e);
|
||||||
})
|
});
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
docx.render('', container)
|
docx.render('', container);
|
||||||
emit('error', e)
|
emit('error', e);
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(()=>{
|
onMounted(()=>{
|
||||||
if(props.src){
|
if(props.src){
|
||||||
init()
|
init();
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
|
||||||
watch(() => props.src, () =>{
|
watch(() => props.src, () =>{
|
||||||
if (props.src) {
|
if (props.src) {
|
||||||
init()
|
init();
|
||||||
} else {
|
} else {
|
||||||
docx.render('', rootRef.value).then(() => {
|
docx.render('', rootRef.value).then(() => {
|
||||||
emit('rendered')
|
emit('rendered');
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
return {
|
return {
|
||||||
rootRef
|
rootRef
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { defineConfig } from 'vite';
|
import { defineConfig } from 'vite';
|
||||||
import { createVuePlugin } from 'vite-plugin-vue2'
|
import { createVuePlugin } from 'vite-plugin-vue2';
|
||||||
import vue3 from '@vitejs/plugin-vue'
|
import vue3 from '@vitejs/plugin-vue';
|
||||||
import * as compiler from '@vue/compiler-sfc'
|
import * as compiler from '@vue/compiler-sfc';
|
||||||
import { isVue2 } from 'vue-demi'
|
import { isVue2 } from 'vue-demi';
|
||||||
const { resolve } = require('path');
|
const { resolve } = require('path');
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import VueOfficeExcel from './src/main.vue'
|
import VueOfficeExcel from './src/main.vue';
|
||||||
|
|
||||||
VueOfficeExcel.install = function (Vue) {
|
VueOfficeExcel.install = function (Vue) {
|
||||||
Vue.component(VueOfficeExcel.name, VueOfficeExcel)
|
Vue.component(VueOfficeExcel.name, VueOfficeExcel);
|
||||||
}
|
};
|
||||||
|
|
||||||
export default VueOfficeExcel
|
export default VueOfficeExcel;
|
@ -1,5 +1,5 @@
|
|||||||
function HexToRgb (str) {
|
function HexToRgb (str) {
|
||||||
str = str.replace("#", "");
|
str = str.replace('#', '');
|
||||||
var hxs = str.match(/../g);
|
var hxs = str.match(/../g);
|
||||||
for (var i = 0; i < 3; i++) hxs[i] = parseInt(hxs[i], 16);
|
for (var i = 0; i < 3; i++) hxs[i] = parseInt(hxs[i], 16);
|
||||||
return hxs;
|
return hxs;
|
||||||
@ -7,8 +7,8 @@ function HexToRgb (str) {
|
|||||||
|
|
||||||
function RgbToHex (a, b, c) {
|
function RgbToHex (a, b, c) {
|
||||||
var hexs = [a.toString(16), b.toString(16), c.toString(16)];
|
var hexs = [a.toString(16), b.toString(16), c.toString(16)];
|
||||||
for (var i = 0; i < 3; i++) if (hexs[i].length == 1) hexs[i] = "0" + hexs[i];
|
for (var i = 0; i < 3; i++) if (hexs[i].length == 1) hexs[i] = '0' + hexs[i];
|
||||||
return "#" + hexs.join("");
|
return '#' + hexs.join('');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import * as Excel from 'exceljs/dist/exceljs'
|
import * as Excel from 'exceljs/dist/exceljs';
|
||||||
import {getUrl} from "../../../utils/url";
|
import {getUrl} from '../../../utils/url';
|
||||||
import tinycolor from "tinycolor2";
|
import tinycolor from 'tinycolor2';
|
||||||
import _, {cloneDeep} from "lodash";
|
import _, {cloneDeep} from 'lodash';
|
||||||
import {getDarkColor, getLightColor} from "./color";
|
import {getDarkColor, getLightColor} from './color';
|
||||||
|
|
||||||
const themeColor = [
|
const themeColor = [
|
||||||
'#FFFFFF',
|
'#FFFFFF',
|
||||||
@ -15,67 +15,67 @@ const themeColor = [
|
|||||||
'#FFC000',
|
'#FFC000',
|
||||||
'#5B9BD5',
|
'#5B9BD5',
|
||||||
'#71AD47'
|
'#71AD47'
|
||||||
]
|
];
|
||||||
|
|
||||||
let defaultColWidth = 80
|
let defaultColWidth = 80;
|
||||||
|
|
||||||
export function getData(src, options={}) {
|
export function getData(src, options={}) {
|
||||||
return fetchExcel(getUrl(src), options)
|
return fetchExcel(getUrl(src), options);
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetchExcel(src, options) {
|
function fetchExcel(src, options) {
|
||||||
return fetch(src, options).then(res=>{
|
return fetch(src, options).then(res=>{
|
||||||
if(res.status !== 200){
|
if(res.status !== 200){
|
||||||
return Promise.reject(res)
|
return Promise.reject(res);
|
||||||
}
|
}
|
||||||
return res.arrayBuffer()
|
return res.arrayBuffer();
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export function readExcelData(buffer){
|
export function readExcelData(buffer){
|
||||||
try {
|
try {
|
||||||
const wb = new Excel.Workbook();
|
const wb = new Excel.Workbook();
|
||||||
return wb.xlsx.load(buffer)
|
return wb.xlsx.load(buffer);
|
||||||
|
|
||||||
}catch (e){
|
}catch (e){
|
||||||
console.warn(e)
|
console.warn(e);
|
||||||
return Promise.reject(e)
|
return Promise.reject(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function transferColumns(excelSheet, spreadSheet, options){
|
function transferColumns(excelSheet, spreadSheet, options){
|
||||||
for(let i = 0;i < (excelSheet.columns || []).length; i++){
|
for(let i = 0;i < (excelSheet.columns || []).length; i++){
|
||||||
spreadSheet.cols[i.toString()] = {}
|
spreadSheet.cols[i.toString()] = {};
|
||||||
if(excelSheet.columns[i].width) {
|
if(excelSheet.columns[i].width) {
|
||||||
spreadSheet.cols[i.toString()].width = excelSheet.columns[i].width * 6
|
spreadSheet.cols[i.toString()].width = excelSheet.columns[i].width * 6;
|
||||||
} else {
|
} else {
|
||||||
spreadSheet.cols[i.toString()].width = defaultColWidth
|
spreadSheet.cols[i.toString()].width = defaultColWidth;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
spreadSheet.cols.len = Math.max(Object.keys(spreadSheet.cols).length, options.minColLength || 0)
|
spreadSheet.cols.len = Math.max(Object.keys(spreadSheet.cols).length, options.minColLength || 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCellText(cell){
|
function getCellText(cell){
|
||||||
if(typeof cell.value === 'number'){
|
if(typeof cell.value === 'number'){
|
||||||
return cell.value + ''
|
return cell.value + '';
|
||||||
}
|
}
|
||||||
let cellText = ''
|
let cellText = '';
|
||||||
if(cell.value && cell.value.result) {
|
if(cell.value && cell.value.result) {
|
||||||
// Excel 单元格有公式
|
// Excel 单元格有公式
|
||||||
cellText = cell.value.result
|
cellText = cell.value.result;
|
||||||
} else if(cell.value && cell.value.richText) {
|
} else if(cell.value && cell.value.richText) {
|
||||||
// Excel 单元格是多行文本
|
// Excel 单元格是多行文本
|
||||||
for(let text in cell.value.richText) {
|
for(let text in cell.value.richText) {
|
||||||
// 多行文本做累加
|
// 多行文本做累加
|
||||||
cellText += cell.value.richText[text].text
|
cellText += cell.value.richText[text].text;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Excel 单元格无公式
|
// Excel 单元格无公式
|
||||||
cellText = cell.value
|
cellText = cell.value;
|
||||||
}
|
}
|
||||||
return cellText
|
return cellText;
|
||||||
}
|
}
|
||||||
function transferArgbColor(originColor){
|
function transferArgbColor(originColor){
|
||||||
if(typeof originColor === 'object'){
|
if(typeof originColor === 'object'){
|
||||||
@ -84,7 +84,7 @@ function transferArgbColor(originColor){
|
|||||||
if(/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.test(originColor)){
|
if(/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.test(originColor)){
|
||||||
return originColor.startsWith('#') ? originColor : '#' + originColor;
|
return originColor.startsWith('#') ? originColor : '#' + originColor;
|
||||||
}
|
}
|
||||||
originColor = originColor.trim().toLowerCase(); //去掉前后空格
|
originColor = originColor.trim().toLowerCase(); //去掉前后空格
|
||||||
let color = {};
|
let color = {};
|
||||||
try {
|
try {
|
||||||
let argb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(originColor);
|
let argb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(originColor);
|
||||||
@ -92,154 +92,154 @@ function transferArgbColor(originColor){
|
|||||||
color.g = parseInt(argb[3], 16);
|
color.g = parseInt(argb[3], 16);
|
||||||
color.b = parseInt(argb[4], 16);
|
color.b = parseInt(argb[4], 16);
|
||||||
color.a = parseInt(argb[1], 16) / 255;
|
color.a = parseInt(argb[1], 16) / 255;
|
||||||
return tinycolor(`rgba(${color.r}, ${color.g}, ${color.b}, ${color.a})`).toHexString()
|
return tinycolor(`rgba(${color.r}, ${color.g}, ${color.b}, ${color.a})`).toHexString();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn(e)
|
console.warn(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function transferThemeColor(themeIndex, tint){
|
function transferThemeColor(themeIndex, tint){
|
||||||
|
|
||||||
if(themeIndex > 9){
|
if(themeIndex > 9){
|
||||||
return '#C7C9CC'
|
return '#C7C9CC';
|
||||||
}
|
}
|
||||||
if(typeof tint === 'undefined'){
|
if(typeof tint === 'undefined'){
|
||||||
return themeColor[themeIndex]
|
return themeColor[themeIndex];
|
||||||
}else if(tint > 0){
|
}else if(tint > 0){
|
||||||
return getLightColor(themeColor[themeIndex], tint)
|
return getLightColor(themeColor[themeIndex], tint);
|
||||||
}else{
|
}else{
|
||||||
return getDarkColor(themeColor[themeIndex],Math.abs(tint))
|
return getDarkColor(themeColor[themeIndex],Math.abs(tint));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function getStyle(cell){
|
function getStyle(cell){
|
||||||
cell.style = cloneDeep(cell.style)
|
cell.style = cloneDeep(cell.style);
|
||||||
let backGroundColor = null
|
let backGroundColor = null;
|
||||||
if(cell.style.fill && cell.style.fill.fgColor) {
|
if(cell.style.fill && cell.style.fill.fgColor) {
|
||||||
// 8位字符颜色先转rgb再转16进制颜色
|
// 8位字符颜色先转rgb再转16进制颜色
|
||||||
if(cell.style.fill.fgColor.argb){
|
if(cell.style.fill.fgColor.argb){
|
||||||
backGroundColor = transferArgbColor(cell.style.fill.fgColor.argb)
|
backGroundColor = transferArgbColor(cell.style.fill.fgColor.argb);
|
||||||
}else if(cell.style.fill.fgColor.hasOwnProperty('theme')){
|
}else if(cell.style.fill.fgColor.hasOwnProperty('theme')){
|
||||||
backGroundColor = transferThemeColor(cell.style.fill.fgColor.theme, cell.style.fill.fgColor.tint)
|
backGroundColor = transferThemeColor(cell.style.fill.fgColor.theme, cell.style.fill.fgColor.tint);
|
||||||
}else{
|
}else{
|
||||||
backGroundColor = '#C7C9CC'
|
backGroundColor = '#C7C9CC';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(backGroundColor) {
|
if(backGroundColor) {
|
||||||
cell.style.bgcolor = backGroundColor
|
cell.style.bgcolor = backGroundColor;
|
||||||
}
|
}
|
||||||
//*************************************************************************** */
|
//*************************************************************************** */
|
||||||
|
|
||||||
//*********************字体存在背景色******************************
|
//*********************字体存在背景色******************************
|
||||||
// 字体颜色
|
// 字体颜色
|
||||||
let fontColor = null
|
let fontColor = null;
|
||||||
if(cell.style.font && cell.style.font.color ) {
|
if(cell.style.font && cell.style.font.color ) {
|
||||||
if(cell.style.font.color.argb){
|
if(cell.style.font.color.argb){
|
||||||
fontColor = transferArgbColor(cell.style.font.color.argb)
|
fontColor = transferArgbColor(cell.style.font.color.argb);
|
||||||
}else if(cell.style.font.color.hasOwnProperty('theme')){
|
}else if(cell.style.font.color.hasOwnProperty('theme')){
|
||||||
fontColor = transferThemeColor(cell.style.font.color.theme, cell.style.font.color.tint)
|
fontColor = transferThemeColor(cell.style.font.color.theme, cell.style.font.color.tint);
|
||||||
}else{
|
}else{
|
||||||
fontColor = '#000000'
|
fontColor = '#000000';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if(fontColor) {
|
if(fontColor) {
|
||||||
cell.style.color = fontColor
|
cell.style.color = fontColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
// exceljs 对齐的格式转成 x-date-spreedsheet 能识别的对齐格式
|
// exceljs 对齐的格式转成 x-date-spreedsheet 能识别的对齐格式
|
||||||
if(cell.style.alignment ) {
|
if(cell.style.alignment ) {
|
||||||
if(cell.style.alignment.horizontal){
|
if(cell.style.alignment.horizontal){
|
||||||
cell.style.align = cell.style.alignment.horizontal
|
cell.style.align = cell.style.alignment.horizontal;
|
||||||
}
|
}
|
||||||
if(cell.style.alignment.vertical){
|
if(cell.style.alignment.vertical){
|
||||||
cell.style.valign = cell.style.alignment.vertical
|
cell.style.valign = cell.style.alignment.vertical;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(cell.style.alignment && cell.style.alignment.wrapText) {
|
if(cell.style.alignment && cell.style.alignment.wrapText) {
|
||||||
cell.style.textwrap = true
|
cell.style.textwrap = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cell.style.border){
|
if(cell.style.border){
|
||||||
let styleBorder = {}
|
let styleBorder = {};
|
||||||
Object.keys(cell.style.border).forEach(position =>{
|
Object.keys(cell.style.border).forEach(position =>{
|
||||||
let originBorder = cell.style.border[position]
|
let originBorder = cell.style.border[position];
|
||||||
let bordColor = '#000000'
|
let bordColor = '#000000';
|
||||||
|
|
||||||
if(typeof originBorder.color === 'string'){
|
if(typeof originBorder.color === 'string'){
|
||||||
bordColor = originBorder.color
|
bordColor = originBorder.color;
|
||||||
}else if(originBorder.color){
|
}else if(originBorder.color){
|
||||||
if(originBorder.color.argb){
|
if(originBorder.color.argb){
|
||||||
bordColor = transferArgbColor(originBorder.color.argb)
|
bordColor = transferArgbColor(originBorder.color.argb);
|
||||||
}else if(originBorder.color.hasOwnProperty('theme')){
|
}else if(originBorder.color.hasOwnProperty('theme')){
|
||||||
bordColor = transferThemeColor(originBorder.color.theme, originBorder.color.tint)
|
bordColor = transferThemeColor(originBorder.color.theme, originBorder.color.tint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
styleBorder[position] = [originBorder.style || 'thin', bordColor]
|
styleBorder[position] = [originBorder.style || 'thin', bordColor];
|
||||||
})
|
});
|
||||||
cell.style.border2 = {...cell.style.border}
|
cell.style.border2 = {...cell.style.border};
|
||||||
cell.style.border = styleBorder
|
cell.style.border = styleBorder;
|
||||||
}
|
}
|
||||||
|
|
||||||
return cell.style
|
return cell.style;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function transferExcelToSpreadSheet(workbook, options){
|
export function transferExcelToSpreadSheet(workbook, options){
|
||||||
let workbookData = []
|
let workbookData = [];
|
||||||
//console.log(workbook, 'workbook')
|
//console.log(workbook, 'workbook')
|
||||||
workbook.eachSheet((sheet) => {
|
workbook.eachSheet((sheet) => {
|
||||||
//console.log(sheet,'sheet')
|
//console.log(sheet,'sheet')
|
||||||
// 构造x-data-spreadsheet 的 sheet 数据源结构
|
// 构造x-data-spreadsheet 的 sheet 数据源结构
|
||||||
let sheetData = { name: sheet.name,styles : [], rows: {},cols:{}, merges:[],media:[] }
|
let sheetData = { name: sheet.name,styles : [], rows: {},cols:{}, merges:[],media:[] };
|
||||||
// 收集合并单元格信息
|
// 收集合并单元格信息
|
||||||
let mergeAddressData = []
|
let mergeAddressData = [];
|
||||||
for(let mergeRange in sheet._merges) {
|
for(let mergeRange in sheet._merges) {
|
||||||
sheetData.merges.push(sheet._merges[mergeRange].shortRange)
|
sheetData.merges.push(sheet._merges[mergeRange].shortRange);
|
||||||
let mergeAddress = {}
|
let mergeAddress = {};
|
||||||
// 合并单元格起始地址
|
// 合并单元格起始地址
|
||||||
mergeAddress.startAddress = sheet._merges[mergeRange].tl
|
mergeAddress.startAddress = sheet._merges[mergeRange].tl;
|
||||||
// 合并单元格终止地址
|
// 合并单元格终止地址
|
||||||
mergeAddress.endAddress = sheet._merges[mergeRange].br
|
mergeAddress.endAddress = sheet._merges[mergeRange].br;
|
||||||
// Y轴方向跨度
|
// Y轴方向跨度
|
||||||
mergeAddress.YRange = sheet._merges[mergeRange].model.bottom - sheet._merges[mergeRange].model.top
|
mergeAddress.YRange = sheet._merges[mergeRange].model.bottom - sheet._merges[mergeRange].model.top;
|
||||||
// X轴方向跨度
|
// X轴方向跨度
|
||||||
mergeAddress.XRange = sheet._merges[mergeRange].model.right - sheet._merges[mergeRange].model.left
|
mergeAddress.XRange = sheet._merges[mergeRange].model.right - sheet._merges[mergeRange].model.left;
|
||||||
mergeAddressData.push(mergeAddress)
|
mergeAddressData.push(mergeAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
transferColumns(sheet,sheetData, options);
|
transferColumns(sheet,sheetData, options);
|
||||||
// 遍历行
|
// 遍历行
|
||||||
(sheet._rows || []).forEach((row,spreadSheetRowIndex) =>{
|
(sheet._rows || []).forEach((row,spreadSheetRowIndex) =>{
|
||||||
sheetData.rows[spreadSheetRowIndex] = { cells: {} }
|
sheetData.rows[spreadSheetRowIndex] = { cells: {} };
|
||||||
|
|
||||||
if(row.height){
|
if(row.height){
|
||||||
sheetData.rows[spreadSheetRowIndex].height = row.height;
|
sheetData.rows[spreadSheetRowIndex].height = row.height;
|
||||||
}
|
}
|
||||||
//includeEmpty = false 不包含空白单元格
|
//includeEmpty = false 不包含空白单元格
|
||||||
(row._cells || []).forEach((cell, spreadSheetColIndex) =>{
|
(row._cells || []).forEach((cell, spreadSheetColIndex) =>{
|
||||||
sheetData.rows[spreadSheetRowIndex].cells[spreadSheetColIndex] = {}
|
sheetData.rows[spreadSheetRowIndex].cells[spreadSheetColIndex] = {};
|
||||||
|
|
||||||
let mergeAddress = _.find(mergeAddressData, function(o) { return o.startAddress == cell._address })
|
let mergeAddress = _.find(mergeAddressData, function(o) { return o.startAddress == cell._address; });
|
||||||
if(mergeAddress && cell.master.address != mergeAddress.startAddress) {
|
if(mergeAddress && cell.master.address != mergeAddress.startAddress) {
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if(mergeAddress){
|
if(mergeAddress){
|
||||||
sheetData.rows[spreadSheetRowIndex].cells[spreadSheetColIndex].merge = [mergeAddress.YRange, mergeAddress.XRange]
|
sheetData.rows[spreadSheetRowIndex].cells[spreadSheetColIndex].merge = [mergeAddress.YRange, mergeAddress.XRange];
|
||||||
}
|
}
|
||||||
sheetData.rows[spreadSheetRowIndex].cells[spreadSheetColIndex].text = getCellText(cell)
|
sheetData.rows[spreadSheetRowIndex].cells[spreadSheetColIndex].text = getCellText(cell);
|
||||||
sheetData.styles.push(getStyle(cell))
|
sheetData.styles.push(getStyle(cell));
|
||||||
sheetData.rows[spreadSheetRowIndex].cells[spreadSheetColIndex].style = sheetData.styles.length - 1
|
sheetData.rows[spreadSheetRowIndex].cells[spreadSheetColIndex].style = sheetData.styles.length - 1;
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
if(sheetData._media){
|
if(sheetData._media){
|
||||||
sheetData.media = sheetData._media
|
sheetData.media = sheetData._media;
|
||||||
}
|
}
|
||||||
workbookData.push(sheetData)
|
workbookData.push(sheetData);
|
||||||
})
|
});
|
||||||
//console.log(workbookData, 'workbookData')
|
//console.log(workbookData, 'workbookData')
|
||||||
return {
|
return {
|
||||||
workbookData,
|
workbookData,
|
||||||
workbookSource: workbook,
|
workbookSource: workbook,
|
||||||
medias: workbook.media || []
|
medias: workbook.media || []
|
||||||
}
|
};
|
||||||
}
|
}
|
@ -1,8 +1,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import {defineComponent, ref, onMounted, watch} from 'vue-demi';
|
import {defineComponent, ref, onMounted, watch} from 'vue-demi';
|
||||||
import Spreadsheet from "x-data-spreadsheet";
|
import Spreadsheet from 'x-data-spreadsheet';
|
||||||
import {getData, readExcelData, transferExcelToSpreadSheet} from './excel';
|
import {getData, readExcelData, transferExcelToSpreadSheet} from './excel';
|
||||||
import {renderImage, clearCache} from "./media";
|
import {renderImage, clearCache} from './media';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'VueOfficeExcel',
|
name: 'VueOfficeExcel',
|
||||||
@ -30,7 +30,7 @@ export default defineComponent({
|
|||||||
let sheetIndex = 1;
|
let sheetIndex = 1;
|
||||||
let ctx = null;
|
let ctx = null;
|
||||||
let xs = null;
|
let xs = null;
|
||||||
let offset = null
|
let offset = null;
|
||||||
|
|
||||||
function renderExcel(buffer) {
|
function renderExcel(buffer) {
|
||||||
readExcelData(buffer).then(workbook => {
|
readExcelData(buffer).then(workbook => {
|
||||||
@ -40,9 +40,9 @@ export default defineComponent({
|
|||||||
const {workbookData, medias, workbookSource} = transferExcelToSpreadSheet(workbook, props.options);
|
const {workbookData, medias, workbookSource} = transferExcelToSpreadSheet(workbook, props.options);
|
||||||
mediasSource = medias;
|
mediasSource = medias;
|
||||||
workbookDataSource = workbookSource;
|
workbookDataSource = workbookSource;
|
||||||
offset = null
|
offset = null;
|
||||||
sheetIndex = 1
|
sheetIndex = 1;
|
||||||
clearCache()
|
clearCache();
|
||||||
xs.loadData(workbookData);
|
xs.loadData(workbookData);
|
||||||
renderImage(ctx, mediasSource, workbookDataSource._worksheets[sheetIndex], offset);
|
renderImage(ctx, mediasSource, workbookDataSource._worksheets[sheetIndex], offset);
|
||||||
emit('rendered');
|
emit('rendered');
|
||||||
@ -50,11 +50,11 @@ export default defineComponent({
|
|||||||
|
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
console.warn(e);
|
console.warn(e);
|
||||||
mediasSource = []
|
mediasSource = [];
|
||||||
workbookDataSource = {
|
workbookDataSource = {
|
||||||
_worksheets:[]
|
_worksheets:[]
|
||||||
}
|
};
|
||||||
clearCache()
|
clearCache();
|
||||||
xs.loadData({});
|
xs.loadData({});
|
||||||
emit('error', e);
|
emit('error', e);
|
||||||
});
|
});
|
||||||
@ -80,29 +80,29 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}).loadData({});
|
}).loadData({});
|
||||||
|
|
||||||
let swapFunc = xs.bottombar.swapFunc
|
let swapFunc = xs.bottombar.swapFunc;
|
||||||
xs.bottombar.swapFunc = function (index) {
|
xs.bottombar.swapFunc = function (index) {
|
||||||
swapFunc.call(xs.bottombar, index)
|
swapFunc.call(xs.bottombar, index);
|
||||||
sheetIndex = index + 1
|
sheetIndex = index + 1;
|
||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
xs.reRender()
|
xs.reRender();
|
||||||
renderImage(ctx, mediasSource, workbookDataSource._worksheets[sheetIndex], offset);
|
renderImage(ctx, mediasSource, workbookDataSource._worksheets[sheetIndex], offset);
|
||||||
})
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
let clear = xs.sheet.editor.clear
|
let clear = xs.sheet.editor.clear;
|
||||||
xs.sheet.editor.clear = function (...args){
|
xs.sheet.editor.clear = function (...args){
|
||||||
clear.apply(xs.sheet.editor, args)
|
clear.apply(xs.sheet.editor, args);
|
||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
renderImage(ctx, mediasSource, workbookDataSource._worksheets[sheetIndex], offset);
|
renderImage(ctx, mediasSource, workbookDataSource._worksheets[sheetIndex], offset);
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
let setOffset = xs.sheet.editor.setOffset
|
let setOffset = xs.sheet.editor.setOffset;
|
||||||
xs.sheet.editor.setOffset = function (...args){
|
xs.sheet.editor.setOffset = function (...args){
|
||||||
setOffset.apply(xs.sheet.editor, args)
|
setOffset.apply(xs.sheet.editor, args);
|
||||||
offset = args[0]
|
offset = args[0];
|
||||||
renderImage(ctx, mediasSource, workbookDataSource._worksheets[sheetIndex], offset);
|
renderImage(ctx, mediasSource, workbookDataSource._worksheets[sheetIndex], offset);
|
||||||
}
|
};
|
||||||
const canvas = rootRef.value.querySelector('canvas');
|
const canvas = rootRef.value.querySelector('canvas');
|
||||||
ctx = canvas.getContext('2d');
|
ctx = canvas.getContext('2d');
|
||||||
if (props.src) {
|
if (props.src) {
|
||||||
|
@ -1,67 +1,67 @@
|
|||||||
let cache = []
|
let cache = [];
|
||||||
export function renderImage(ctx, medias, sheet, offset){
|
export function renderImage(ctx, medias, sheet, offset){
|
||||||
// console.log('medias', medias)
|
// console.log('medias', medias)
|
||||||
// console.log('sheet', sheet)
|
// console.log('sheet', sheet)
|
||||||
// console.log('offset', offset)
|
// console.log('offset', offset)
|
||||||
if(sheet && sheet._media.length){
|
if(sheet && sheet._media.length){
|
||||||
sheet._media.forEach(media => {
|
sheet._media.forEach(media => {
|
||||||
let {imageId, range, type} = media
|
let {imageId, range, type} = media;
|
||||||
if(type === "image"){
|
if(type === 'image'){
|
||||||
let position = calcPosition(sheet,range,offset)
|
let position = calcPosition(sheet,range,offset);
|
||||||
drawImage(ctx,imageId, medias[imageId], position)
|
drawImage(ctx,imageId, medias[imageId], position);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
let clipWidth = 60 //左侧序号列宽
|
let clipWidth = 60; //左侧序号列宽
|
||||||
let clipHeight = 25 //顶部序号行高
|
let clipHeight = 25; //顶部序号行高
|
||||||
let defaultColWidth = 80
|
let defaultColWidth = 80;
|
||||||
let defaultRowHeight = 24
|
let defaultRowHeight = 24;
|
||||||
let devicePixelRatio = window.devicePixelRatio
|
let devicePixelRatio = window.devicePixelRatio;
|
||||||
|
|
||||||
function calcPosition(sheet, range, offset){
|
function calcPosition(sheet, range, offset){
|
||||||
|
|
||||||
let {tl={}, br={}} = range
|
let {tl={}, br={}} = range;
|
||||||
let {nativeCol, nativeColOff, nativeRow, nativeRowOff} = tl
|
let {nativeCol, nativeColOff, nativeRow, nativeRowOff} = tl;
|
||||||
|
|
||||||
let basicX = clipWidth
|
let basicX = clipWidth;
|
||||||
let basicY = clipHeight
|
let basicY = clipHeight;
|
||||||
for(let i=0; i < nativeCol; i++){
|
for(let i=0; i < nativeCol; i++){
|
||||||
basicX += sheet?._columns?.[i]?.width*6 || defaultColWidth
|
basicX += sheet?._columns?.[i]?.width*6 || defaultColWidth;
|
||||||
}
|
}
|
||||||
for(let i=0; i < nativeRow; i++){
|
for(let i=0; i < nativeRow; i++){
|
||||||
basicY += sheet?._rows?.[i]?.height || defaultRowHeight
|
basicY += sheet?._rows?.[i]?.height || defaultRowHeight;
|
||||||
}
|
}
|
||||||
let x = basicX + nativeColOff/12700
|
let x = basicX + nativeColOff/12700;
|
||||||
let y = basicY + nativeRowOff/12700
|
let y = basicY + nativeRowOff/12700;
|
||||||
|
|
||||||
let {
|
let {
|
||||||
nativeCol: nativeColEnd,
|
nativeCol: nativeColEnd,
|
||||||
nativeColOff: nativeColOffEnd,
|
nativeColOff: nativeColOffEnd,
|
||||||
nativeRow: nativeRowEnd,
|
nativeRow: nativeRowEnd,
|
||||||
nativeRowOff: nativeRowOffEnd
|
nativeRowOff: nativeRowOffEnd
|
||||||
} = br
|
} = br;
|
||||||
let width
|
let width;
|
||||||
if(nativeCol === nativeColEnd){
|
if(nativeCol === nativeColEnd){
|
||||||
width = (nativeColOffEnd - nativeColOff) / 12700
|
width = (nativeColOffEnd - nativeColOff) / 12700;
|
||||||
}else {
|
}else {
|
||||||
width = (sheet?._columns?.[nativeCol]?.width*6 || defaultColWidth) - nativeColOff/12700
|
width = (sheet?._columns?.[nativeCol]?.width*6 || defaultColWidth) - nativeColOff/12700;
|
||||||
|
|
||||||
for(let i = nativeCol+1; i < nativeColEnd; i++){
|
for(let i = nativeCol+1; i < nativeColEnd; i++){
|
||||||
width += sheet?._columns?.[i]?.width*6 || defaultColWidth
|
width += sheet?._columns?.[i]?.width*6 || defaultColWidth;
|
||||||
}
|
}
|
||||||
width += nativeColOffEnd / 12700
|
width += nativeColOffEnd / 12700;
|
||||||
}
|
}
|
||||||
let height
|
let height;
|
||||||
if(nativeRow === nativeRowEnd){
|
if(nativeRow === nativeRowEnd){
|
||||||
height = (nativeRowOffEnd - nativeRowOff) / 12700
|
height = (nativeRowOffEnd - nativeRowOff) / 12700;
|
||||||
}else {
|
}else {
|
||||||
height = (sheet?._rows?.[nativeRow]?.height || defaultRowHeight) - nativeRowOff/12700
|
height = (sheet?._rows?.[nativeRow]?.height || defaultRowHeight) - nativeRowOff/12700;
|
||||||
for(let i = nativeRow+1; i < nativeRowEnd; i++){
|
for(let i = nativeRow+1; i < nativeRowEnd; i++){
|
||||||
height += sheet?._rows?.[i]?.height || defaultRowHeight
|
height += sheet?._rows?.[i]?.height || defaultRowHeight;
|
||||||
}
|
}
|
||||||
height += nativeRowOffEnd / 12700
|
height += nativeRowOffEnd / 12700;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -69,62 +69,62 @@ function calcPosition(sheet, range, offset){
|
|||||||
y: (y - (offset?.scroll?.y || 0)) * devicePixelRatio,
|
y: (y - (offset?.scroll?.y || 0)) * devicePixelRatio,
|
||||||
width: width * devicePixelRatio,
|
width: width * devicePixelRatio,
|
||||||
height: height * devicePixelRatio
|
height: height * devicePixelRatio
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
export function clearCache(){
|
export function clearCache(){
|
||||||
cache = []
|
cache = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawImage(ctx,index, data, position){
|
function drawImage(ctx,index, data, position){
|
||||||
getImage(index, data).then(image=>{
|
getImage(index, data).then(image=>{
|
||||||
let sx = 0
|
let sx = 0;
|
||||||
let sy = 0
|
let sy = 0;
|
||||||
let sWidth = image.width
|
let sWidth = image.width;
|
||||||
let sHeight = image.height
|
let sHeight = image.height;
|
||||||
let dx = position.x
|
let dx = position.x;
|
||||||
let dy = position.y
|
let dy = position.y;
|
||||||
let dWidth = position.width
|
let dWidth = position.width;
|
||||||
let dHeight = position.height
|
let dHeight = position.height;
|
||||||
let scaleX = dWidth / sWidth
|
let scaleX = dWidth / sWidth;
|
||||||
let scaleY = dHeight / sHeight
|
let scaleY = dHeight / sHeight;
|
||||||
|
|
||||||
if(dx < clipWidth * devicePixelRatio){
|
if(dx < clipWidth * devicePixelRatio){
|
||||||
let diff = clipWidth * devicePixelRatio - dx
|
let diff = clipWidth * devicePixelRatio - dx;
|
||||||
dx = clipWidth * devicePixelRatio
|
dx = clipWidth * devicePixelRatio;
|
||||||
dWidth -= diff
|
dWidth -= diff;
|
||||||
sWidth -= diff/scaleX
|
sWidth -= diff/scaleX;
|
||||||
sx += diff/scaleX
|
sx += diff/scaleX;
|
||||||
}
|
}
|
||||||
if(dy < clipHeight * devicePixelRatio){
|
if(dy < clipHeight * devicePixelRatio){
|
||||||
let diff = clipHeight * devicePixelRatio - dy
|
let diff = clipHeight * devicePixelRatio - dy;
|
||||||
dy = clipHeight * devicePixelRatio
|
dy = clipHeight * devicePixelRatio;
|
||||||
dHeight -= diff
|
dHeight -= diff;
|
||||||
sHeight -= diff/scaleY
|
sHeight -= diff/scaleY;
|
||||||
sy += diff/scaleY
|
sy += diff/scaleY;
|
||||||
}
|
}
|
||||||
// console.log('=>', sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
|
// console.log('=>', sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
|
||||||
ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
|
ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
|
||||||
}).catch(e=>{
|
}).catch(e=>{
|
||||||
|
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
function getImage(index, data){
|
function getImage(index, data){
|
||||||
return new Promise(((resolve, reject) => {
|
return new Promise(((resolve, reject) => {
|
||||||
if(cache[index]){
|
if(cache[index]){
|
||||||
return resolve(cache[index])
|
return resolve(cache[index]);
|
||||||
}
|
}
|
||||||
const {buffer, extension} = data.buffer;
|
const {buffer, extension} = data.buffer;
|
||||||
let blob = new Blob([buffer], { type: 'image/' + extension});
|
let blob = new Blob([buffer], { type: 'image/' + extension});
|
||||||
let url = URL.createObjectURL(blob);
|
let url = URL.createObjectURL(blob);
|
||||||
let image = new Image();
|
let image = new Image();
|
||||||
image.src = url;
|
image.src = url;
|
||||||
image.onload = function (){
|
image.onload = function (){
|
||||||
resolve(image)
|
resolve(image);
|
||||||
cache[index] = image
|
cache[index] = image;
|
||||||
}
|
};
|
||||||
image.onerror = function (e){
|
image.onerror = function (e){
|
||||||
reject(e)
|
reject(e);
|
||||||
}
|
};
|
||||||
}))
|
}));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { defineConfig } from 'vite';
|
import { defineConfig } from 'vite';
|
||||||
import { createVuePlugin } from 'vite-plugin-vue2'
|
import { createVuePlugin } from 'vite-plugin-vue2';
|
||||||
import vue3 from '@vitejs/plugin-vue'
|
import vue3 from '@vitejs/plugin-vue';
|
||||||
import * as compiler from '@vue/compiler-sfc'
|
import * as compiler from '@vue/compiler-sfc';
|
||||||
import { isVue2 } from 'vue-demi'
|
import { isVue2 } from 'vue-demi';
|
||||||
const { resolve } = require('path');
|
const { resolve } = require('path');
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import VueOfficePdf from './src/main.vue'
|
import VueOfficePdf from './src/main.vue';
|
||||||
|
|
||||||
VueOfficePdf.install = function (Vue) {
|
VueOfficePdf.install = function (Vue) {
|
||||||
Vue.component(VueOfficePdf.name, VueOfficePdf)
|
Vue.component(VueOfficePdf.name, VueOfficePdf);
|
||||||
}
|
};
|
||||||
|
|
||||||
export default VueOfficePdf
|
export default VueOfficePdf;
|
@ -1,8 +1,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import { defineComponent,ref, onMounted, watch } from 'vue-demi'
|
import { defineComponent,ref, onMounted, watch } from 'vue-demi';
|
||||||
import {worker} from './worker'
|
import {worker} from './worker';
|
||||||
import {pdfjsLib} from './pdf'
|
import {pdfjsLib} from './pdf';
|
||||||
import {getUrl, loadScript} from "../../../utils/url";
|
import {getUrl, loadScript} from '../../../utils/url';
|
||||||
|
|
||||||
const pdfJsLibSrc = `data:text/javascript;base64,${pdfjsLib}`;
|
const pdfJsLibSrc = `data:text/javascript;base64,${pdfjsLib}`;
|
||||||
const PdfJsWorkerSrc = `data:text/javascript;base64,${worker}`;
|
const PdfJsWorkerSrc = `data:text/javascript;base64,${worker}`;
|
||||||
@ -22,27 +22,27 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
emits:['rendered', 'error'],
|
emits:['rendered', 'error'],
|
||||||
setup(props, { emit }){
|
setup(props, { emit }){
|
||||||
let pdfDocument = null
|
let pdfDocument = null;
|
||||||
const rootRef = ref([])
|
const rootRef = ref([]);
|
||||||
const numPages = ref(0)
|
const numPages = ref(0);
|
||||||
|
|
||||||
function installPdfScript() {
|
function installPdfScript() {
|
||||||
return loadScript(pdfJsLibSrc).then(() => {
|
return loadScript(pdfJsLibSrc).then(() => {
|
||||||
window.pdfjsLib.GlobalWorkerOptions.workerSrc = PdfJsWorkerSrc
|
window.pdfjsLib.GlobalWorkerOptions.workerSrc = PdfJsWorkerSrc;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkPdfLib() {
|
function checkPdfLib() {
|
||||||
if (window.pdfjsLib) {
|
if (window.pdfjsLib) {
|
||||||
return Promise.resolve()
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
return installPdfScript()
|
return installPdfScript();
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
if (!props.src) {
|
if (!props.src) {
|
||||||
numPages.value = 0
|
numPages.value = 0;
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
const loadingTask = window.pdfjsLib.getDocument({
|
const loadingTask = window.pdfjsLib.getDocument({
|
||||||
url: getUrl(props.src),
|
url: getUrl(props.src),
|
||||||
@ -53,10 +53,10 @@ export default defineComponent({
|
|||||||
loadingTask.promise.then((pdf) => {
|
loadingTask.promise.then((pdf) => {
|
||||||
pdfDocument = pdf;
|
pdfDocument = pdf;
|
||||||
numPages.value = pdfDocument.numPages;
|
numPages.value = pdfDocument.numPages;
|
||||||
renderPage(1)
|
renderPage(1);
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
emit('error', e)
|
emit('error', e);
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderPage(num) {
|
function renderPage(num) {
|
||||||
@ -67,11 +67,11 @@ export default defineComponent({
|
|||||||
canvas.width = viewport.width;
|
canvas.width = viewport.width;
|
||||||
canvas.height = viewport.height;
|
canvas.height = viewport.height;
|
||||||
if(viewport.width > document.documentElement.clientWidth){
|
if(viewport.width > document.documentElement.clientWidth){
|
||||||
canvas.style.width = '100%'
|
canvas.style.width = '100%';
|
||||||
}else{
|
}else{
|
||||||
canvas.style.width = Math.floor(viewport.width) + 'px';
|
canvas.style.width = Math.floor(viewport.width) + 'px';
|
||||||
}
|
}
|
||||||
const ctx = canvas.getContext("2d");
|
const ctx = canvas.getContext('2d');
|
||||||
const renderTask = pdfPage.render({
|
const renderTask = pdfPage.render({
|
||||||
canvasContext: ctx,
|
canvasContext: ctx,
|
||||||
viewport,
|
viewport,
|
||||||
@ -80,32 +80,32 @@ export default defineComponent({
|
|||||||
if (numPages.value > num) {
|
if (numPages.value > num) {
|
||||||
renderPage(num + 1);
|
renderPage(num + 1);
|
||||||
} else {
|
} else {
|
||||||
emit('rendered')
|
emit('rendered');
|
||||||
}
|
}
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
emit('error', e)
|
emit('error', e);
|
||||||
});
|
});
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
emit('error', e)
|
emit('error', e);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(()=>{
|
onMounted(()=>{
|
||||||
if (props.src) {
|
if (props.src) {
|
||||||
checkPdfLib().then(init)
|
checkPdfLib().then(init);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
|
||||||
watch(() => props.src, ()=>{
|
watch(() => props.src, ()=>{
|
||||||
checkPdfLib().then(init)
|
checkPdfLib().then(init);
|
||||||
})
|
});
|
||||||
return {
|
return {
|
||||||
rootRef,
|
rootRef,
|
||||||
numPages
|
numPages
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,9 +1,8 @@
|
|||||||
import { defineConfig } from 'vite';
|
import { defineConfig } from 'vite';
|
||||||
import { createVuePlugin } from 'vite-plugin-vue2'
|
import { createVuePlugin } from 'vite-plugin-vue2';
|
||||||
import vue3 from '@vitejs/plugin-vue'
|
import vue3 from '@vitejs/plugin-vue';
|
||||||
import * as compiler from '@vue/compiler-sfc'
|
import * as compiler from '@vue/compiler-sfc';
|
||||||
import { isVue2 } from 'vue-demi'
|
import { isVue2 } from 'vue-demi';
|
||||||
import packageJson from './package.json'
|
|
||||||
const { resolve } = require('path');
|
const { resolve } = require('path');
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
422
pnpm-lock.yaml
generated
422
pnpm-lock.yaml
generated
@ -4,6 +4,8 @@ specifiers:
|
|||||||
'@vitejs/plugin-vue': ^4.0.0
|
'@vitejs/plugin-vue': ^4.0.0
|
||||||
'@vue/composition-api': ^1.7.1
|
'@vue/composition-api': ^1.7.1
|
||||||
docx-preview: ^0.1.14
|
docx-preview: ^0.1.14
|
||||||
|
eslint: ^8.36.0
|
||||||
|
eslint-plugin-vue: ^9.9.0
|
||||||
exceljs: ^4.3.0
|
exceljs: ^4.3.0
|
||||||
lerna: ^6.4.1
|
lerna: ^6.4.1
|
||||||
less: ^4.1.3
|
less: ^4.1.3
|
||||||
@ -32,6 +34,8 @@ dependencies:
|
|||||||
devDependencies:
|
devDependencies:
|
||||||
'@vitejs/plugin-vue': 4.0.0_vite@4.1.4
|
'@vitejs/plugin-vue': 4.0.0_vite@4.1.4
|
||||||
'@vue/composition-api': 1.7.1
|
'@vue/composition-api': 1.7.1
|
||||||
|
eslint: 8.36.0
|
||||||
|
eslint-plugin-vue: 9.9.0_eslint@8.36.0
|
||||||
lerna: 6.5.1
|
lerna: 6.5.1
|
||||||
less: 4.1.3
|
less: 4.1.3
|
||||||
less-loader: 11.1.0_less@4.1.3
|
less-loader: 11.1.0_less@4.1.3
|
||||||
@ -710,6 +714,43 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@eslint-community/eslint-utils/4.2.0_eslint@8.36.0:
|
||||||
|
resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==}
|
||||||
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
|
||||||
|
dependencies:
|
||||||
|
eslint: 8.36.0
|
||||||
|
eslint-visitor-keys: 3.3.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/@eslint-community/regexpp/4.4.0:
|
||||||
|
resolution: {integrity: sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==}
|
||||||
|
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/@eslint/eslintrc/2.0.1:
|
||||||
|
resolution: {integrity: sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==}
|
||||||
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
dependencies:
|
||||||
|
ajv: 6.12.6
|
||||||
|
debug: 4.3.4
|
||||||
|
espree: 9.5.0
|
||||||
|
globals: 13.20.0
|
||||||
|
ignore: 5.2.4
|
||||||
|
import-fresh: 3.3.0
|
||||||
|
js-yaml: 4.1.0
|
||||||
|
minimatch: 3.1.2
|
||||||
|
strip-json-comments: 3.1.1
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/@eslint/js/8.36.0:
|
||||||
|
resolution: {integrity: sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==}
|
||||||
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@fast-csv/format/4.3.5:
|
/@fast-csv/format/4.3.5:
|
||||||
resolution: {integrity: sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==}
|
resolution: {integrity: sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -737,6 +778,26 @@ packages:
|
|||||||
resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
|
resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@humanwhocodes/config-array/0.11.8:
|
||||||
|
resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
|
||||||
|
engines: {node: '>=10.10.0'}
|
||||||
|
dependencies:
|
||||||
|
'@humanwhocodes/object-schema': 1.2.1
|
||||||
|
debug: 4.3.4
|
||||||
|
minimatch: 3.1.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/@humanwhocodes/module-importer/1.0.1:
|
||||||
|
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
|
||||||
|
engines: {node: '>=12.22'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/@humanwhocodes/object-schema/1.2.1:
|
||||||
|
resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@hutson/parse-repository-url/3.0.2:
|
/@hutson/parse-repository-url/3.0.2:
|
||||||
resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==}
|
resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1587,6 +1648,20 @@ packages:
|
|||||||
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
|
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/acorn-jsx/5.3.2_acorn@8.8.2:
|
||||||
|
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
||||||
|
peerDependencies:
|
||||||
|
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||||
|
dependencies:
|
||||||
|
acorn: 8.8.2
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/acorn/8.8.2:
|
||||||
|
resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
|
||||||
|
engines: {node: '>=0.4.0'}
|
||||||
|
hasBin: true
|
||||||
|
dev: true
|
||||||
|
|
||||||
/add-stream/1.0.0:
|
/add-stream/1.0.0:
|
||||||
resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==}
|
resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -1619,6 +1694,15 @@ packages:
|
|||||||
indent-string: 4.0.0
|
indent-string: 4.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/ajv/6.12.6:
|
||||||
|
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
|
||||||
|
dependencies:
|
||||||
|
fast-deep-equal: 3.1.3
|
||||||
|
fast-json-stable-stringify: 2.1.0
|
||||||
|
json-schema-traverse: 0.4.1
|
||||||
|
uri-js: 4.4.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/ansi-colors/4.1.3:
|
/ansi-colors/4.1.3:
|
||||||
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
|
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@ -1835,6 +1919,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
|
resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/boolbase/1.0.0:
|
||||||
|
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/brace-expansion/1.1.11:
|
/brace-expansion/1.1.11:
|
||||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -2721,6 +2809,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
|
resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/deep-is/0.1.4:
|
||||||
|
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/deepmerge/4.3.0:
|
/deepmerge/4.3.0:
|
||||||
resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==}
|
resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -2774,6 +2866,13 @@ packages:
|
|||||||
path-type: 4.0.0
|
path-type: 4.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/doctrine/3.0.0:
|
||||||
|
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
|
||||||
|
engines: {node: '>=6.0.0'}
|
||||||
|
dependencies:
|
||||||
|
esutils: 2.0.3
|
||||||
|
dev: true
|
||||||
|
|
||||||
/docx-preview/0.1.15:
|
/docx-preview/0.1.15:
|
||||||
resolution: {integrity: sha512-qeYNwA+HF0e+GLxH/yltGdaBVQHoQrscfCwR2p7fRGCMjPBohdd36L7xDi1wdErS3ZnV/uh4kx5+tXOXgzq/dQ==}
|
resolution: {integrity: sha512-qeYNwA+HF0e+GLxH/yltGdaBVQHoQrscfCwR2p7fRGCMjPBohdd36L7xDi1wdErS3ZnV/uh4kx5+tXOXgzq/dQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -2911,6 +3010,115 @@ packages:
|
|||||||
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
|
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
|
||||||
engines: {node: '>=0.8.0'}
|
engines: {node: '>=0.8.0'}
|
||||||
|
|
||||||
|
/escape-string-regexp/4.0.0:
|
||||||
|
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/eslint-plugin-vue/9.9.0_eslint@8.36.0:
|
||||||
|
resolution: {integrity: sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==}
|
||||||
|
engines: {node: ^14.17.0 || >=16.0.0}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
|
||||||
|
dependencies:
|
||||||
|
eslint: 8.36.0
|
||||||
|
eslint-utils: 3.0.0_eslint@8.36.0
|
||||||
|
natural-compare: 1.4.0
|
||||||
|
nth-check: 2.1.1
|
||||||
|
postcss-selector-parser: 6.0.11
|
||||||
|
semver: 7.3.8
|
||||||
|
vue-eslint-parser: 9.1.0_eslint@8.36.0
|
||||||
|
xml-name-validator: 4.0.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/eslint-scope/7.1.1:
|
||||||
|
resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
|
||||||
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
dependencies:
|
||||||
|
esrecurse: 4.3.0
|
||||||
|
estraverse: 5.3.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/eslint-utils/3.0.0_eslint@8.36.0:
|
||||||
|
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
|
||||||
|
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: '>=5'
|
||||||
|
dependencies:
|
||||||
|
eslint: 8.36.0
|
||||||
|
eslint-visitor-keys: 2.1.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/eslint-visitor-keys/2.1.0:
|
||||||
|
resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/eslint-visitor-keys/3.3.0:
|
||||||
|
resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
|
||||||
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/eslint/8.36.0:
|
||||||
|
resolution: {integrity: sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==}
|
||||||
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
'@eslint-community/eslint-utils': 4.2.0_eslint@8.36.0
|
||||||
|
'@eslint-community/regexpp': 4.4.0
|
||||||
|
'@eslint/eslintrc': 2.0.1
|
||||||
|
'@eslint/js': 8.36.0
|
||||||
|
'@humanwhocodes/config-array': 0.11.8
|
||||||
|
'@humanwhocodes/module-importer': 1.0.1
|
||||||
|
'@nodelib/fs.walk': 1.2.8
|
||||||
|
ajv: 6.12.6
|
||||||
|
chalk: 4.1.2
|
||||||
|
cross-spawn: 7.0.3
|
||||||
|
debug: 4.3.4
|
||||||
|
doctrine: 3.0.0
|
||||||
|
escape-string-regexp: 4.0.0
|
||||||
|
eslint-scope: 7.1.1
|
||||||
|
eslint-visitor-keys: 3.3.0
|
||||||
|
espree: 9.5.0
|
||||||
|
esquery: 1.4.2
|
||||||
|
esutils: 2.0.3
|
||||||
|
fast-deep-equal: 3.1.3
|
||||||
|
file-entry-cache: 6.0.1
|
||||||
|
find-up: 5.0.0
|
||||||
|
glob-parent: 6.0.2
|
||||||
|
globals: 13.20.0
|
||||||
|
grapheme-splitter: 1.0.4
|
||||||
|
ignore: 5.2.4
|
||||||
|
import-fresh: 3.3.0
|
||||||
|
imurmurhash: 0.1.4
|
||||||
|
is-glob: 4.0.3
|
||||||
|
is-path-inside: 3.0.3
|
||||||
|
js-sdsl: 4.3.0
|
||||||
|
js-yaml: 4.1.0
|
||||||
|
json-stable-stringify-without-jsonify: 1.0.1
|
||||||
|
levn: 0.4.1
|
||||||
|
lodash.merge: 4.6.2
|
||||||
|
minimatch: 3.1.2
|
||||||
|
natural-compare: 1.4.0
|
||||||
|
optionator: 0.9.1
|
||||||
|
strip-ansi: 6.0.1
|
||||||
|
strip-json-comments: 3.1.1
|
||||||
|
text-table: 0.2.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/espree/9.5.0:
|
||||||
|
resolution: {integrity: sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==}
|
||||||
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
dependencies:
|
||||||
|
acorn: 8.8.2
|
||||||
|
acorn-jsx: 5.3.2_acorn@8.8.2
|
||||||
|
eslint-visitor-keys: 3.3.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/esprima/4.0.1:
|
/esprima/4.0.1:
|
||||||
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@ -2924,6 +3132,13 @@ packages:
|
|||||||
estraverse: 5.3.0
|
estraverse: 5.3.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/esrecurse/4.3.0:
|
||||||
|
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
|
||||||
|
engines: {node: '>=4.0'}
|
||||||
|
dependencies:
|
||||||
|
estraverse: 5.3.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/estraverse/5.3.0:
|
/estraverse/5.3.0:
|
||||||
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
|
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
|
||||||
engines: {node: '>=4.0'}
|
engines: {node: '>=4.0'}
|
||||||
@ -2933,6 +3148,11 @@ packages:
|
|||||||
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
|
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/esutils/2.0.3:
|
||||||
|
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/eventemitter3/4.0.7:
|
/eventemitter3/4.0.7:
|
||||||
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
|
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -2993,6 +3213,10 @@ packages:
|
|||||||
'@fast-csv/parse': 4.3.6
|
'@fast-csv/parse': 4.3.6
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/fast-deep-equal/3.1.3:
|
||||||
|
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/fast-glob/3.2.12:
|
/fast-glob/3.2.12:
|
||||||
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
|
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
|
||||||
engines: {node: '>=8.6.0'}
|
engines: {node: '>=8.6.0'}
|
||||||
@ -3015,6 +3239,14 @@ packages:
|
|||||||
micromatch: 4.0.5
|
micromatch: 4.0.5
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/fast-json-stable-stringify/2.1.0:
|
||||||
|
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/fast-levenshtein/2.0.6:
|
||||||
|
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/fastq/1.15.0:
|
/fastq/1.15.0:
|
||||||
resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
|
resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -3035,6 +3267,13 @@ packages:
|
|||||||
escape-string-regexp: 1.0.5
|
escape-string-regexp: 1.0.5
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/file-entry-cache/6.0.1:
|
||||||
|
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
|
||||||
|
engines: {node: ^10.12.0 || >=12.0.0}
|
||||||
|
dependencies:
|
||||||
|
flat-cache: 3.0.4
|
||||||
|
dev: true
|
||||||
|
|
||||||
/filelist/1.0.4:
|
/filelist/1.0.4:
|
||||||
resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
|
resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -3063,11 +3302,31 @@ packages:
|
|||||||
path-exists: 4.0.0
|
path-exists: 4.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/find-up/5.0.0:
|
||||||
|
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
locate-path: 6.0.0
|
||||||
|
path-exists: 4.0.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/flat-cache/3.0.4:
|
||||||
|
resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
|
||||||
|
engines: {node: ^10.12.0 || >=12.0.0}
|
||||||
|
dependencies:
|
||||||
|
flatted: 3.2.7
|
||||||
|
rimraf: 3.0.2
|
||||||
|
dev: true
|
||||||
|
|
||||||
/flat/5.0.2:
|
/flat/5.0.2:
|
||||||
resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
|
resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/flatted/3.2.7:
|
||||||
|
resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/follow-redirects/1.15.2:
|
/follow-redirects/1.15.2:
|
||||||
resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
|
resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
|
||||||
engines: {node: '>=4.0'}
|
engines: {node: '>=4.0'}
|
||||||
@ -3250,6 +3509,13 @@ packages:
|
|||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/glob-parent/6.0.2:
|
||||||
|
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
|
||||||
|
engines: {node: '>=10.13.0'}
|
||||||
|
dependencies:
|
||||||
|
is-glob: 4.0.3
|
||||||
|
dev: true
|
||||||
|
|
||||||
/glob/7.1.4:
|
/glob/7.1.4:
|
||||||
resolution: {integrity: sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==}
|
resolution: {integrity: sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -3287,6 +3553,13 @@ packages:
|
|||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/globals/13.20.0:
|
||||||
|
resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dependencies:
|
||||||
|
type-fest: 0.20.2
|
||||||
|
dev: true
|
||||||
|
|
||||||
/globby/11.1.0:
|
/globby/11.1.0:
|
||||||
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
|
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@ -3302,6 +3575,10 @@ packages:
|
|||||||
/graceful-fs/4.2.10:
|
/graceful-fs/4.2.10:
|
||||||
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
|
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
|
||||||
|
|
||||||
|
/grapheme-splitter/1.0.4:
|
||||||
|
resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/handlebars/4.7.7:
|
/handlebars/4.7.7:
|
||||||
resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==}
|
resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==}
|
||||||
engines: {node: '>=0.4.7'}
|
engines: {node: '>=0.4.7'}
|
||||||
@ -3630,6 +3907,11 @@ packages:
|
|||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/is-path-inside/3.0.3:
|
||||||
|
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/is-plain-obj/1.1.0:
|
/is-plain-obj/1.1.0:
|
||||||
resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
|
resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -3709,6 +3991,10 @@ packages:
|
|||||||
minimatch: 3.0.5
|
minimatch: 3.0.5
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/js-sdsl/4.3.0:
|
||||||
|
resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/js-tokens/4.0.0:
|
/js-tokens/4.0.0:
|
||||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -3742,6 +4028,14 @@ packages:
|
|||||||
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
|
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/json-schema-traverse/0.4.1:
|
||||||
|
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/json-stable-stringify-without-jsonify/1.0.1:
|
||||||
|
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/json-stringify-nice/1.1.4:
|
/json-stringify-nice/1.1.4:
|
||||||
resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
|
resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -3928,6 +4222,14 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/levn/0.4.1:
|
||||||
|
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
|
||||||
|
engines: {node: '>= 0.8.0'}
|
||||||
|
dependencies:
|
||||||
|
prelude-ls: 1.2.1
|
||||||
|
type-check: 0.4.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/libnpmaccess/6.0.3:
|
/libnpmaccess/6.0.3:
|
||||||
resolution: {integrity: sha512-4tkfUZprwvih2VUZYMozL7EMKgQ5q9VW2NtRyxWtQWlkLTAWHRklcAvBN49CVqEkhUw7vTX2fNgB5LzgUucgYg==}
|
resolution: {integrity: sha512-4tkfUZprwvih2VUZYMozL7EMKgQ5q9VW2NtRyxWtQWlkLTAWHRklcAvBN49CVqEkhUw7vTX2fNgB5LzgUucgYg==}
|
||||||
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
|
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
|
||||||
@ -4009,6 +4311,13 @@ packages:
|
|||||||
p-locate: 4.1.0
|
p-locate: 4.1.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/locate-path/6.0.0:
|
||||||
|
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
p-locate: 5.0.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/lodash.defaults/4.2.0:
|
/lodash.defaults/4.2.0:
|
||||||
resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
|
resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
|
||||||
dev: false
|
dev: false
|
||||||
@ -4061,6 +4370,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==}
|
resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/lodash.merge/4.6.2:
|
||||||
|
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/lodash.union/4.6.0:
|
/lodash.union/4.6.0:
|
||||||
resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==}
|
resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==}
|
||||||
dev: false
|
dev: false
|
||||||
@ -4397,6 +4710,10 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/natural-compare/1.4.0:
|
||||||
|
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/needle/3.2.0:
|
/needle/3.2.0:
|
||||||
resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==}
|
resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==}
|
||||||
engines: {node: '>= 4.4.x'}
|
engines: {node: '>= 4.4.x'}
|
||||||
@ -4617,6 +4934,12 @@ packages:
|
|||||||
set-blocking: 2.0.0
|
set-blocking: 2.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/nth-check/2.1.1:
|
||||||
|
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
|
||||||
|
dependencies:
|
||||||
|
boolbase: 1.0.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/nx/15.7.2:
|
/nx/15.7.2:
|
||||||
resolution: {integrity: sha512-VRb+CZCji3G4ikdMAGoh6TeU9Q6n5atRwqRSFhUX63er8zhlMvWHLskPMZC4q/81edo/E7RhbmEVUD5MB0JoeA==}
|
resolution: {integrity: sha512-VRb+CZCji3G4ikdMAGoh6TeU9Q6n5atRwqRSFhUX63er8zhlMvWHLskPMZC4q/81edo/E7RhbmEVUD5MB0JoeA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@ -4737,6 +5060,18 @@ packages:
|
|||||||
pinkie-promise: 2.0.1
|
pinkie-promise: 2.0.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/optionator/0.9.1:
|
||||||
|
resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
|
||||||
|
engines: {node: '>= 0.8.0'}
|
||||||
|
dependencies:
|
||||||
|
deep-is: 0.1.4
|
||||||
|
fast-levenshtein: 2.0.6
|
||||||
|
levn: 0.4.1
|
||||||
|
prelude-ls: 1.2.1
|
||||||
|
type-check: 0.4.0
|
||||||
|
word-wrap: 1.2.3
|
||||||
|
dev: true
|
||||||
|
|
||||||
/ora/5.4.1:
|
/ora/5.4.1:
|
||||||
resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
|
resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@ -4775,6 +5110,13 @@ packages:
|
|||||||
p-try: 2.2.0
|
p-try: 2.2.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/p-limit/3.1.0:
|
||||||
|
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
yocto-queue: 0.1.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/p-locate/2.0.0:
|
/p-locate/2.0.0:
|
||||||
resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
|
resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@ -4789,6 +5131,13 @@ packages:
|
|||||||
p-limit: 2.3.0
|
p-limit: 2.3.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/p-locate/5.0.0:
|
||||||
|
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
p-limit: 3.1.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/p-map-series/2.1.0:
|
/p-map-series/2.1.0:
|
||||||
resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==}
|
resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@ -5041,6 +5390,11 @@ packages:
|
|||||||
source-map-js: 1.0.2
|
source-map-js: 1.0.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/prelude-ls/1.2.1:
|
||||||
|
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
|
||||||
|
engines: {node: '>= 0.8.0'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/prettier/2.8.4:
|
/prettier/2.8.4:
|
||||||
resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==}
|
resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==}
|
||||||
engines: {node: '>=10.13.0'}
|
engines: {node: '>=10.13.0'}
|
||||||
@ -5107,6 +5461,11 @@ packages:
|
|||||||
resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
|
resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/punycode/2.3.0:
|
||||||
|
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/q/1.5.1:
|
/q/1.5.1:
|
||||||
resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}
|
resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}
|
||||||
engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
|
engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
|
||||||
@ -5604,6 +5963,11 @@ packages:
|
|||||||
min-indent: 1.0.1
|
min-indent: 1.0.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/strip-json-comments/3.1.1:
|
||||||
|
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/strong-log-transformer/2.1.0:
|
/strong-log-transformer/2.1.0:
|
||||||
resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==}
|
resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@ -5674,6 +6038,10 @@ packages:
|
|||||||
engines: {node: '>=0.10'}
|
engines: {node: '>=0.10'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/text-table/0.2.0:
|
||||||
|
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/through/2.3.8:
|
/through/2.3.8:
|
||||||
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
|
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
|
||||||
|
|
||||||
@ -5749,11 +6117,23 @@ packages:
|
|||||||
resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
|
resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/type-check/0.4.0:
|
||||||
|
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
|
||||||
|
engines: {node: '>= 0.8.0'}
|
||||||
|
dependencies:
|
||||||
|
prelude-ls: 1.2.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/type-fest/0.18.1:
|
/type-fest/0.18.1:
|
||||||
resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
|
resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/type-fest/0.20.2:
|
||||||
|
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/type-fest/0.21.3:
|
/type-fest/0.21.3:
|
||||||
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
|
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@ -5846,6 +6226,12 @@ packages:
|
|||||||
picocolors: 1.0.0
|
picocolors: 1.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/uri-js/4.4.1:
|
||||||
|
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||||
|
dependencies:
|
||||||
|
punycode: 2.3.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/util-deprecate/1.0.2:
|
/util-deprecate/1.0.2:
|
||||||
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
||||||
|
|
||||||
@ -5978,7 +6364,6 @@ packages:
|
|||||||
- underscore
|
- underscore
|
||||||
- vash
|
- vash
|
||||||
- velocityjs
|
- velocityjs
|
||||||
- vue
|
|
||||||
- walrus
|
- walrus
|
||||||
- whiskers
|
- whiskers
|
||||||
dev: true
|
dev: true
|
||||||
@ -6032,6 +6417,24 @@ packages:
|
|||||||
'@vue/composition-api': 1.7.1
|
'@vue/composition-api': 1.7.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/vue-eslint-parser/9.1.0_eslint@8.36.0:
|
||||||
|
resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==}
|
||||||
|
engines: {node: ^14.17.0 || >=16.0.0}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: '>=6.0.0'
|
||||||
|
dependencies:
|
||||||
|
debug: 4.3.4
|
||||||
|
eslint: 8.36.0
|
||||||
|
eslint-scope: 7.1.1
|
||||||
|
eslint-visitor-keys: 3.3.0
|
||||||
|
espree: 9.5.0
|
||||||
|
esquery: 1.4.2
|
||||||
|
lodash: 4.17.21
|
||||||
|
semver: 7.3.8
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: true
|
||||||
|
|
||||||
/vue-template-babel-compiler/1.2.0_ev5jzj74xu2fombjvobqpq452a:
|
/vue-template-babel-compiler/1.2.0_ev5jzj74xu2fombjvobqpq452a:
|
||||||
resolution: {integrity: sha512-CScBSX1/wCdmmZ/Lvj/63p2CCVTS0FMj0F69VRBo73CuJrjvPAPGmeNJ7D/cwt/VS2PduowRWbO8N4Zh4Z3b0g==}
|
resolution: {integrity: sha512-CScBSX1/wCdmmZ/Lvj/63p2CCVTS0FMj0F69VRBo73CuJrjvPAPGmeNJ7D/cwt/VS2PduowRWbO8N4Zh4Z3b0g==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: '>=12.0.0'}
|
||||||
@ -6078,8 +6481,6 @@ packages:
|
|||||||
'@vue/runtime-dom': 3.2.45
|
'@vue/runtime-dom': 3.2.45
|
||||||
'@vue/server-renderer': 3.2.45
|
'@vue/server-renderer': 3.2.45
|
||||||
'@vue/shared': 3.2.45
|
'@vue/shared': 3.2.45
|
||||||
transitivePeerDependencies:
|
|
||||||
- vue
|
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/walk-up-path/1.0.0:
|
/walk-up-path/1.0.0:
|
||||||
@ -6117,6 +6518,11 @@ packages:
|
|||||||
string-width: 4.2.3
|
string-width: 4.2.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/word-wrap/1.2.3:
|
||||||
|
resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/wordwrap/1.0.0:
|
/wordwrap/1.0.0:
|
||||||
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
|
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -6178,6 +6584,11 @@ packages:
|
|||||||
opencollective-postinstall: 2.0.3
|
opencollective-postinstall: 2.0.3
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/xml-name-validator/4.0.0:
|
||||||
|
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/xmlchars/2.2.0:
|
/xmlchars/2.2.0:
|
||||||
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
|
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
|
||||||
dev: false
|
dev: false
|
||||||
@ -6245,6 +6656,11 @@ packages:
|
|||||||
yargs-parser: 21.1.1
|
yargs-parser: 21.1.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/yocto-queue/0.1.0:
|
||||||
|
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/zip-stream/4.1.0:
|
/zip-stream/4.1.0:
|
||||||
resolution: {integrity: sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==}
|
resolution: {integrity: sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
const { switchVersion, loadModule } = require('./utils')
|
const { switchVersion, loadModule } = require('./utils');
|
||||||
const Vue = loadModule('vue')
|
const Vue = loadModule('vue');
|
||||||
if (!Vue || typeof Vue.version !== 'string') {
|
if (!Vue || typeof Vue.version !== 'string') {
|
||||||
console.warn(
|
console.warn(
|
||||||
'[vue-office] Vue is not found. Please run "npm install vue" to install.'
|
'[vue-office] Vue is not found. Please run "npm install vue" to install.'
|
||||||
)
|
);
|
||||||
} else if (Vue.version.startsWith('2.')) {
|
} else if (Vue.version.startsWith('2.')) {
|
||||||
switchVersion(2)
|
switchVersion(2);
|
||||||
} else if (Vue.version.startsWith('3.')) {
|
} else if (Vue.version.startsWith('3.')) {
|
||||||
switchVersion(3)
|
switchVersion(3);
|
||||||
} else {
|
} else {
|
||||||
console.warn(
|
console.warn(
|
||||||
`[vue-office] Vue version v${Vue.version} is not supported.`
|
`[vue-office] Vue version v${Vue.version} is not supported.`
|
||||||
)
|
);
|
||||||
}
|
}
|
@ -1,14 +1,14 @@
|
|||||||
const { switchVersion } = require('./utils')
|
const { switchVersion } = require('./utils');
|
||||||
|
|
||||||
const version = process.argv[2]
|
const version = process.argv[2];
|
||||||
|
|
||||||
if (version == '2') {
|
if (version == '2') {
|
||||||
switchVersion(2)
|
switchVersion(2);
|
||||||
} else if (version == '3') {
|
} else if (version == '3') {
|
||||||
switchVersion(3)
|
switchVersion(3);
|
||||||
} else {
|
} else {
|
||||||
console.warn(
|
console.warn(
|
||||||
`[vue-office] expecting version "2" or "3" but got "${version}"`
|
`[vue-office] expecting version "2" or "3" but got "${version}"`
|
||||||
)
|
);
|
||||||
process.exit(1)
|
process.exit(1);
|
||||||
}
|
}
|
@ -1,31 +1,31 @@
|
|||||||
const fs = require('fs')
|
const fs = require('fs');
|
||||||
const path = require('path')
|
const path = require('path');
|
||||||
const dir = path.resolve(__dirname, '../')
|
const dir = path.resolve(__dirname, '../');
|
||||||
function loadModule(name) {
|
function loadModule(name) {
|
||||||
try {
|
try {
|
||||||
return require(name)
|
return require(name);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return undefined
|
return undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function copy(name, version) {
|
function copy(name, version) {
|
||||||
const src = path.join(dir, `v${version}`, name)
|
const src = path.join(dir, `v${version}`, name);
|
||||||
const dest = path.join(dir, name)
|
const dest = path.join(dir, name);
|
||||||
if(!fs.existsSync(src)){
|
if(!fs.existsSync(src)){
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
let content = fs.readFileSync(src, 'utf-8')
|
let content = fs.readFileSync(src, 'utf-8');
|
||||||
try {
|
try {
|
||||||
fs.unlinkSync(dest)
|
fs.unlinkSync(dest);
|
||||||
} catch (error) {}
|
} catch (error) {}
|
||||||
fs.writeFileSync(dest, content, 'utf-8')
|
fs.writeFileSync(dest, content, 'utf-8');
|
||||||
}
|
}
|
||||||
|
|
||||||
function switchVersion(version) {
|
function switchVersion(version) {
|
||||||
copy('index.js', version)
|
copy('index.js', version);
|
||||||
copy('index.css', version)
|
copy('index.css', version);
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports.loadModule = loadModule
|
module.exports.loadModule = loadModule;
|
||||||
module.exports.switchVersion = switchVersion
|
module.exports.switchVersion = switchVersion;
|
Loading…
x
Reference in New Issue
Block a user