case 4722 - DOMPurify 2.5.9 and Vuetify 2.7.2
DOMPurify 2.3.8 -> 2.5.9 and Vuetify 2.6.6 -> 2.7.2, the latest 2.x of each; builds on Node 12.22.9. Only these two packages change in the lockfile (kept in its v2 format). Vuetify 2.7 calendar eventSummary() returns an element, not an HTML string, so the six calendar event templates render it with the new gz-vnodes component instead of v-html. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
28
ayanova/package-lock.json
generated
28
ayanova/package-lock.json
generated
@@ -15,7 +15,7 @@
|
|||||||
"chart.js": "^2.9.4",
|
"chart.js": "^2.9.4",
|
||||||
"chartjs-adapter-luxon": "^0.2.2",
|
"chartjs-adapter-luxon": "^0.2.2",
|
||||||
"core-js": "^3.23.1",
|
"core-js": "^3.23.1",
|
||||||
"dompurify": "^2.3.8",
|
"dompurify": "^2.5.9",
|
||||||
"fontsource-roboto": "^3.1.5",
|
"fontsource-roboto": "^3.1.5",
|
||||||
"github-markdown-css": "^4.0.0",
|
"github-markdown-css": "^4.0.0",
|
||||||
"jwt-decode": "^3.1.2",
|
"jwt-decode": "^3.1.2",
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"vue-currency-input": "1.22.3",
|
"vue-currency-input": "1.22.3",
|
||||||
"vue-router": "^3.5.4",
|
"vue-router": "^3.5.4",
|
||||||
"vue-signature": "^2.5.5",
|
"vue-signature": "^2.5.5",
|
||||||
"vuetify": "^2.6.6",
|
"vuetify": "^2.7.2",
|
||||||
"vuex": "^3.6.2",
|
"vuex": "^3.6.2",
|
||||||
"vuex-persistedstate": "^2.7.1"
|
"vuex-persistedstate": "^2.7.1"
|
||||||
},
|
},
|
||||||
@@ -6190,9 +6190,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/dompurify": {
|
"node_modules/dompurify": {
|
||||||
"version": "2.3.8",
|
"version": "2.5.9",
|
||||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.8.tgz",
|
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.9.tgz",
|
||||||
"integrity": "sha512-eVhaWoVibIzqdGYjwsBWodIQIaXFSB+cKDf4cfxLMsK0xiud6SE+/WCVx/Xw/UwQsa4cS3T2eITcdtmTg2UKcw=="
|
"integrity": "sha512-i6mvVmWN4xo9LrhCOZrDgSs9noW6nOahbrmzjRbPF36YPyj5Ue5lgok0MHDWkG7xzpWFO2OYttXdzM7rJxHvNA=="
|
||||||
},
|
},
|
||||||
"node_modules/domutils": {
|
"node_modules/domutils": {
|
||||||
"version": "2.8.0",
|
"version": "2.8.0",
|
||||||
@@ -15398,9 +15398,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/vuetify": {
|
"node_modules/vuetify": {
|
||||||
"version": "2.6.6",
|
"version": "2.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.6.6.tgz",
|
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.7.2.tgz",
|
||||||
"integrity": "sha512-H4KtxDFmDN8QiTRiGfBySyjMhVaHAJTKB0llGGKZT5jKxtnx9gvEtMWXKtVuRP0NJJP0H6xBPJHNOH7nT18qiQ==",
|
"integrity": "sha512-qr04ww7uzAPQbpk751x4fSdjsJ+zREzjQ/rBlcQGuWS6MIMFMXcXcwvp4+/tnGsULZxPMWfQ0kmZmg5Yc/XzgQ==",
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
"url": "https://github.com/sponsors/johnleider"
|
"url": "https://github.com/sponsors/johnleider"
|
||||||
@@ -21772,9 +21772,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dompurify": {
|
"dompurify": {
|
||||||
"version": "2.3.8",
|
"version": "2.5.9",
|
||||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.8.tgz",
|
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.9.tgz",
|
||||||
"integrity": "sha512-eVhaWoVibIzqdGYjwsBWodIQIaXFSB+cKDf4cfxLMsK0xiud6SE+/WCVx/Xw/UwQsa4cS3T2eITcdtmTg2UKcw=="
|
"integrity": "sha512-i6mvVmWN4xo9LrhCOZrDgSs9noW6nOahbrmzjRbPF36YPyj5Ue5lgok0MHDWkG7xzpWFO2OYttXdzM7rJxHvNA=="
|
||||||
},
|
},
|
||||||
"domutils": {
|
"domutils": {
|
||||||
"version": "2.8.0",
|
"version": "2.8.0",
|
||||||
@@ -29104,9 +29104,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"vuetify": {
|
"vuetify": {
|
||||||
"version": "2.6.6",
|
"version": "2.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.6.6.tgz",
|
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.7.2.tgz",
|
||||||
"integrity": "sha512-H4KtxDFmDN8QiTRiGfBySyjMhVaHAJTKB0llGGKZT5jKxtnx9gvEtMWXKtVuRP0NJJP0H6xBPJHNOH7nT18qiQ==",
|
"integrity": "sha512-qr04ww7uzAPQbpk751x4fSdjsJ+zREzjQ/rBlcQGuWS6MIMFMXcXcwvp4+/tnGsULZxPMWfQ0kmZmg5Yc/XzgQ==",
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"vuetify-loader": {
|
"vuetify-loader": {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
"chart.js": "^2.9.4",
|
"chart.js": "^2.9.4",
|
||||||
"chartjs-adapter-luxon": "^0.2.2",
|
"chartjs-adapter-luxon": "^0.2.2",
|
||||||
"core-js": "^3.23.1",
|
"core-js": "^3.23.1",
|
||||||
"dompurify": "^2.3.8",
|
"dompurify": "^2.5.9",
|
||||||
"fontsource-roboto": "^3.1.5",
|
"fontsource-roboto": "^3.1.5",
|
||||||
"github-markdown-css": "^4.0.0",
|
"github-markdown-css": "^4.0.0",
|
||||||
"jwt-decode": "^3.1.2",
|
"jwt-decode": "^3.1.2",
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
"vue-currency-input": "1.22.3",
|
"vue-currency-input": "1.22.3",
|
||||||
"vue-router": "^3.5.4",
|
"vue-router": "^3.5.4",
|
||||||
"vue-signature": "^2.5.5",
|
"vue-signature": "^2.5.5",
|
||||||
"vuetify": "^2.6.6",
|
"vuetify": "^2.7.2",
|
||||||
"vuex": "^3.6.2",
|
"vuex": "^3.6.2",
|
||||||
"vuex-persistedstate": "^2.7.1"
|
"vuex-persistedstate": "^2.7.1"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -26,11 +26,9 @@
|
|||||||
>
|
>
|
||||||
<template v-slot:event="{ event, eventSummary }">
|
<template v-slot:event="{ event, eventSummary }">
|
||||||
<div>
|
<div>
|
||||||
<!-- eslint-disable vue/no-v-html -->
|
<span :class="event.textColor + '--text'"
|
||||||
<span
|
><gz-vnodes :vnodes="eventSummary()"/></span
|
||||||
:class="event.textColor + '--text'"
|
><v-icon v-if="!event.editable" x-small :color="event.textColor">
|
||||||
v-html="eventSummary()"
|
|
||||||
/><v-icon v-if="!event.editable" x-small :color="event.textColor">
|
|
||||||
$ayiLock</v-icon
|
$ayiLock</v-icon
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -25,11 +25,9 @@
|
|||||||
>
|
>
|
||||||
<template v-slot:event="{ event, eventSummary }">
|
<template v-slot:event="{ event, eventSummary }">
|
||||||
<div>
|
<div>
|
||||||
<!-- eslint-disable vue/no-v-html -->
|
<span :class="event.textColor + '--text'"
|
||||||
<span
|
><gz-vnodes :vnodes="eventSummary()"/></span
|
||||||
:class="event.textColor + '--text'"
|
><v-icon v-if="!event.editable" x-small :color="event.textColor">
|
||||||
v-html="eventSummary()"
|
|
||||||
/><v-icon v-if="!event.editable" x-small :color="event.textColor">
|
|
||||||
$ayiLock</v-icon
|
$ayiLock</v-icon
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -26,11 +26,9 @@
|
|||||||
>
|
>
|
||||||
<template v-slot:event="{ event, eventSummary }">
|
<template v-slot:event="{ event, eventSummary }">
|
||||||
<div>
|
<div>
|
||||||
<!-- eslint-disable vue/no-v-html -->
|
<span :class="event.textColor + '--text'"
|
||||||
<span
|
><gz-vnodes :vnodes="eventSummary()"/></span
|
||||||
:class="event.textColor + '--text'"
|
><v-icon v-if="!event.editable" x-small :color="event.textColor">
|
||||||
v-html="eventSummary()"
|
|
||||||
/><v-icon v-if="!event.editable" x-small :color="event.textColor">
|
|
||||||
$ayiLock</v-icon
|
$ayiLock</v-icon
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
11
ayanova/src/components/vnodes-control.vue
Normal file
11
ayanova/src/components/vnodes-control.vue
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<script>
|
||||||
|
//case 4722: renders the element(s) passed in vnodes
|
||||||
|
//(Vuetify 2.7 calendar eventSummary() returns an element, not an HTML string)
|
||||||
|
export default {
|
||||||
|
functional: true,
|
||||||
|
props: {
|
||||||
|
vnodes: { type: [Object, Array], default: null }
|
||||||
|
},
|
||||||
|
render: (h, ctx) => ctx.props.vnodes
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@@ -59,6 +59,7 @@ import attachmentControl from "./components/attachment-control.vue";
|
|||||||
import chartLineControl from "./components/chart-line-control.vue";
|
import chartLineControl from "./components/chart-line-control.vue";
|
||||||
import chartBarControl from "./components/chart-bar-control.vue";
|
import chartBarControl from "./components/chart-bar-control.vue";
|
||||||
import chartBarHorizontalControl from "./components/chart-bar-horizontal-control.vue";
|
import chartBarHorizontalControl from "./components/chart-bar-horizontal-control.vue";
|
||||||
|
import vnodesControl from "./components/vnodes-control.vue";
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////
|
||||||
// LIBS AND GLOBAL ITEMS
|
// LIBS AND GLOBAL ITEMS
|
||||||
@@ -180,6 +181,7 @@ Vue.component("gz-attachments", attachmentControl);
|
|||||||
Vue.component("gz-chart-line", chartLineControl);
|
Vue.component("gz-chart-line", chartLineControl);
|
||||||
Vue.component("gz-chart-bar", chartBarControl);
|
Vue.component("gz-chart-bar", chartBarControl);
|
||||||
Vue.component("gz-chart-bar-horizontal", chartBarHorizontalControl);
|
Vue.component("gz-chart-bar-horizontal", chartBarHorizontalControl);
|
||||||
|
Vue.component("gz-vnodes", vnodesControl);
|
||||||
//3rd party components
|
//3rd party components
|
||||||
Vue.use(VueCurrencyInput);
|
Vue.use(VueCurrencyInput);
|
||||||
/////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -103,11 +103,9 @@
|
|||||||
<v-icon small :color="event.textColor" class="mt-n3 mr-1">{{
|
<v-icon small :color="event.textColor" class="mt-n3 mr-1">{{
|
||||||
iconForEvent(event.type)
|
iconForEvent(event.type)
|
||||||
}}</v-icon>
|
}}</v-icon>
|
||||||
<!-- eslint-disable vue/no-v-html -->
|
<span :class="event.textColor + '--text'"
|
||||||
<span
|
><gz-vnodes :vnodes="eventSummary()"/></span
|
||||||
:class="event.textColor + '--text'"
|
><v-icon
|
||||||
v-html="eventSummary()"
|
|
||||||
/><v-icon
|
|
||||||
v-if="!event.editable"
|
v-if="!event.editable"
|
||||||
x-small
|
x-small
|
||||||
:color="event.textColor"
|
:color="event.textColor"
|
||||||
|
|||||||
@@ -96,11 +96,9 @@
|
|||||||
<v-icon small :color="event.textColor" class="mr-1">{{
|
<v-icon small :color="event.textColor" class="mr-1">{{
|
||||||
iconForEvent(event.type)
|
iconForEvent(event.type)
|
||||||
}}</v-icon>
|
}}</v-icon>
|
||||||
<!-- eslint-disable vue/no-v-html -->
|
<span :class="event.textColor + '--text'"
|
||||||
<span
|
><gz-vnodes :vnodes="eventSummary()"/></span
|
||||||
:class="event.textColor + '--text'"
|
><v-icon
|
||||||
v-html="eventSummary()"
|
|
||||||
/><v-icon
|
|
||||||
v-if="!event.editable"
|
v-if="!event.editable"
|
||||||
x-small
|
x-small
|
||||||
:color="event.textColor"
|
:color="event.textColor"
|
||||||
|
|||||||
@@ -132,8 +132,9 @@
|
|||||||
|
|
||||||
<template v-slot:event="{ event, eventSummary }">
|
<template v-slot:event="{ event, eventSummary }">
|
||||||
<div class="v-event-draggable">
|
<div class="v-event-draggable">
|
||||||
<!-- eslint-disable vue/no-v-html -->
|
<span :class="event.textColor + '--text'"
|
||||||
<span :class="event.textColor + '--text'" v-html="eventSummary()" />
|
><gz-vnodes :vnodes="eventSummary()"
|
||||||
|
/></span>
|
||||||
<v-icon
|
<v-icon
|
||||||
v-if="!event.editable"
|
v-if="!event.editable"
|
||||||
x-small
|
x-small
|
||||||
|
|||||||
Reference in New Issue
Block a user