Commit dfb0297f authored by Jérémie Passerat's avatar Jérémie Passerat

Debuts modification xml moodle

parent 4fa898dd
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
"version": "0.1.0", "version": "0.1.0",
"dependencies": { "dependencies": {
"@popperjs/core": "^2.9.2", "@popperjs/core": "^2.9.2",
"@vueup/vue-quill": "^1.0.0-alpha.1",
"axios": "^0.21.1", "axios": "^0.21.1",
"bootstrap": "^5.0.1", "bootstrap": "^5.0.1",
"bootstrap-vue": "^2.21.2", "bootstrap-vue": "^2.21.2",
...@@ -24,8 +25,10 @@ ...@@ -24,8 +25,10 @@
"vue-cookie": "^1.1.4", "vue-cookie": "^1.1.4",
"vue-cookies": "^1.7.4", "vue-cookies": "^1.7.4",
"vue-dark-mode-switch": "^1.1.0", "vue-dark-mode-switch": "^1.1.0",
"vue-froala-wysiwyg": "^4.0.4",
"vue-js-modal": "^2.0.0-rc.6", "vue-js-modal": "^2.0.0-rc.6",
"vue-js-popover": "^1.2.1", "vue-js-popover": "^1.2.1",
"vue-quill-editor": "^3.0.6",
"vue-showdown": "^3.1.0", "vue-showdown": "^3.1.0",
"vue-simplemde": "^2.0.0", "vue-simplemde": "^2.0.0",
"vue-star-rating": "^1.7.0", "vue-star-rating": "^1.7.0",
...@@ -328,9 +331,12 @@ ...@@ -328,9 +331,12 @@
} }
}, },
"node_modules/@babel/helper-validator-identifier": { "node_modules/@babel/helper-validator-identifier": {
"version": "7.14.0", "version": "7.14.9",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
"integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
"engines": {
"node": ">=6.9.0"
}
}, },
"node_modules/@babel/helper-validator-option": { "node_modules/@babel/helper-validator-option": {
"version": "7.12.17", "version": "7.12.17",
...@@ -373,9 +379,9 @@ ...@@ -373,9 +379,9 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.14.3", "version": "7.15.6",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.3.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
"integrity": "sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ==", "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==",
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
}, },
...@@ -1382,6 +1388,25 @@ ...@@ -1382,6 +1388,25 @@
"regenerator-runtime": "^0.13.4" "regenerator-runtime": "^0.13.4"
} }
}, },
"node_modules/@babel/runtime-corejs2": {
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.15.4.tgz",
"integrity": "sha512-TmuTI+n5HsMesW6Ah2WjvBwix9fBMXwbMxQV3c0ETLAzlmwN4OeRVbYMYwp9P4LEOlAxwGKdd9e8pMiLMAg/Mg==",
"dependencies": {
"core-js": "^2.6.5",
"regenerator-runtime": "^0.13.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/runtime-corejs2/node_modules/core-js": {
"version": "2.6.12",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
"deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.",
"hasInstallScript": true
},
"node_modules/@babel/template": { "node_modules/@babel/template": {
"version": "7.12.13", "version": "7.12.13",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz",
...@@ -1410,12 +1435,15 @@ ...@@ -1410,12 +1435,15 @@
} }
}, },
"node_modules/@babel/types": { "node_modules/@babel/types": {
"version": "7.14.2", "version": "7.15.6",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
"integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
"dependencies": { "dependencies": {
"@babel/helper-validator-identifier": "^7.14.0", "@babel/helper-validator-identifier": "^7.14.9",
"to-fast-properties": "^2.0.0" "to-fast-properties": "^2.0.0"
},
"engines": {
"node": ">=6.9.0"
} }
}, },
"node_modules/@bcoe/v8-coverage": { "node_modules/@bcoe/v8-coverage": {
...@@ -3457,6 +3485,92 @@ ...@@ -3457,6 +3485,92 @@
"integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==",
"dev": true "dev": true
}, },
"node_modules/@vueup/vue-quill": {
"version": "1.0.0-alpha.1",
"resolved": "https://registry.npmjs.org/@vueup/vue-quill/-/vue-quill-1.0.0-alpha.1.tgz",
"integrity": "sha512-whXhgIzMinLPlfPQ8oI0xsb+8bXj1992n5rTxMODPIM9I+P46+gqUwADlA/h5IpbApK85oAiy705i6sHXIhyiA==",
"funding": [
{
"type": "individual",
"url": "https://paypal.me/bledex"
}
],
"dependencies": {
"quill": "^1.3.7",
"vue": "^3.0.7"
}
},
"node_modules/@vueup/vue-quill/node_modules/@vue/compiler-core": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.11.tgz",
"integrity": "sha512-bcbsLx5XyQg8WDDEGwmpX0BfEfv82wIs9fWFelpyVhNRGMaABvUTalYINyfhVT+jOqNaD4JBhJiVKd/8TmsHWg==",
"dependencies": {
"@babel/parser": "^7.15.0",
"@babel/types": "^7.15.0",
"@vue/shared": "3.2.11",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
}
},
"node_modules/@vueup/vue-quill/node_modules/@vue/compiler-dom": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.11.tgz",
"integrity": "sha512-DNvhUHI/1Hn0/+ZYDYGAuDGasUm+XHKC3FE4GqkNCTO/fcLaJMRg/7eT1m1lkc7jPffUwwfh1rZru5mwzOjrNw==",
"dependencies": {
"@vue/compiler-core": "3.2.11",
"@vue/shared": "3.2.11"
}
},
"node_modules/@vueup/vue-quill/node_modules/@vue/reactivity": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.11.tgz",
"integrity": "sha512-hEQstxPQbgGZq5qApzrvbDmRdK1KP96O/j4XrwT8fVkT1ytkFs4fH2xNEh9QKwXfybbQkLs77W7OfXCv5o6qbA==",
"dependencies": {
"@vue/shared": "3.2.11"
}
},
"node_modules/@vueup/vue-quill/node_modules/@vue/runtime-core": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.11.tgz",
"integrity": "sha512-horlxjWwSvModC87WdsWswzzHE5IexmKkQA65S5vFgP5hLUBW+HRyScDeuB/RRcFmqnf+ozacNCfap0kqcpODw==",
"dependencies": {
"@vue/reactivity": "3.2.11",
"@vue/shared": "3.2.11"
}
},
"node_modules/@vueup/vue-quill/node_modules/@vue/runtime-dom": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.11.tgz",
"integrity": "sha512-cOK1g0INdiCbds2xrrJKrrN+pDHuLz6esUs/crdEiupDuX7IeiMbdqrAQCkYHp5P1KLWcbGlkmwfVD7HQGii0Q==",
"dependencies": {
"@vue/runtime-core": "3.2.11",
"@vue/shared": "3.2.11",
"csstype": "^2.6.8"
}
},
"node_modules/@vueup/vue-quill/node_modules/@vue/shared": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.11.tgz",
"integrity": "sha512-ovfXAsSsCvV9JVceWjkqC/7OF5HbgLOtCWjCIosmPGG8lxbPuavhIxRH1dTx4Dg9xLgRTNLvI3pVxG4ItQZekg=="
},
"node_modules/@vueup/vue-quill/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/@vueup/vue-quill/node_modules/vue": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.11.tgz",
"integrity": "sha512-JkI3/eIgfk4E0f/p319TD3EZgOwBQfftgnkRsXlT7OrRyyiyoyUXn6embPGZXSBxD3LoZ9SWhJoxLhFh5AleeA==",
"dependencies": {
"@vue/compiler-dom": "3.2.11",
"@vue/runtime-dom": "3.2.11",
"@vue/shared": "3.2.11"
}
},
"node_modules/@webassemblyjs/ast": { "node_modules/@webassemblyjs/ast": {
"version": "1.9.0", "version": "1.9.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
...@@ -4509,7 +4623,6 @@ ...@@ -4509,7 +4623,6 @@
"version": "6.26.0", "version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"dependencies": { "dependencies": {
"core-js": "^2.4.0", "core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0" "regenerator-runtime": "^0.11.0"
...@@ -4520,14 +4633,12 @@ ...@@ -4520,14 +4633,12 @@
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
"deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", "deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.",
"dev": true,
"hasInstallScript": true "hasInstallScript": true
}, },
"node_modules/babel-runtime/node_modules/regenerator-runtime": { "node_modules/babel-runtime/node_modules/regenerator-runtime": {
"version": "0.11.1", "version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
"dev": true
}, },
"node_modules/babel-template": { "node_modules/babel-template": {
"version": "6.26.0", "version": "6.26.0",
...@@ -5196,7 +5307,6 @@ ...@@ -5196,7 +5307,6 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"dev": true,
"dependencies": { "dependencies": {
"function-bind": "^1.1.1", "function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2" "get-intrinsic": "^1.0.2"
...@@ -7142,7 +7252,6 @@ ...@@ -7142,7 +7252,6 @@
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
"integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
"dev": true,
"dependencies": { "dependencies": {
"is-arguments": "^1.0.4", "is-arguments": "^1.0.4",
"is-date-object": "^1.0.1", "is-date-object": "^1.0.1",
...@@ -7344,7 +7453,6 @@ ...@@ -7344,7 +7453,6 @@
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
"dev": true,
"dependencies": { "dependencies": {
"object-keys": "^1.0.12" "object-keys": "^1.0.12"
}, },
...@@ -8606,8 +8714,7 @@ ...@@ -8606,8 +8714,7 @@
"node_modules/extend": { "node_modules/extend": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
"dev": true
}, },
"node_modules/extend-shallow": { "node_modules/extend-shallow": {
"version": "3.0.2", "version": "3.0.2",
...@@ -8757,6 +8864,11 @@ ...@@ -8757,6 +8864,11 @@
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"dev": true "dev": true
}, },
"node_modules/fast-diff": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz",
"integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig=="
},
"node_modules/fast-glob": { "node_modules/fast-glob": {
"version": "2.2.7", "version": "2.2.7",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
...@@ -9153,6 +9265,11 @@ ...@@ -9153,6 +9265,11 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/froala-editor": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/froala-editor/-/froala-editor-4.0.4.tgz",
"integrity": "sha512-0g+ZRh4bDNC3ORevmXoui/+/eMqy2oBvbYn5KAwEyKH/JEGWsvg7MYrLdEjKhdFq8h93nEbmeMrcqsB2Y6Q9kw=="
},
"node_modules/from2": { "node_modules/from2": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
...@@ -9212,8 +9329,7 @@ ...@@ -9212,8 +9329,7 @@
"node_modules/function-bind": { "node_modules/function-bind": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
"dev": true
}, },
"node_modules/functional-red-black-tree": { "node_modules/functional-red-black-tree": {
"version": "1.0.1", "version": "1.0.1",
...@@ -9242,7 +9358,6 @@ ...@@ -9242,7 +9358,6 @@
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
"dev": true,
"dependencies": { "dependencies": {
"function-bind": "^1.1.1", "function-bind": "^1.1.1",
"has": "^1.0.3", "has": "^1.0.3",
...@@ -9425,7 +9540,6 @@ ...@@ -9425,7 +9540,6 @@
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"dev": true,
"dependencies": { "dependencies": {
"function-bind": "^1.1.1" "function-bind": "^1.1.1"
}, },
...@@ -9476,7 +9590,6 @@ ...@@ -9476,7 +9590,6 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
"dev": true,
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
}, },
...@@ -10459,7 +10572,6 @@ ...@@ -10459,7 +10572,6 @@
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
"integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
"dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.0" "call-bind": "^1.0.0"
}, },
...@@ -10597,7 +10709,6 @@ ...@@ -10597,7 +10709,6 @@
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz",
"integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==",
"dev": true,
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
}, },
...@@ -10824,7 +10935,6 @@ ...@@ -10824,7 +10935,6 @@
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz",
"integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==",
"dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"has-symbols": "^1.0.2" "has-symbols": "^1.0.2"
...@@ -14793,7 +14903,6 @@ ...@@ -14793,7 +14903,6 @@
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true,
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
...@@ -14858,7 +14967,6 @@ ...@@ -14858,7 +14967,6 @@
"version": "1.1.5", "version": "1.1.5",
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
"integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
"dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"define-properties": "^1.1.3" "define-properties": "^1.1.3"
...@@ -14874,7 +14982,6 @@ ...@@ -14874,7 +14982,6 @@
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true,
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
} }
...@@ -15208,6 +15315,11 @@ ...@@ -15208,6 +15315,11 @@
"no-case": "^2.2.0" "no-case": "^2.2.0"
} }
}, },
"node_modules/parchment": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz",
"integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg=="
},
"node_modules/parent-module": { "node_modules/parent-module": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
...@@ -16489,6 +16601,45 @@ ...@@ -16489,6 +16601,45 @@
"integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
"dev": true "dev": true
}, },
"node_modules/quill": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz",
"integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==",
"dependencies": {
"clone": "^2.1.1",
"deep-equal": "^1.0.1",
"eventemitter3": "^2.0.3",
"extend": "^3.0.2",
"parchment": "^1.1.4",
"quill-delta": "^3.6.2"
}
},
"node_modules/quill-delta": {
"version": "3.6.3",
"resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz",
"integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==",
"dependencies": {
"deep-equal": "^1.0.1",
"extend": "^3.0.2",
"fast-diff": "1.1.2"
},
"engines": {
"node": ">=0.10"
}
},
"node_modules/quill/node_modules/clone": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
"integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
"engines": {
"node": ">=0.8"
}
},
"node_modules/quill/node_modules/eventemitter3": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
"integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo="
},
"node_modules/randombytes": { "node_modules/randombytes": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
...@@ -16610,8 +16761,7 @@ ...@@ -16610,8 +16761,7 @@
"node_modules/regenerator-runtime": { "node_modules/regenerator-runtime": {
"version": "0.13.7", "version": "0.13.7",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
"integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
"dev": true
}, },
"node_modules/regenerator-transform": { "node_modules/regenerator-transform": {
"version": "0.14.5", "version": "0.14.5",
...@@ -16639,7 +16789,6 @@ ...@@ -16639,7 +16789,6 @@
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
"integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
"dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"define-properties": "^1.1.3" "define-properties": "^1.1.3"
...@@ -19391,6 +19540,25 @@ ...@@ -19391,6 +19540,25 @@
"node": ">=8.0.0" "node": ">=8.0.0"
} }
}, },
"node_modules/vue-froala-wysiwyg": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/vue-froala-wysiwyg/-/vue-froala-wysiwyg-4.0.4.tgz",
"integrity": "sha512-ULl/xZNL0NM2prlOfDc103Bl21JVtcENf5j+WjxVzJZaJuLmsESpcLtraeQrLKhyR9g1Ml4prp4fETfeFsXddg==",
"dependencies": {
"@babel/runtime-corejs2": "^7.7.7",
"babel-runtime": "^6.26.0",
"froala-editor": "^4.0.4",
"vue": "2.6.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/vue-froala-wysiwyg/node_modules/vue": {
"version": "2.6.6",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.6.tgz",
"integrity": "sha512-Y2DdOZD8sxApS+iUlwv1v8U1qN41kq6Kw45lM6nVZKhygeWA49q7VCCXkjXqeDBXgurrKWkYQ9cJeEJwAq0b9Q=="
},
"node_modules/vue-functional-data-merge": { "node_modules/vue-functional-data-merge": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz", "resolved": "https://registry.npmjs.org/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz",
...@@ -19580,6 +19748,19 @@ ...@@ -19580,6 +19748,19 @@
"integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
"dev": true "dev": true
}, },
"node_modules/vue-quill-editor": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz",
"integrity": "sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==",
"dependencies": {
"object-assign": "^4.1.1",
"quill": "^1.3.4"
},
"engines": {
"node": ">= 4.0.0",
"npm": ">= 3.0.0"
}
},
"node_modules/vue-showdown": { "node_modules/vue-showdown": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/vue-showdown/-/vue-showdown-3.1.0.tgz", "resolved": "https://registry.npmjs.org/vue-showdown/-/vue-showdown-3.1.0.tgz",
...@@ -21125,9 +21306,9 @@ ...@@ -21125,9 +21306,9 @@
} }
}, },
"@babel/helper-validator-identifier": { "@babel/helper-validator-identifier": {
"version": "7.14.0", "version": "7.14.9",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
"integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g=="
}, },
"@babel/helper-validator-option": { "@babel/helper-validator-option": {
"version": "7.12.17", "version": "7.12.17",
...@@ -21170,9 +21351,9 @@ ...@@ -21170,9 +21351,9 @@
} }
}, },
"@babel/parser": { "@babel/parser": {
"version": "7.14.3", "version": "7.15.6",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.3.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
"integrity": "sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ==" "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q=="
}, },
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
"version": "7.13.12", "version": "7.13.12",
...@@ -21954,6 +22135,22 @@ ...@@ -21954,6 +22135,22 @@
"regenerator-runtime": "^0.13.4" "regenerator-runtime": "^0.13.4"
} }
}, },
"@babel/runtime-corejs2": {
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.15.4.tgz",
"integrity": "sha512-TmuTI+n5HsMesW6Ah2WjvBwix9fBMXwbMxQV3c0ETLAzlmwN4OeRVbYMYwp9P4LEOlAxwGKdd9e8pMiLMAg/Mg==",
"requires": {
"core-js": "^2.6.5",
"regenerator-runtime": "^0.13.4"
},
"dependencies": {
"core-js": {
"version": "2.6.12",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
}
}
},
"@babel/template": { "@babel/template": {
"version": "7.12.13", "version": "7.12.13",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz",
...@@ -21982,11 +22179,11 @@ ...@@ -21982,11 +22179,11 @@
} }
}, },
"@babel/types": { "@babel/types": {
"version": "7.14.2", "version": "7.15.6",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
"integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
"requires": { "requires": {
"@babel/helper-validator-identifier": "^7.14.0", "@babel/helper-validator-identifier": "^7.14.9",
"to-fast-properties": "^2.0.0" "to-fast-properties": "^2.0.0"
} }
}, },
...@@ -23638,6 +23835,85 @@ ...@@ -23638,6 +23835,85 @@
"integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==",
"dev": true "dev": true
}, },
"@vueup/vue-quill": {
"version": "1.0.0-alpha.1",
"resolved": "https://registry.npmjs.org/@vueup/vue-quill/-/vue-quill-1.0.0-alpha.1.tgz",
"integrity": "sha512-whXhgIzMinLPlfPQ8oI0xsb+8bXj1992n5rTxMODPIM9I+P46+gqUwADlA/h5IpbApK85oAiy705i6sHXIhyiA==",
"requires": {
"quill": "^1.3.7",
"vue": "^3.0.7"
},
"dependencies": {
"@vue/compiler-core": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.11.tgz",
"integrity": "sha512-bcbsLx5XyQg8WDDEGwmpX0BfEfv82wIs9fWFelpyVhNRGMaABvUTalYINyfhVT+jOqNaD4JBhJiVKd/8TmsHWg==",
"requires": {
"@babel/parser": "^7.15.0",
"@babel/types": "^7.15.0",
"@vue/shared": "3.2.11",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
}
},
"@vue/compiler-dom": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.11.tgz",
"integrity": "sha512-DNvhUHI/1Hn0/+ZYDYGAuDGasUm+XHKC3FE4GqkNCTO/fcLaJMRg/7eT1m1lkc7jPffUwwfh1rZru5mwzOjrNw==",
"requires": {
"@vue/compiler-core": "3.2.11",
"@vue/shared": "3.2.11"
}
},
"@vue/reactivity": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.11.tgz",
"integrity": "sha512-hEQstxPQbgGZq5qApzrvbDmRdK1KP96O/j4XrwT8fVkT1ytkFs4fH2xNEh9QKwXfybbQkLs77W7OfXCv5o6qbA==",
"requires": {
"@vue/shared": "3.2.11"
}
},
"@vue/runtime-core": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.11.tgz",
"integrity": "sha512-horlxjWwSvModC87WdsWswzzHE5IexmKkQA65S5vFgP5hLUBW+HRyScDeuB/RRcFmqnf+ozacNCfap0kqcpODw==",
"requires": {
"@vue/reactivity": "3.2.11",
"@vue/shared": "3.2.11"
}
},
"@vue/runtime-dom": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.11.tgz",
"integrity": "sha512-cOK1g0INdiCbds2xrrJKrrN+pDHuLz6esUs/crdEiupDuX7IeiMbdqrAQCkYHp5P1KLWcbGlkmwfVD7HQGii0Q==",
"requires": {
"@vue/runtime-core": "3.2.11",
"@vue/shared": "3.2.11",
"csstype": "^2.6.8"
}
},
"@vue/shared": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.11.tgz",
"integrity": "sha512-ovfXAsSsCvV9JVceWjkqC/7OF5HbgLOtCWjCIosmPGG8lxbPuavhIxRH1dTx4Dg9xLgRTNLvI3pVxG4ItQZekg=="
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"vue": {
"version": "3.2.11",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.11.tgz",
"integrity": "sha512-JkI3/eIgfk4E0f/p319TD3EZgOwBQfftgnkRsXlT7OrRyyiyoyUXn6embPGZXSBxD3LoZ9SWhJoxLhFh5AleeA==",
"requires": {
"@vue/compiler-dom": "3.2.11",
"@vue/runtime-dom": "3.2.11",
"@vue/shared": "3.2.11"
}
}
}
},
"@webassemblyjs/ast": { "@webassemblyjs/ast": {
"version": "1.9.0", "version": "1.9.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
...@@ -24496,7 +24772,6 @@ ...@@ -24496,7 +24772,6 @@
"version": "6.26.0", "version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": { "requires": {
"core-js": "^2.4.0", "core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0" "regenerator-runtime": "^0.11.0"
...@@ -24505,14 +24780,12 @@ ...@@ -24505,14 +24780,12 @@
"core-js": { "core-js": {
"version": "2.6.12", "version": "2.6.12",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
"dev": true
}, },
"regenerator-runtime": { "regenerator-runtime": {
"version": "0.11.1", "version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
"dev": true
} }
} }
}, },
...@@ -25087,7 +25360,6 @@ ...@@ -25087,7 +25360,6 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"dev": true,
"requires": { "requires": {
"function-bind": "^1.1.1", "function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2" "get-intrinsic": "^1.0.2"
...@@ -26710,7 +26982,6 @@ ...@@ -26710,7 +26982,6 @@
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
"integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
"dev": true,
"requires": { "requires": {
"is-arguments": "^1.0.4", "is-arguments": "^1.0.4",
"is-date-object": "^1.0.1", "is-date-object": "^1.0.1",
...@@ -26860,7 +27131,6 @@ ...@@ -26860,7 +27131,6 @@
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
"dev": true,
"requires": { "requires": {
"object-keys": "^1.0.12" "object-keys": "^1.0.12"
} }
...@@ -27894,8 +28164,7 @@ ...@@ -27894,8 +28164,7 @@
"extend": { "extend": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
"dev": true
}, },
"extend-shallow": { "extend-shallow": {
"version": "3.0.2", "version": "3.0.2",
...@@ -28015,6 +28284,11 @@ ...@@ -28015,6 +28284,11 @@
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"dev": true "dev": true
}, },
"fast-diff": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz",
"integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig=="
},
"fast-glob": { "fast-glob": {
"version": "2.2.7", "version": "2.2.7",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
...@@ -28328,6 +28602,11 @@ ...@@ -28328,6 +28602,11 @@
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
"dev": true "dev": true
}, },
"froala-editor": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/froala-editor/-/froala-editor-4.0.4.tgz",
"integrity": "sha512-0g+ZRh4bDNC3ORevmXoui/+/eMqy2oBvbYn5KAwEyKH/JEGWsvg7MYrLdEjKhdFq8h93nEbmeMrcqsB2Y6Q9kw=="
},
"from2": { "from2": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
...@@ -28377,8 +28656,7 @@ ...@@ -28377,8 +28656,7 @@
"function-bind": { "function-bind": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
"dev": true
}, },
"functional-red-black-tree": { "functional-red-black-tree": {
"version": "1.0.1", "version": "1.0.1",
...@@ -28401,7 +28679,6 @@ ...@@ -28401,7 +28679,6 @@
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
"dev": true,
"requires": { "requires": {
"function-bind": "^1.1.1", "function-bind": "^1.1.1",
"has": "^1.0.3", "has": "^1.0.3",
...@@ -28544,7 +28821,6 @@ ...@@ -28544,7 +28821,6 @@
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"dev": true,
"requires": { "requires": {
"function-bind": "^1.1.1" "function-bind": "^1.1.1"
} }
...@@ -28581,8 +28857,7 @@ ...@@ -28581,8 +28857,7 @@
"has-symbols": { "has-symbols": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
"dev": true
}, },
"has-value": { "has-value": {
"version": "1.0.0", "version": "1.0.0",
...@@ -29359,7 +29634,6 @@ ...@@ -29359,7 +29634,6 @@
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
"integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
"dev": true,
"requires": { "requires": {
"call-bind": "^1.0.0" "call-bind": "^1.0.0"
} }
...@@ -29462,8 +29736,7 @@ ...@@ -29462,8 +29736,7 @@
"is-date-object": { "is-date-object": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz",
"integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A=="
"dev": true
}, },
"is-descriptor": { "is-descriptor": {
"version": "0.1.6", "version": "0.1.6",
...@@ -29616,7 +29889,6 @@ ...@@ -29616,7 +29889,6 @@
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz",
"integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==",
"dev": true,
"requires": { "requires": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"has-symbols": "^1.0.2" "has-symbols": "^1.0.2"
...@@ -32716,8 +32988,7 @@ ...@@ -32716,8 +32988,7 @@
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
"dev": true
}, },
"object-copy": { "object-copy": {
"version": "0.1.0", "version": "0.1.0",
...@@ -32766,7 +33037,6 @@ ...@@ -32766,7 +33037,6 @@
"version": "1.1.5", "version": "1.1.5",
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
"integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
"dev": true,
"requires": { "requires": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"define-properties": "^1.1.3" "define-properties": "^1.1.3"
...@@ -32775,8 +33045,7 @@ ...@@ -32775,8 +33045,7 @@
"object-keys": { "object-keys": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
"dev": true
}, },
"object-visit": { "object-visit": {
"version": "1.0.1", "version": "1.0.1",
...@@ -33028,6 +33297,11 @@ ...@@ -33028,6 +33297,11 @@
"no-case": "^2.2.0" "no-case": "^2.2.0"
} }
}, },
"parchment": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz",
"integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg=="
},
"parent-module": { "parent-module": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
...@@ -34110,6 +34384,41 @@ ...@@ -34110,6 +34384,41 @@
"integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
"dev": true "dev": true
}, },
"quill": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz",
"integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==",
"requires": {
"clone": "^2.1.1",
"deep-equal": "^1.0.1",
"eventemitter3": "^2.0.3",
"extend": "^3.0.2",
"parchment": "^1.1.4",
"quill-delta": "^3.6.2"
},
"dependencies": {
"clone": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
"integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
},
"eventemitter3": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
"integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo="
}
}
},
"quill-delta": {
"version": "3.6.3",
"resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz",
"integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==",
"requires": {
"deep-equal": "^1.0.1",
"extend": "^3.0.2",
"fast-diff": "1.1.2"
}
},
"randombytes": { "randombytes": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
...@@ -34216,8 +34525,7 @@ ...@@ -34216,8 +34525,7 @@
"regenerator-runtime": { "regenerator-runtime": {
"version": "0.13.7", "version": "0.13.7",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
"integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
"dev": true
}, },
"regenerator-transform": { "regenerator-transform": {
"version": "0.14.5", "version": "0.14.5",
...@@ -34242,7 +34550,6 @@ ...@@ -34242,7 +34550,6 @@
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
"integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
"dev": true,
"requires": { "requires": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"define-properties": "^1.1.3" "define-properties": "^1.1.3"
...@@ -36521,6 +36828,24 @@ ...@@ -36521,6 +36828,24 @@
} }
} }
}, },
"vue-froala-wysiwyg": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/vue-froala-wysiwyg/-/vue-froala-wysiwyg-4.0.4.tgz",
"integrity": "sha512-ULl/xZNL0NM2prlOfDc103Bl21JVtcENf5j+WjxVzJZaJuLmsESpcLtraeQrLKhyR9g1Ml4prp4fETfeFsXddg==",
"requires": {
"@babel/runtime-corejs2": "^7.7.7",
"babel-runtime": "^6.26.0",
"froala-editor": "^4.0.4",
"vue": "2.6.6"
},
"dependencies": {
"vue": {
"version": "2.6.6",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.6.tgz",
"integrity": "sha512-Y2DdOZD8sxApS+iUlwv1v8U1qN41kq6Kw45lM6nVZKhygeWA49q7VCCXkjXqeDBXgurrKWkYQ9cJeEJwAq0b9Q=="
}
}
},
"vue-functional-data-merge": { "vue-functional-data-merge": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz", "resolved": "https://registry.npmjs.org/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz",
...@@ -36667,6 +36992,15 @@ ...@@ -36667,6 +36992,15 @@
} }
} }
}, },
"vue-quill-editor": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz",
"integrity": "sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==",
"requires": {
"object-assign": "^4.1.1",
"quill": "^1.3.4"
}
},
"vue-showdown": { "vue-showdown": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/vue-showdown/-/vue-showdown-3.1.0.tgz", "resolved": "https://registry.npmjs.org/vue-showdown/-/vue-showdown-3.1.0.tgz",
<template>
<div>
<Question_Vrai_Faux v-show="questionParsee.type_question === 'truefalse'" v-bind:questionParsee="questionParsee"></Question_Vrai_Faux>
<Question_Reponse_Courte v-show="questionParsee.type_question === 'shortanswer'" v-bind:questionParsee="questionParsee"></Question_Reponse_Courte>
<Question_Choix_Multiple v-show="questionParsee.type_question === 'multichoice'" v-bind:questionParsee="questionParsee"></Question_Choix_Multiple>
<Question_Numerique v-show="questionParsee.type_question === 'numerical'" v-bind:questionParsee="questionParsee"></Question_Numerique>
<Question_Calculee_Simple v-show="questionParsee.type_question === 'calculatedsimple'" v-bind:questionParsee="questionParsee" ></Question_Calculee_Simple>
</div>
</template>
<script>
import Service from '../src/service/Service'
import Question_Vrai_Faux from "./components/moodle/Question_Vrai_Faux";
import Question_Reponse_Courte from "./components/moodle/Question_Reponse_Courte";
import Question_Choix_Multiple from "./components/moodle/Question_Choix_Multiple";
import Question_Numerique from "./components/moodle/Question_Numerique";
import Question_Calculee_Simple from "./components/moodle/Question_Calculee_Simple";
export default {
//calculatedsimple
name: "Previsualiser_Moodle",
components: {
Question_Numerique,
Question_Choix_Multiple,
Question_Vrai_Faux,
Question_Reponse_Courte,
Question_Calculee_Simple
},
data: function () {
return {
questionParsee: ''
}
},
props: {
// texte du contenu survolé
id: {}
},
mounted() {
/**
* @vuese
* A chaque fois que prévisualiser_moodle est appelé on fait appel a parserTexte pour permettre d'appeler le bon composant d'affichage
*/
let that = this
Service.parserTexte(JSON.stringify(this.id)).then(function (response) {
that.questionParsee = response.data
})
},
}
</script>
<style scoped>
</style>
\ No newline at end of file
...@@ -87,9 +87,12 @@ export default { ...@@ -87,9 +87,12 @@ export default {
* Permet de convertir le markdown d'un contenu en du html lisible * Permet de convertir le markdown d'un contenu en du html lisible
*/ */
formatterMarkdown: function () { formatterMarkdown: function () {
if (this.sourceContenu !== 'moodle') {
let showdown = require('showdown'), let showdown = require('showdown'),
converter = new showdown.Converter() converter = new showdown.Converter()
return converter.makeHtml(this.contenu) return converter.makeHtml(this.contenu)
}
// return this.contenu
}, },
/** /**
* @vuese * @vuese
...@@ -190,6 +193,9 @@ export default { ...@@ -190,6 +193,9 @@ export default {
this.populariteContenu = this.contenuClique.popularite this.populariteContenu = this.contenuClique.popularite
this.tagsContenus = this.contenuClique.tags_fixes === undefined ? [] : this.contenuClique.tags_fixes.join(", ") this.tagsContenus = this.contenuClique.tags_fixes === undefined ? [] : this.contenuClique.tags_fixes.join(", ")
this.isContenuRefuse = false this.isContenuRefuse = false
this.typeContenu = this.contenuClique.type
this.sourceContenu = this.contenuClique.source
this.noteContenu = this.contenuClique.versionEnCours === undefined ? '' : this.calculerNoteDetailContenu() this.noteContenu = this.contenuClique.versionEnCours === undefined ? '' : this.calculerNoteDetailContenu()
......
...@@ -19,11 +19,13 @@ ...@@ -19,11 +19,13 @@
<div id="modifTitre"> <div id="modifTitre">
<div id="changerTitre"> <div id="changerTitre">
<label>Titre du contenu : </label><br> <label v-if="sourceContenu !== 'moodle'">Titre du contenu : </label>
<label v-else>Nom de la question : </label>
<br>
<select v-show="contenuCliqueProvenance === 'perso' && versionMax > 1" v-model="versionChoisie" v-on:change="changerVersion" > <select v-show="contenuCliqueProvenance === 'perso' && versionMax > 1" v-model="versionChoisie" v-on:change="changerVersion" >
<option v-for="i in versionMax" v-bind:key="i"> {{i}}</option> <option v-for="i in versionMax" v-bind:key="i"> {{i}}</option>
</select> </select>
<input type="text" id="titreDuContenu" placeholder="titre du contenu" v-model="titreContenu"> <input type="text" id="titreDuContenu" placeholder="titre du contenu" style="width: 350px; outline: none; border: none" v-model="titreContenu">
</div> </div>
<div id="voirNote"> <div id="voirNote">
<button v-show="contenuCliqueProvenance === 'tiers' && !notePresente" id="noterContenu">{{ messageNoter }}</button> <button v-show="contenuCliqueProvenance === 'tiers' && !notePresente" id="noterContenu">{{ messageNoter }}</button>
...@@ -53,13 +55,16 @@ ...@@ -53,13 +55,16 @@
</div> </div>
</div> </div>
<br> <br>
<div class="mavonEditor" v-show="!isModeTag"> <div class="mavonEditor" v-show="!isModeTag && sourceContenu !== 'moodle'">
<mavon-editor :language="'fr'" style="position: static; height: 79vh; margin-top: -0.5%" v-model="texteDuContenu"/> <mavon-editor :language="'fr'" style="position: static; height: 79vh; margin-top: -0.5%" v-model="texteDuContenu"/>
</div> </div>
<TagsLibres v-show="isModeTag" v-bind:contenu="this.contenuClique" v-bind:auteur="auteur" @actionTagLibre="actionTagLibre" <TagsLibres v-show="isModeTag" v-bind:contenu="this.contenuClique" v-bind:auteur="auteur" @actionTagLibre="actionTagLibre"
style="position: static; height: 79vh; margin-top: -0.5%" v-bind:darktheme="darktheme" @chargerTagsLibres="chargerTagsLibres" v-bind:tagLibreAssocie="tagLibreAssocie"></TagsLibres> style="position: static; height: 79vh; margin-top: -0.5%" v-bind:darktheme="darktheme" @chargerTagsLibres="chargerTagsLibres" v-bind:tagLibreAssocie="tagLibreAssocie"></TagsLibres>
<div class="markdown">
<Edit_Contenus @actionMoodle="actionMoodle" v-show="!isModeTag && sourceContenu === 'moodle'" v-bind:darktheme="darktheme" v-bind:idContenu="idContenu"></Edit_Contenus>
<div class="markdown" v-show="sourceContenu !== 'moodle'">
<br> <br>
<button id="validerModif" v-on:click="action('valider')">modifier </button> <button id="validerModif" v-on:click="action('valider')">modifier </button>
<button id="retourArriere" v-on:click="action('arriere')"> revenir en arrière</button> <button id="retourArriere" v-on:click="action('arriere')"> revenir en arrière</button>
...@@ -74,11 +79,13 @@ ...@@ -74,11 +79,13 @@
import Service from "../service/Service"; import Service from "../service/Service";
import StarRating from 'vue-star-rating' import StarRating from 'vue-star-rating'
import TagsLibres from "../TagsLibres"; import TagsLibres from "../TagsLibres";
import Edit_Contenus from "./moodle/Edit_Contenus";
export default { export default {
name: "Modifier_Contenu", name: "Modifier_Contenu",
components: { components: {
Edit_Contenus,
TagsLibres, TagsLibres,
StarRating StarRating
}, },
...@@ -113,7 +120,8 @@ export default { ...@@ -113,7 +120,8 @@ export default {
isModeTag: false, isModeTag: false,
titreModifierTags: "modifier Tags", titreModifierTags: "modifier Tags",
typeContenu: '', typeContenu: '',
sourceContenu: '' sourceContenu: '',
idContenu: ''
} }
}, },
methods: { methods: {
...@@ -123,11 +131,17 @@ export default { ...@@ -123,11 +131,17 @@ export default {
*/ */
action: function (actionChoisie) { action: function (actionChoisie) {
this.isModeTag = false this.isModeTag = false
this.questionParsee = ''
if (actionChoisie === 'valider'){ if (actionChoisie === 'valider'){
if (this.sourceContenu === 'moodle'){
alert("Je modifie un moodle")
} else {
// evenement de modification du texte d'un contenu // evenement de modification du texte d'un contenu
// @arg l'action choisie, ici 'valider' // @arg l'action choisie, ici 'valider'
// @arg le texte modifié // @arg le texte modifié
this.$emit("choixModif", {action: actionChoisie, nouveauTexte: this.texteDuContenu, titre: this.titreContenu}) this.$emit("choixModif", {action: actionChoisie, nouveauTexte: this.texteDuContenu, titre: this.titreContenu})
}
} else { } else {
// evenement de retour en arrière vers Consulter_COntenu // evenement de retour en arrière vers Consulter_COntenu
// @arg l'action choisie, ici 'arriere' // @arg l'action choisie, ici 'arriere'
...@@ -215,6 +229,12 @@ export default { ...@@ -215,6 +229,12 @@ export default {
*/ */
chargerTagsLibres: function () { chargerTagsLibres: function () {
this.$emit("chargerTagsLibres") this.$emit("chargerTagsLibres")
},
actionMoodle: function (event) {
if (event.action === 'arriere')
this.$emit("choixModif", {action: event.action})
else
this.$emit("choixModif", {action: event.action, questionParsee: event.questionParsee, titre: this.titreContenu})
} }
...@@ -256,7 +276,7 @@ export default { ...@@ -256,7 +276,7 @@ export default {
this.typeContenu = this.contenuClique.type this.typeContenu = this.contenuClique.type
this.sourceContenu = this.contenuClique.source this.sourceContenu = this.contenuClique.source
this.populariteContenu = this.contenuClique.popularite this.populariteContenu = this.contenuClique.popularite
this.idContenu = this.contenuClique._id
this.isContenuRefuse = Object.prototype.hasOwnProperty.call(this.contenuClique, 'refuse'); this.isContenuRefuse = Object.prototype.hasOwnProperty.call(this.contenuClique, 'refuse');
...@@ -271,7 +291,7 @@ export default { ...@@ -271,7 +291,7 @@ export default {
let that = this let that = this
Service.recupererNoteContenu(JSON.stringify(this.contenuClique._id), this.auteur, this.versionChoisie).then(function (result) { Service.recupererNoteContenu(JSON.stringify(this.contenuClique._id), this.auteur, this.versionChoisie).then(function (result) {
let nombre = result.data let nombre = result.data
if (nombre !== '-1'){ if (nombre !== '-'){
nombre = JSON.parse(nombre) nombre = JSON.parse(nombre)
that.rating = nombre.note that.rating = nombre.note
that.notePresente = true that.notePresente = true
...@@ -306,16 +326,13 @@ button { ...@@ -306,16 +326,13 @@ button {
} }
#titreDuContenu {
margin-left: 5px;
}
#validerModif { #validerModif {
margin-right: 5px; margin-right: 5px;
margin-bottom: 5px; margin-bottom: 5px;
} }
#titreContenu { #titreContenu {
margin-left: 5px;
text-align: center; text-align: center;
align-content: center; align-content: center;
display: flex; display: flex;
......
...@@ -70,9 +70,10 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw ...@@ -70,9 +70,10 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw
}"> }">
<td :id="JSON.stringify(item._id)" v-on:click="chargerContenu(item, item.provenance)">{{item.titre}}<div style="display:none;"> <td :id="JSON.stringify(item._id)" v-on:click="chargerContenu(item, item.provenance)">{{item.titre}}<div style="display:none;">
{{ item._id }}</div></td> {{ item._id }}</div></td>
<b-popover style="height: 700px; width: 700px" class="non" v-on:show="rechercherTexte(item._id, item.provenance, item.source)" :target="JSON.stringify(item._id)" triggers="hover" placement="bottom"> <b-popover style="height: 700px; width: 700px" class="non" v-on:show="rechercherTexte(item._id, item.provenance, item.source)" :target="JSON.stringify(item._id)"
triggers="hover" placement="bottom">
<p id="beautiful" v-html="texteDuContenu" v-if="!isMoodle"></p> <p id="beautiful" v-html="texteDuContenu" v-if="!isMoodle"></p>
<Test v-else></Test> <Previsualiser_Moodle v-bind:id="item._id" v-else></Previsualiser_Moodle>
</b-popover> </b-popover>
<!-- auteur --> <!-- auteur -->
<td>{{item.auteur}}</td> <td>{{item.auteur}}</td>
...@@ -104,7 +105,7 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw ...@@ -104,7 +105,7 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw
<td :id="'a' + JSON.stringify(item._id)" v-on:click="chargerContenu(item, 'banque')">{{ item.titre }}</td> <td :id="'a' + JSON.stringify(item._id)" v-on:click="chargerContenu(item, 'banque')">{{ item.titre }}</td>
<b-popover :target="'a' + JSON.stringify(item._id)" v-on:show="rechercherTexte(item._id, 'banque', item.source)" triggers="hover" placement="bottom"> <b-popover :target="'a' + JSON.stringify(item._id)" v-on:show="rechercherTexte(item._id, 'banque', item.source)" triggers="hover" placement="bottom">
<p v-html="texteDuContenu" v-if="!isMoodle"></p> <p v-html="texteDuContenu" v-if="!isMoodle"></p>
<Test v-else></Test> <Previsualiser_Moodle v-else></Previsualiser_Moodle>
</b-popover> </b-popover>
<td>{{ item.auteur }}</td> <td>{{ item.auteur }}</td>
<td>{{item.versionEnCours.numero}}</td> <td>{{item.versionEnCours.numero}}</td>
...@@ -145,6 +146,7 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw ...@@ -145,6 +146,7 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw
<script> <script>
//import axios from "axios"; //import axios from "axios";
import Previsualiser_Moodle from "@/Previsualiser_Moodle";
let $ = require("jquery"); let $ = require("jquery");
window.$ = window.jQuery = $; window.$ = window.jQuery = $;
require("jquery-ui-bundle"); require("jquery-ui-bundle");
...@@ -153,12 +155,13 @@ import Volet_Contenu from "./Volet_Contenu"; ...@@ -153,12 +155,13 @@ import Volet_Contenu from "./Volet_Contenu";
import Service from '../../src/service/Service' import Service from '../../src/service/Service'
import Modifier_Contenu from "./Modifier_Contenu"; import Modifier_Contenu from "./Modifier_Contenu";
import Consulter_Contenu from "./Consulter_Contenu"; import Consulter_Contenu from "./Consulter_Contenu";
import Test from "../Test" //import Test from "../Test"
export default { export default {
name: "Volet_Base", name: "Volet_Base",
components: { components: {
Test, Previsualiser_Moodle,
//Test,
Modifier_Contenu, Modifier_Contenu,
Consulter_Contenu, Consulter_Contenu,
Volet_Menu, Volet_Menu,
...@@ -662,10 +665,12 @@ export default { ...@@ -662,10 +665,12 @@ export default {
*/ */
rechercherTexte: function (id, provenance, source) { rechercherTexte: function (id, provenance, source) {
if (id === undefined) if (id === undefined)
return return
let that = this let that = this
if (source === "moodle"){ if (source === "moodle"){
this.isMoodle = true this.isMoodle = true
} }
...@@ -673,7 +678,7 @@ export default { ...@@ -673,7 +678,7 @@ export default {
this.isMoodle = false this.isMoodle = false
if(provenance === 'en-cours'){ if (provenance === 'en-cours') {
Service.recupererTexteContenuEnCours(JSON.stringify(id)).then( Service.recupererTexteContenuEnCours(JSON.stringify(id)).then(
function (response) { function (response) {
let showdown = require('showdown'), let showdown = require('showdown'),
...@@ -682,8 +687,7 @@ export default { ...@@ -682,8 +687,7 @@ export default {
that.texteDuContenu = converter.makeHtml(response.data) that.texteDuContenu = converter.makeHtml(response.data)
} }
) )
} } else if (provenance === 'banque') {
else if (provenance === 'banque'){
Service.recupererTexteVersionContenu(JSON.stringify(id), 0).then( Service.recupererTexteVersionContenu(JSON.stringify(id), 0).then(
function (response) { function (response) {
let showdown = require('showdown'), let showdown = require('showdown'),
...@@ -692,8 +696,7 @@ export default { ...@@ -692,8 +696,7 @@ export default {
that.texteDuContenu = converter.makeHtml(response.data) that.texteDuContenu = converter.makeHtml(response.data)
} }
) )
} } else {
else {
Service.recupererTexteContenu(JSON.stringify(id)).then( Service.recupererTexteContenu(JSON.stringify(id)).then(
function (response) { function (response) {
let showdown = require('showdown'), let showdown = require('showdown'),
...@@ -701,6 +704,7 @@ export default { ...@@ -701,6 +704,7 @@ export default {
that.texteDuContenu = converter.makeHtml(response.data) that.texteDuContenu = converter.makeHtml(response.data)
} }
) )
// }
} }
} }
}, },
...@@ -741,6 +745,11 @@ export default { ...@@ -741,6 +745,11 @@ export default {
} }
} }
} }
} else if (event.action === "modifier"){
let questionParsee = event.questionParsee
questionParsee["nom_question"] = event.titre
let data = {id_contenu: JSON.stringify(this.contenuClique._id), elements_contenu: JSON.stringify(questionParsee)}
Service.modifierXML(data)
} }
}, },
/** /**
......
<template>
<div id="full">
<div id="body" :class="darktheme ? 'editDark' : 'edit'">
<table style="width: 100%">
<tr style="height: 69px">
<td style="width: 30%; text-align: left">Nom de la question</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px" v-model="nomQuestion"/></td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Texte de la question</td>
<td style="width: 70%">
<quill-editor toolbar="minimal" style="height: 100px; margin-top: -66px" v-model="texteQuestion"/>
</td>
</tr>
<tr style="height: 69px">
<td style="width: 30%; text-align: left">Note par défaut</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px" v-model="noteDefaut"/></td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Feedback général</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: -66px" v-model="generalFeedback"/>
</td>
</tr>
<template v-for="j in reponses.length">
<tr :key="j + 'reponse'">
<td style="width: 30%; text-align: left">Formule de la réponse {{j}}</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px; width: 250px; margin-right: 5px" v-model="reponses[j - 1]"/>
Note
<select style="margin-left: 5px" v-model="notes[j - 1]">
<option v-for="i in options.length" :key="i">{{ options[i-1] }}</option>
</select>
</td>
</tr>
<tr :key="j + 'tolerance'">
<td style="width: 30%; text-align: left">Tolérance +/-</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px; width: 75px; margin-right: 5px" v-model="tolerance[j - 1]"/>
Type
</td>
</tr>
<tr :key="j + 'precision'">
<td style="width: 30%; text-align: left">Affichage de la réponse</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px; width: 75px; margin-right: 5px" v-model="tolerance[j - 1]"/>
Format
</td>
</tr>
<tr :key="j + 'feedback'">
<td style="width: 30%; text-align: left">Feedback</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: 26px" v-model="feedback[j - 1]"/>
</td>
</tr>
</template>
</table>
</div>
</div>
</template>
<script>
export default {
name: "Edit_Calculee_Simple",
props: {
// mode sombre activé ou non
darktheme: {},
//la question Parsee
questionParsee: {}
},
data: function () {
return {
//questionParsee: '',
nomQuestion: '',
texteQuestion: '',
noteDefaut: 0,
generalFeedback: '',
options: ["Aucun", "100%", "90%", "83.33%", "80%", "75%", "70%", "66.66%", "60%", "50%", "40%", "33.33%", "30%", "25%", "20%", "16.6667%", "14.28571%",
"12.5%", "11.11%", "10%", "5%"],
reponses: [],
notes: [],
feedback: [],
tolerance: []
}
},
watch: {
questionParsee: function () {
if (this.questionParsee.type_question === 'calculatedsimple') {
this.nomQuestion = this.questionParsee.nom_question
this.texteQuestion = this.questionParsee.intitule_question
this.noteDefaut = this.questionParsee.note_defaut
this.generalFeedback = this.questionParsee.feedback_general
this.reponses = this.questionParsee.liste_reponse
this.notes = this.questionParsee.liste_note.map(note => note + "%")
this.notes = this.notes.map(note => {if (note === '0%') return 'Aucun'; else return note;})
this.feedback = this.questionParsee.liste_feedback
this.tolerance = this.questionParsee.liste_tolerance
}
}
}
}
</script>
<style scoped>
label {
margin-right: 5px;
margin-top: 10px;
}
.edit {
width: 60vw;
margin-left: auto;
margin-right: auto;
height: 79.35vh;
background: whitesmoke;
}
.editDark {
width: 60vw;
margin-left: auto;
margin-right: auto;
height: 79.35vh;
background: darkslategray;
color: whitesmoke;
}
#body {
overflow-y: auto;
}
#full {
height: 79.35vh;
width: 100%;
background: white;
margin-top: -1.75vh;
}
.column {
flex: 50%;
}
td > * {
vertical-align: middle;
}
</style>
\ No newline at end of file
<template>
<div id="full">
<div id="body" :class="darktheme ? 'editDark' : 'edit'">
<table style="width: 100%">
<tr style="height: 69px">
<td style="width: 30%; text-align: left">Nom de la question</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px" v-model="nomQuestion"/></td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Texte de la question</td>
<td style="width: 70%">
<quill-editor toolbar="minimal" style="height: 100px; margin-top: -66px" v-model="texteQuestion"/>
</td>
</tr>
<tr style="height: 69px">
<td style="width: 30%; text-align: left">Note par défaut</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px" v-model="noteDefaut"/></td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Feedback général</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: -66px" v-model="generalFeedback"/>
</td>
</tr>
<tr style="height: 69px">
<td style="width: 30%; text-align: left">Plusieurs réponses ou une seule?</td>
<td style="width: 70%; text-align: left">
<select v-model="multipleChoisie">
<option>Réponses multiples autorisées</option>
<option>Une seule réponse</option>
</select>
</td>
</tr>
<tr style="height: 69px">
<td style="width: 30%; text-align: left">Numéroter les choix?</td>
<td style="width: 70%; text-align: left">
<select v-model="optionNumChoisie">
<option v-for="i in optionsNumerotation.length" :key="i">{{ optionsNumerotation[i-1] }}</option>
</select>
</td>
</tr>
<template v-for="j in reponses.length" style="background: brown">
<tr style="height: 225px" :key="j + 'reponse'">
<td style="width: 30%; text-align: left">Réponse {{ j }}</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: -66px" v-model="reponses[j - 1]"/>
</td>
</tr>
<tr style="height: 69px" :key="j + 'note'">
<td style="width: 30%; text-align: left">Note</td>
<td style="width: 70%; text-align: left">
<select v-model="notes[j - 1]">
<option v-for="i in options.length" :key="i">{{ options[i-1] }}</option>
</select>
</td>
</tr>
<tr style="height: 225px" :key="j + 'feedback'">
<td style="width: 30%; text-align: left">Feedback</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: -66px" v-model="feedbacks[j - 1]"/>
</td>
</tr>
</template>
</table>
</div>
</div>
</template>
<script>
export default {
name: "Edit_Choix_Multiple",
props: {
// mode sombre activé ou non
darktheme: {},
//la question Parsee
questionParsee: {}
},
data: function () {
return {
//questionParsee: '',
nomQuestion: '',
texteQuestion: '',
noteDefaut: 0,
generalFeedback: '',
options: ["Aucun", "100%", "90%", "83.33%", "80%", "75%", "70%", "66.66%", "60%", "50%", "40%", "33.33%", "30%", "25%", "20%", "16.6667%", "14.28571%",
"12.5%", "11.11%", "10%", "5%"],
optionsNumerotation: ["a. b. c. etc.", "A. B. C. etc.", "1. 2. 3. etc.", "i. ii. iii. etc.", "I. II. III. etc.", "Sans numérotation"],
reponses: [],
notes: [],
feedbacks: [],
prefixes: [],
optionNumChoisie: '',
multipleChoisie: ''
}
},
watch: {
questionParsee: function () {
if (this.questionParsee.type_question === 'multichoice') {
this.nomQuestion = this.questionParsee.nom_question
this.texteQuestion = this.questionParsee.intitule_question
this.noteDefaut = this.questionParsee.note_defaut
this.generalFeedback = this.questionParsee.feedback_general
this.feedbacks = this.questionParsee.liste_feedback
this.reponses = this.questionParsee.liste_reponse
this.notes = this.questionParsee.liste_note.map(note => note + "%")
this.notes = this.notes.map(note => {if (note === '0%') return 'Aucun'; else return note;})
switch (this.questionParsee.numerotation) {
case "abc":
this.optionNumChoisie = this.optionsNumerotation[0]
break
case "ABCD":
this.optionNumChoisie = this.optionsNumerotation[1]
break
case "123":
this.optionNumChoisie = this.optionsNumerotation[2]
break
case "iii" :
this.optionNumChoisie = this.optionsNumerotation[3]
break
case "IIII" :
this.optionNumChoisie = this.optionsNumerotation[4]
break
case "none":
this.optionNumChoisie = this.optionsNumerotation[5]
break
}
if (this.questionParsee.nb_reponse){
this.multipleChoisie = "Une seule réponse"
} else {
this.multipleChoisie = "Réponses multiples autorisées"
}
}
}
}
}
</script>
<style scoped>
label {
margin-right: 5px;
margin-top: 10px;
}
.edit {
width: 60vw;
margin-left: auto;
margin-right: auto;
height: 79.35vh;
background: whitesmoke;
}
.editDark {
width: 60vw;
margin-left: auto;
margin-right: auto;
height: 79.35vh;
background: darkslategray;
color: whitesmoke;
}
#body {
overflow-y: auto;
}
#full {
height: 79.35vh;
width: 100%;
background: white;
margin-top: -1.75vh;
}
.column {
flex: 50%;
}
td > * {
vertical-align: middle;
}
</style>
\ No newline at end of file
<template>
<div>
<Edit_Reponse_Courte @actionMoodle="passerMoodle" v-show="type_question === 'shortanswer'" v-bind:questionParsee="questionParsee"></Edit_Reponse_Courte>
<Edit_Vrai_Faux @actionMoodle="passerMoodle" v-show="type_question === 'truefalse'" v-bind:questionParsee="questionParsee"></Edit_Vrai_Faux>
<Edit_Choix_Multiple @actionMoodle="passerMoodle" v-show="type_question === 'multichoice'" v-bind:questionParsee="questionParsee"></Edit_Choix_Multiple>
<Edit_Numerique @actionMoodle="passerMoodle" v-show="type_question === 'numerical'" v-bind:questionParsee="questionParsee"></Edit_Numerique>
<Edit_Calculee_Simple @actionMoodle="passerMoodle" v-show="type_question === 'calculatedsimple'" v-bind:questionParsee="questionParsee"></Edit_Calculee_Simple>
</div>
</template>
<script>
import Service from "@/service/Service";
import Edit_Reponse_Courte from "@/components/moodle/Edit_Reponse_Courte";
import Edit_Vrai_Faux from "@/components/moodle/Edit_Vrai_Faux";
import Edit_Choix_Multiple from "@/components/moodle/Edit_Choix_Multiple";
import Edit_Numerique from "@/components/moodle/Edit_Numerique";
import Edit_Calculee_Simple from "@/components/moodle/Edit_Calculee_Simple";
export default {
name: "Edit_Contenus",
components: {Edit_Calculee_Simple, Edit_Numerique, Edit_Choix_Multiple, Edit_Vrai_Faux, Edit_Reponse_Courte},
props: {
// mode sombre activé ou non
darktheme: {},
//l'id du contenu clique
idContenu: {}
},
methods: {
passerMoodle: function (event) {
if (event.action === 'arriere')
this.$emit("actionMoodle", {action: event.action})
else
this.$emit("actionMoodle", {action: event.action, questionParsee: event.questionParsee})
}
},
data: function () {
return {
questionParsee: '',
type_question: ''
}
},
watch: {
idContenu: function () {
let that = this
Service.parserTexte(JSON.stringify(this.idContenu)).then(function (response) {
that.questionParsee = response.data
that.type_question = that.questionParsee.type_question
})
}
}
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div id="full">
<div id="body" :class="darktheme ? 'editDark' : 'edit'">
<table style="width: 100%">
<tr style="height: 69px">
<td style="width: 30%; text-align: left">Nom de la question</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px" v-model="nomQuestion"/></td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Texte de la question</td>
<td style="width: 70%">
<quill-editor toolbar="minimal" style="height: 100px; margin-top: -66px" v-model="texteQuestion"/>
</td>
</tr>
<tr style="height: 69px">
<td style="width: 30%; text-align: left">Note par défaut</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px" v-model="noteDefaut"/></td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Feedback général</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: -66px" v-model="generalFeedback"/>
</td>
</tr>
<!-- Contenu spécifique -->
<template v-for="j in reponses.length">
<tr :key="j + 'reponse'">
<td style="width: 30%; text-align: left">Reponse {{j}}</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px; width: 75px; margin-right: 5px" v-model="reponses[j - 1]"/>
Erreur
<input type="text" style="height: 25px; width: 75px; margin-left: 5px; margin-right: 5px" v-model="tolerance[j - 1]"/>
Note
<select style="margin-left: 5px" v-model="notes[j - 1]">
<option v-for="i in options.length" :key="i">{{ options[i-1] }}</option>
</select>
</td>
</tr>
<tr :key="j + 'feedback'">
<td style="width: 30%; text-align: left">Feedback</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: 26px" v-model="feedback[j - 1]"/>
</td>
</tr>
</template>
</table>
</div>
</div>
</template>
<script>
export default {
name: "Edit_Numerique",
props: {
// mode sombre activé ou non
darktheme: {},
//la question Parsee
questionParsee: {}
},
data: function () {
return {
//questionParsee: '',
nomQuestion: '',
texteQuestion: '',
noteDefaut: 0,
generalFeedback: '',
options: ["Aucun", "100%", "90%", "83.33%", "80%", "75%", "70%", "66.66%", "60%", "50%", "40%", "33.33%", "30%", "25%", "20%", "16.6667%", "14.28571%",
"12.5%", "11.11%", "10%", "5%"],
reponses: [],
notes: [],
feedback: [],
tolerance: []
}
},
watch: {
questionParsee: function () {
if (this.questionParsee.type_question === 'numerical') {
this.nomQuestion = this.questionParsee.nom_question
this.texteQuestion = this.questionParsee.intitule_question
this.noteDefaut = this.questionParsee.note_defaut
this.generalFeedback = this.questionParsee.feedback_general
this.reponses = this.questionParsee.liste_reponse
this.notes = this.questionParsee.liste_note.map(note => note + "%")
this.notes = this.notes.map(note => {if (note === '0%') return 'Aucun'; else return note;})
this.feedback = this.questionParsee.liste_feedback
this.tolerance = this.questionParsee.liste_tolerance
}
}
}
}
</script>
<style scoped>
label {
margin-right: 5px;
margin-top: 10px;
}
.edit {
width: 60vw;
margin-left: auto;
margin-right: auto;
height: 79.35vh;
background: whitesmoke;
}
.editDark {
width: 60vw;
margin-left: auto;
margin-right: auto;
height: 79.35vh;
background: darkslategray;
color: whitesmoke;
}
#body {
overflow-y: auto;
}
#full {
height: 79.35vh;
width: 100%;
background: white;
margin-top: -1.75vh;
}
.column {
flex: 50%;
}
td > * {
vertical-align: middle;
}
</style>
\ No newline at end of file
<template>
<div id="full">
<div id="body" :class="darktheme ? 'editDark' : 'edit'">
<table style="width: 100%">
<tr style="height: 69px">
<td style="width: 30%; text-align: left">Nom de la question</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px" v-model="nomQuestion"/></td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Texte de la question</td>
<td style="width: 70%">
<quill-editor toolbar="minimal" style="height: 100px; margin-top: -66px" v-model="texteQuestion"/>
</td>
</tr>
<tr style="height: 69px">
<td style="width: 30%; text-align: left">Note par défaut</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px" v-model="noteDefaut"/></td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Feedback général</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: -66px" v-model="generalFeedback"/>
</td>
</tr>
<!-- Partie spécifique à réponse courte -->
<tr>
<td style="width: 30%; text-align: left">Sensible à la casse</td>
<td style="width: 70%; text-align: left">
<select v-model="choixCasse">
<option>Non, la casse n'est pas importante</option>
<option>Oui, la casse est importante</option>
</select>
</td>
</tr>
<tr>
<td style="width: 30%; text-align: left">Réponse 1</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px;" v-model="texteReponse[0]"/> <label id="note">Note</label>
<select style="width: 75px;" v-model="noteReponse[0]">
<option v-for="i in options.length" :key="i">{{ options[i-1] }}</option>
</select>
</td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Feedback</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: -66px" v-model="feedbackReponse[0]"/>
</td>
</tr>
<tr>
<td style="width: 30%; text-align: left">Réponse 2</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px;" v-model="texteReponse[1]"/> <label id="note">Note</label>
<select style="width: 75px;" v-model="noteReponse[1]">
<option v-for="i in options.length" :key="i">{{ options[i-1] }}</option>
</select>
</td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Feedback</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: -66px" v-model="feedbackReponse[1]"/>
</td>
</tr>
<tr>
<td style="width: 30%; text-align: left">Réponse 3</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px;" v-model="texteReponse[2]"/> <label id="note">Note</label>
<select style="width: 75px;" v-model="noteReponse[2]">
<option v-for="i in options.length" :key="i">{{ options[i-1] }}</option>
</select>
</td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Feedback</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: -66px" v-model="feedbackReponse[2]"/>
</td>
</tr>
</table>
</div>
</div>
</template>
<script>
export default {
name: "Edit_Reponse_Courte",
props: {
// mode sombre activé ou non
darktheme: {},
//la question Parsee
questionParsee: {}
},
data: function () {
return {
//questionParsee: '',
nomQuestion: 'chameau',
texteQuestion: 'chocolat',
noteDefaut: 0,
generalFeedback: '',
feedbackReponse: [],
texteReponse: [],
noteReponse: [],
choixCasse: '',
optionsCasse: ["Non, la casse n'est pas importante", "Oui, la casse est importante"],
options: ["Aucun", "100%", "90%", "83.33%", "80%", "75%", "70%", "66.66%", "60%", "50%", "40%", "33.33%", "30%", "25%", "20%", "16.6667%", "14.28571%",
"12.5%", "11.11%", "10%", "5%"]
}
},
watch: {
questionParsee: function () {
if (this.questionParsee.type_question === 'shortanswer') {
this.nomQuestion = this.questionParsee.nom_question
this.texteQuestion = this.questionParsee.intitule_question
this.noteDefaut = this.questionParsee.note_defaut
this.generalFeedback = this.questionParsee.feedback_general
this.texteReponse = this.questionParsee.liste_reponse.filter(reponse => reponse)
this.noteReponse = this.questionParsee.liste_note.map(note => note + "%")
this.feedbackReponse = this.questionParsee.liste_feedback
this.choixCasse = this.optionsCasse[this.questionParsee.majuscule]
}
}
}
}
</script>
<style scoped>
label {
margin-right: 5px;
margin-top: 10px;
}
.edit {
width: 60vw;
margin-left: auto;
margin-right: auto;
height: 79.35vh;
background: whitesmoke;
}
.editDark {
width: 60vw;
margin-left: auto;
margin-right: auto;
height: 79.35vh;
background: darkslategray;
color: whitesmoke;
}
#body {
overflow-y: auto;
}
#full {
height: 79.35vh;
width: 100%;
background: white;
margin-top: -1.75vh;
}
.column {
flex: 50%;
}
td > * {
vertical-align: middle;
}
#note {
margin-left: 5px;
margin-right: 5px;
margin-bottom: 7.5px;
}
</style>
\ No newline at end of file
<template>
<div id="full" >
<div id="body" :class="darktheme ? 'editDark' : 'edit'">
<table style="width: 100%">
<!-- <tr style="height: 69px">
<td style="width: 30%; text-align: left">Nom de la question</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px" v-model="nomQuestion"/></td>
</tr>-->
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Texte de la question</td>
<td style="width: 70%">
<quill-editor toolbar="minimal" style="height: 100px; margin-top: -66px" v-model="texteQuestion"/>
</td>
</tr>
<tr style="height: 69px">
<td style="width: 30%; text-align: left">Note par défaut</td>
<td style="width: 70%; text-align: left">
<input type="text" style="height: 25px" v-model="noteDefaut"/></td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Feedback général</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: -66px" v-model="generalFeedback"/>
</td>
</tr>
<!-- partie spécifique à edit_vrai_faux -->
<tr style="height: 69px">
<td style="width: 30%; text-align: left">Réponse correcte</td>
<td style="width: 70%; text-align: left">
<select style="height: 25px" v-model="reponseCorrecte">
<option :selected="reponseCorrecte === 'Vrai'">Vrai</option>
<option :selected="reponseCorrecte === 'Faux'">Faux</option>
</select>
</td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Feedback pour la réponse "Vrai"</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: -66px" v-model="feedbackVrai"/>
</td>
</tr>
<tr style="height: 225px">
<td style="width: 30%; text-align: left">Feedback pour la réponse "Faux"</td>
<td style="width: 70%">
<quill-editor style="height: 100px; margin-top: -66px; color: white" v-model="feedbackFaux"/>
</td>
</tr>
</table>
<button style="width: auto; height: auto; margin-left: -100px; position: fixed; bottom: 18px" v-on:click="action('modifier')">modifier</button>
<button style="width: auto; height: auto; margin-left: -15px; position: fixed; bottom: 18px" v-on:click="action('arriere')">retour en arriere</button>
</div>
</div>
</template>
<script>
//import Service from "@/service/Service";
export default {
name: "Edit_Vrai_Faux",
props: {
// mode sombre activé ou non
darktheme: {},
//la question Parsee
questionParsee: {}
},
data: function () {
return {
//questionParsee: '',
nomQuestion: 'chameau',
texteQuestion: 'chocolat',
noteDefaut: 0,
generalFeedback: '',
reponseCorrecte: '',
feedbackVrai: '',
feedbackFaux: ''
}
},
methods: {
action: function (actionChoisie) {
if (actionChoisie === 'arriere'){
this.$emit("actionMoodle", {action: actionChoisie})
} else {
this.questionParsee.nom_question = this.nomQuestion
this.questionParsee.intitule_question = this.texteQuestion
this.questionParsee.note_defaut = this.noteDefaut
this.questionParsee.feedback_general = this.generalFeedback
this.questionParsee.bonne_reponse = this.reponseCorrecte
this.questionParsee.liste_feedback[1] = this.feedbackVrai
this.questionParsee.liste_feedback[3] = this.feedbackFaux
this.$emit("actionMoodle", {action: actionChoisie, questionParsee: this.questionParsee})
}
}
},
watch: {
questionParsee: function () {
// let that = this
// Service.parserTexte(JSON.stringify(this.idContenu)).then(function (response) {
if (this.questionParsee.type_question === 'truefalse') {
this.nomQuestion = this.questionParsee.nom_question
this.texteQuestion = this.questionParsee.intitule_question
this.noteDefaut = this.questionParsee.note_defaut
this.generalFeedback = this.questionParsee.feedback_general
this.reponseCorrecte = this.questionParsee.bonne_reponse
this.feedbackVrai = this.questionParsee.liste_feedback[1]
this.feedbackFaux = this.questionParsee.liste_feedback[3]
}
// })
// alert("Shirobakol")
}
}
}
</script>
<style scoped>
label {
margin-right: 5px;
margin-top: 10px;
}
.edit {
width: 60vw;
margin-left: auto;
margin-right: auto;
height: 79.35vh;
background: whitesmoke;
}
.editDark {
width: 60vw;
margin-left: auto;
margin-right: auto;
height: 79.35vh;
background: darkslategray;
color: whitesmoke;
}
#body {
overflow-y: auto;
}
#full {
height: 79.35vh;
width: 100%;
background: white;
margin-top: -1.75vh;
}
.column {
flex: 50%;
}
td > * {
vertical-align: middle;
}
</style>
<template>
<div>
<p>{{intituleQuestion}} (Note sur {{noteDefaut}})</p>
<p>Réponses possibles : ({{(reponses.length)}}) </p>
<div v-for="i in reponses.length" :key="i">
<ul>
<li> {{reponses[i-1]}} ({{notes[i-1]}} %)</li>
</ul>
</div>
</div>
</template>
<script>
export default {
name: "Question_Calculee_Simple",
props: {
questionParsee: {}
},
data: function () {
return {
intituleQuestion: '',
noteDefaut: '',
reponses: [],
notes: [],
prefixes: ['', '', '', '', '']
}
},
watch: {
questionParsee: function () {
if (this.questionParsee.type_question === 'calculatedsimple') {
this.noteDefaut = this.questionParsee.note_defaut
let div = document.createElement("div");
div.innerHTML = this.questionParsee.intitule_question;
this.intituleQuestion = div.innerText
div.remove()
this.reponses = this.questionParsee.liste_reponse
this.notes = this.questionParsee.liste_note
}
}
}
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<p>{{intituleQuestion}} (Note sur {{noteDefaut}})</p>
<div v-for="i in reponses.length" :key="i">
<input type="radio" name="choixMultiple">
<label> {{prefixes[i-1]}}. {{ transformerTexte(reponses[i-1]) }} ({{notes[i-1]}} %)</label><br> </div>
</div>
</template>
<script>
export default {
name: "Question_Choix_Multiple",
props: {
questionParsee: {}
},
data: function () {
return {
intituleQuestion: '',
noteDefaut: '',
reponses: [],
notes: [],
prefixes: ['', '', '', '', '']
}
},
watch: {
questionParsee: function () {
if (this.questionParsee.type_question === 'multichoice') {
this.noteDefaut = this.questionParsee.note_defaut
let div = document.createElement("div");
div.innerHTML = this.questionParsee.intitule_question;
this.intituleQuestion = div.innerText
div.remove()
switch (this.questionParsee.numerotation) {
case "abc":
this.prefixes = ['a', 'b', 'c', 'd', 'e']
break
case "ABCD":
this.prefixes = ['A', 'B', 'C', 'D', 'E']
break
case "123":
this.prefixes = ['1', '2', '3', '4', '5']
break
case "none":
break
}
this.reponses = this.questionParsee.liste_reponse
this.notes = this.questionParsee.liste_note
}
}
},
methods: {
transformerTexte: function (texte) {
let div = document.createElement("div");
div.innerHTML = texte;
let texteRaffine = div.innerText
div.remove()
return texteRaffine
}
}
}
</script>
<style scoped>
label {
margin-left: 4px;
}
</style>
<template>
<div>
<p>{{intituleQuestion}} (Note sur {{noteDefaut}})</p>
<p>Réponses possibles : ({{(reponses.length)}}) </p>
<div v-for="i in reponses.length" :key="i">
<ul>
<li> {{reponses[i-1]}} ({{notes[i-1]}} %)</li>
</ul>
</div>
</div>
</template>
<script>
export default {
name: "Question_Numerique",
props: {
questionParsee: {}
},
data: function () {
return {
intituleQuestion: '',
noteDefaut: '',
reponses: [],
notes: [],
prefixes: ['', '', '', '', '']
}
},
watch: {
questionParsee: function () {
if (this.questionParsee.type_question === 'numerical') {
this.noteDefaut = this.questionParsee.note_defaut
let div = document.createElement("div");
div.innerHTML = this.questionParsee.intitule_question;
this.intituleQuestion = div.innerText
div.remove()
//console.log(this.questionParsee)
this.reponses = this.questionParsee.liste_reponse
this.notes = this.questionParsee.liste_note
}
}
},
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<p>{{intituleQuestion}} (Note sur {{noteDefaut}})</p>
<p>Réponses possibles : ({{(reponses.length)}}) </p>
<div v-for="i in reponses.length" :key="i">
<ul>
<li> {{reponses[i - 1]}} ({{notes [i - 1]}} %)</li>
</ul>
</div>
</div>
</template>
<script>
export default {
name: "Question_Reponse_Courte",
props: {
questionParsee: {}
},
data: function () {
return {
intituleQuestion: '',
noteDefaut: '',
reponses: [],
notes: []
}
},
watch: {
questionParsee: function () {
//this.intituleQuestion = this.questionParsee.intitule_question
if (this.questionParsee.type_question === 'shortanswer') {
this.noteDefaut = this.questionParsee.note_defaut
let div = document.createElement("div");
div.innerHTML = this.questionParsee.intitule_question;
this.intituleQuestion = div.innerText
div.remove()
this.reponses = this.questionParsee.liste_reponse.filter(note => note)
this.notes = this.questionParsee.liste_note
// alert("reponses : " + this.reponses)
}
}
}
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<p>{{intituleQuestion}} (Note sur {{noteDefault}})</p>
<input type="radio" name="choixVraiFaux">
<label> {{ transformerTexte(listeFeedback[0]) }}</label><br>
<input type="radio" name="choixVraiFaux">
<label> {{ transformerTexte(listeFeedback[2]) }}</label><br>
<!--
Besoin de :
intitule_question
note_default
listeFeedback
-->
</div>
</template>
<script>
export default {
name: "Question_Vrai_Faux",
props: {
questionParsee: {}
},
watch: {
questionParsee: function () {
if (this.questionParsee.type_question === 'truefalse') {
let div = document.createElement("div");
div.innerHTML = this.questionParsee.intitule_question;
this.intituleQuestion = div.innerText
div.remove()
this.noteDefault = this.questionParsee.note_defaut
this.listeFeedback = this.questionParsee.liste_feedback
}
}
},
data: function () {
return {
intituleQuestion: "",
noteDefault: "",
listeFeedback: ""
}
},
methods: {
transformerTexte: function (texte) {
return texte === 'true' ? 'Vrai' : 'Faux'
}
}
}
</script>
<style scoped>
label {
margin-left: 4px;
}
</style>
\ No newline at end of file
...@@ -8,6 +8,13 @@ import BootstrapVue from "bootstrap-vue" ...@@ -8,6 +8,13 @@ import BootstrapVue from "bootstrap-vue"
import 'bootstrap/dist/css/bootstrap.css' import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css' import 'bootstrap-vue/dist/bootstrap-vue.css'
import VueQuillEditor from 'vue-quill-editor'
import 'quill/dist/quill.core.css' // import styles
import 'quill/dist/quill.snow.css' // for snow theme
import 'quill/dist/quill.bubble.css' // for bubble theme
Vue.use(VueQuillEditor, /* { default global options } */)
//import Index from '@/Index' //import Index from '@/Index'
Vue.config.productionTip = false Vue.config.productionTip = false
......
import axios from 'axios' import axios from 'axios'
const urlBase = "http://127.0.0.1:5000/" const urlBase = "http://127.0.0.1:5000/"
//const urlBase = "http://193.70.2.155:5000/" //const urlBase = "http://193.70.2.155/api/"
const users = "utilisateurs/" const users = "utilisateurs/"
const contenus = "contenus/" const contenus = "contenus/"
const en_cours = "en_cours/" const en_cours = "en_cours/"
...@@ -111,6 +111,9 @@ export default { ...@@ -111,6 +111,9 @@ export default {
recupererNoteContenu(idContenu, auteur, version){ recupererNoteContenu(idContenu, auteur, version){
return axios.get(urlBase + contenus + "recupererNote?auteur=" + auteur + "&version=" + version + "&id_contenu=" + idContenu, this.getHeader(localStorage.token)) return axios.get(urlBase + contenus + "recupererNote?auteur=" + auteur + "&version=" + version + "&id_contenu=" + idContenu, this.getHeader(localStorage.token))
}, },
modifierXML(data){
return axios.patch(urlBase + contenus + "modifierXML", data, this.getHeader(localStorage.token))
},
// gestion des contenus - fonctions spéciales tags // gestion des contenus - fonctions spéciales tags
ajouterTagLibre(data){ ajouterTagLibre(data){
return axios.patch(urlBase + contenus + "newTagLibre", data, this.getHeader(localStorage.token)) return axios.patch(urlBase + contenus + "newTagLibre", data, this.getHeader(localStorage.token))
...@@ -133,6 +136,9 @@ export default { ...@@ -133,6 +136,9 @@ export default {
modifierTagsFixes(data) { modifierTagsFixes(data) {
return axios.patch(urlBase + contenus + "modifierTags", data, this.getHeader(localStorage.token)) return axios.patch(urlBase + contenus + "modifierTags", data, this.getHeader(localStorage.token))
}, },
parserTexte(id_contenu) {
return axios.get(urlBase + contenus + "parserContenu/" + id_contenu, this.getHeader(localStorage.token))
},
// gestion des en-cours // gestion des en-cours
creerEnCours(data) { creerEnCours(data) {
return axios.post(urlBase + en_cours + "newEnCours", data, this.getHeader(localStorage.token)) return axios.post(urlBase + en_cours + "newEnCours", data, this.getHeader(localStorage.token))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment