chartjs zoom support + calculate macro

This commit is contained in:
Jan Prochazka 2022-01-02 19:01:14 +01:00
parent 866b8fdc25
commit 1c5fce1be1
6 changed files with 61 additions and 2 deletions

View File

@ -7,6 +7,9 @@ const getChartExport = (title, config, imageFile) => {
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.6.0/chart.min.js" integrity="sha512-GMGzUEevhWh8Tc/njS0bDpwgxdCJLQBWG3Z2Ct+JGOpVnEmjvNx6ts4v6A2XJf1HOrtOsfhv3hBKpK9kE5z8AQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartjs-adapter-moment/1.0.0/chartjs-adapter-moment.min.js" integrity="sha512-oh5t+CdSBsaVVAvxcZKy3XJdP7ZbYUBSRCXDTVn0ODewMDDNnELsrG9eDm8rVZAQg7RsDD/8K3MjPAFB13o6eA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min.js" integrity="sha512-UXumZrZNiOwnTcZSHLOfcTs0aos2MzBWHXOHOuB0J/R44QB0dwY5JgfbvljXcklVf65Gc4El6RjZ+lnwd2az2g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartjs-plugin-zoom/1.2.0/chartjs-plugin-zoom.min.js" integrity="sha512-TT0wAMqqtjXVzpc48sI0G84rBP+oTkBZPgeRYIOVRGUdwJsyS3WPipsNh///ay2LJ+onCM23tipnz6EvEy2/UA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<style>
a { text-decoration: none }

View File

@ -53,5 +53,8 @@
"tslib": "^2.3.1",
"typescript": "^4.4.3",
"uuid": "^3.4.0"
},
"dependencies": {
"chartjs-plugin-zoom": "^1.2.0"
}
}

View File

@ -1,6 +1,7 @@
<script lang="ts" context="module">
import Chart from 'chart.js/auto';
import 'chartjs-adapter-moment';
import zoomPlugin from 'chartjs-plugin-zoom';
const getCurrentEditor = () => getActiveComponent('ChartCore');
@ -15,6 +16,8 @@
onClick: () => getCurrentEditor().exportChart(),
testEnabled: () => getCurrentEditor() != null,
});
Chart.register(zoomPlugin);
</script>
<script lang="ts">

View File

@ -55,6 +55,26 @@
text: chartTitle,
};
}
res['zoom'] = {
zoom: {
wheel: {
enabled: true,
},
pinch: {
enabled: true,
},
drag: {
enabled: true,
modifierKey: 'shift',
},
mode: 'x',
},
pan: {
enabled: true,
mode: 'x',
},
};
return res;
}

View File

@ -76,7 +76,8 @@ return value ? value.toString().replace(new RegExp(rtext, rflags), args.replace
default: '3',
},
],
description: 'Returns string of a specified length in which the beginning of the current string is padded with spaces or other character',
description:
'Returns string of a specified length in which the beginning of the current string is padded with spaces or other character',
type: 'transformValue',
code: `return modules.lodash.padStart(value, +args.length, args.character)`,
},
@ -98,7 +99,8 @@ return value ? value.toString().replace(new RegExp(rtext, rflags), args.replace
default: '3',
},
],
description: 'Returns string of a specified length in which the end of the current string is padded with spaces or other character',
description:
'Returns string of a specified length in which the end of the current string is padded with spaces or other character',
type: 'transformValue',
code: `return modules.lodash.padEnd(value, +args.length, args.character)`,
},
@ -275,6 +277,22 @@ return {
},
],
},
{
title: 'Calculation',
name: 'calculation',
group: 'Tools',
description: 'Custom expression. Use row.column_name for accessing column values, value for original value',
type: 'transformValue',
args: [
{
type: 'text',
label: 'Expression',
name: 'expression',
default: 'value',
},
],
code: `return eval(args.expression);`,
},
{
title: 'Extract date fields',
name: 'extractDateFields',

View File

@ -2567,6 +2567,13 @@ chartjs-adapter-moment@^1.0.0:
resolved "https://registry.yarnpkg.com/chartjs-adapter-moment/-/chartjs-adapter-moment-1.0.0.tgz#9174b1093c68bcfe285aff24f7388ad60d44e8f7"
integrity sha512-PqlerEvQcc5hZLQ/NQWgBxgVQ4TRdvkW3c/t+SUEQSj78ia3hgLkf2VZ2yGJtltNbEEFyYGm+cA6XXevodYvWA==
chartjs-plugin-zoom@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/chartjs-plugin-zoom/-/chartjs-plugin-zoom-1.2.0.tgz#dad0861b2d171bca1f6d11b3e3e917bc12b950ff"
integrity sha512-cLYKUHHx4bevuZQDpEKdjpvZ6HGu6NF8laTThgA0I9af+PV1N4qVTRZmyDNh0SAzsHZPtDOhuO3I7B4CF1lstw==
dependencies:
hammerjs "^2.0.8"
chokidar@^2.0.2:
version "2.1.8"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
@ -4743,6 +4750,11 @@ growly@^1.3.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
hammerjs@^2.0.8:
version "2.0.8"
resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1"
integrity sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"